[Interactive Drive] Add Vulkan Support - #449
Open
ArielG-NV wants to merge 7 commits into
Open
Conversation
…hw we get 2-14ms vs. 12-30?
Contributor
Greptile SummaryThe PR restores an optional Vulkan rendering backend for Interactive Drive while retaining CUDA as the default renderer.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains; the previously reported output-slot stream-lifetime and staging-dimension issues are addressed at the current head. Important Files Changed
Sequence DiagramsequenceDiagram
participant Python as Interactive Drive
participant CUDA as CUDA stream
participant Vulkan as Vulkan renderer
participant Slot as Export slot
Python->>CUDA: Upload queries and camera poses
CUDA->>Vulkan: Signal interop timeline
Vulkan->>Vulkan: Rasterize and compute-export RGBA
Vulkan->>CUDA: Signal completion timeline
CUDA->>Slot: Map exported linear buffer
Slot-->>Python: Return PyTorch tensor
Python->>Slot: Drop final tensor reference
Slot->>Slot: Mark PendingRelease
Python->>CUDA: Request another frame under pool pressure
CUDA->>CUDA: Synchronize consumer streams
CUDA->>Slot: Reclaim slot
Reviews (7): Last reviewed commit: "more robustness" | Re-trigger Greptile |
Collaborator
Author
|
Note it looks like there is a race-condition in the code (rotating buffers without checking 'frame-inflight'), this needs to be solved before code is RFR |
Collaborator
Author
|
/ok to test ce5b00a |
Collaborator
Author
|
/ok to test 6602176 |
Collaborator
Author
|
/ok to test 7a72bf0 |
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.
The new Vulkan backend (via very non-rigorous testing) is significantly faster than CUDA (hits lows of 2ms, highs of ~10ms; CUDA has lows of around 10ms)
The design was rushed on my end, so I do not have a proper PR description to provide accompanying the code added.
At a high-level the goal was: minimize syncs (versus last-time); minimize use external memory for a 'zero copy' abstraction over CUDA; do not recreate buffers every time we enter vk-ludus. It seems these design changes had massive perf-benefits when put together.