optixVR engine
Artem Kabakov
This project is a rewrite of the Optix 8.1 engine, updated to support multi-GPU configurations and VR integration. The code has been migrated to Optix 9 with CUDA 12.8 on Linux, addressing previous limitations and enabling advanced rendering techniques. Detailed benchmarks, hardware configuration, and demo videos are provided below. For a full project plan, please refer to the linked documentation (if available).
Final build, repository link, and a brief (10-20 sec) final result video will be added once the project is completed.
Milestone 1 (Target Date: 10.03)
- Rendering Fixes (estimated: 2-3 hours): Resolve artifacts in Optix 9 videos caused by incorrect handling of object pointers between Python and C++ bindings.
- Memory & Shader Updates (estimated: 2 hours): Improve texture memory management and apply necessary shader fixes.
- GPU Selection Feature (estimated: 1-2 hours): Implement a feature to select the target GPU in code (instead of using CUDA_VISIBLE_DEVICES).
**Hardware & Benchmark Details:**
- System Configuration: 2 × NVIDIA GeForce RTX 5090, Intel i9-12900K, 96GB DDR4 3200.
Transfer speed benchmark Report:
1. GPU 0 (PCIe Root Complex: 0000:01) - Host → Device: 33638 MB/s - Device → Host: 41879.4 MB/s - NVML PCIe Throughput: TX 21012 KB/s, RX 410 KB/s 2. GPU 1 (PCIe Root Complex: 0000:05) - Host → Device: 848.386 MB/s - Device → Host: 851.835 MB/s - NVML PCIe Throughput: TX 394 KB/s, RX 399 KB/s
**Demo Videos:**
- Original Optix 8.1 demo recorded on RTX3070: optix81game.mp4
- Optix 9 demo on GPU 0 (PCIe5.0 x16, 100-130 fps at 2064×2208): OPTIX9_GPU0-pcie5x16.mp4
- Optix 9 demo on GPU 1 (PCIe3.0 x1, 62-58 fps at 2064×2208): OPTIX9_GPU1-pcie3x1.mp4
- OpenXR with CUDA interop demo (dual mandelbrot render to OpenGL buffers): OpenXR_CUDA_2DEV.mp4
**Development Notes:**
- The original Optix 8.1 application was migrated to Optix 9 to support current hardware.
- For Optix9, frames are rendered at 2064×2208 and then the full-resolution images are copied to the CPU before being cropped to 1920×1080.
- When using OpenVR/XR, the system employs direct writing to OpenGL/Vulkan buffers via CUDA interop.
Milestone 2 (Target Date: 24.03)
- TBD
https://github.com/artyom0906/OptiX_PyTorch_Extension https://docs.google.com/presentation/d/144S91CHOROZGn3a6xB_6yOgCVZv76l-j2oFlbHrci-Q/edit?usp=sharing
At the conclusion of the project, the final build, repository link, and a short final result video will be provided.