perf: Order OVRTX render-var reads on the consuming stream, and block the host on Linux - #7074
Open
pv-nvidia wants to merge 1 commit into
Open
perf: Order OVRTX render-var reads on the consuming stream, and block the host on Linux #7074pv-nvidia wants to merge 1 commit into
pv-nvidia wants to merge 1 commit into
Conversation
pv-nvidia
force-pushed
the
pv/ovrtx-render-var-sync
branch
from
August 13, 2026 11:45
a249430 to
0c61aee
Compare
pv-nvidia
marked this pull request as ready for review
August 13, 2026 12:16
pv-nvidia
requested review from
AntoineRichard,
huidongc,
marcodiiga,
pbarejko and
rilei-nvidia
as code owners
August 13, 2026 12:16
Contributor
Greptile SummaryThe PR centralizes CUDA render-var mapping and changes Linux ordering to use a host-side render-completion wait, avoiding the reported GPU scheduling bottleneck while retaining an environment-controlled GPU-side path.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Sequence DiagramsequenceDiagram
participant Caller as Camera output processing
participant Helper as _map_render_var_to_dlpack
participant OVRTX as RenderVarOutput
participant Warp as Consuming Warp stream
alt Linux host synchronization
Helper->>OVRTX: "map(CUDA, sync_stream=0)"
Helper->>OVRTX: mapping.wait()
OVRTX-->>Helper: render complete
else GPU-side synchronization
Helper->>Warp: get consuming CUDA stream
Helper->>OVRTX: "map(CUDA, sync_stream=stream)"
OVRTX-->>Warp: enqueue render-completion wait
end
Helper->>Warp: wp.from_dlpack(mapping)
Helper-->>Caller: mapped Warp array
Caller->>Warp: enqueue output extraction
Helper->>OVRTX: release mapping
Reviews (2): Last reviewed commit: "Bot review feedback" | Re-trigger Greptile |
pv-nvidia
force-pushed
the
pv/ovrtx-render-var-sync
branch
from
August 13, 2026 15:02
0c61aee to
4374b7c
Compare
pv-nvidia
force-pushed
the
pv/ovrtx-render-var-sync
branch
from
August 14, 2026 11:27
4374b7c to
b56335a
Compare
huidongc
approved these changes
Aug 14, 2026
pbarejko
approved these changes
Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Reading an OVRTX render var has to be ordered against render completion. On Linux, blocking the calling thread on the render-completion event measures faster end to end than a GPU-side wait, so that is now what Linux does.
Measured across three camera tasks at 256/1024/4096 envs, this is +14% to +73% throughput (mean +36%), and restores parity with ovrtx 0.3 on every case measured.
Other platforms order the read on the consuming Warp stream.
ISAAC_LAB_OVRTX_DISABLE_LINUX_CUDA_CPU_SYNC=1puts Linux on that ordering too — an escape hatch for when the trade-off changes; it is not currently faster.All mapping sites now go through one helper,
OVRTXRenderer._map_render_var_to_dlpack(). Camera outputs are unchanged — only the read ordering differs.Reported in https://nvbugspro.nvidia.com/bug/6566453
Type of change
Screenshots
None — no visual change.
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there