Skip to content

[Bug]: Batch renderer ERROR 4 in nvvmAddNVVMContainerToProgram #2814

@alt250

Description

@alt250

Bug Description

Error with batch renderer, example output:

$ uv run examples/rigid/single_franka_batch_render.py
[...]
CUDA linking Failed!
ERROR 4 in nvvmAddNVVMContainerToProgram, may need newer version of nvJitLink library

Error at /project/src/mw/cuda_exec.cpp:1197 in auto madrona::buildBVHKernels(const CompileConfig &, int32_t, std::pair<int, int>, CudaBatchRenderConfig::RenderMode)::(anonymous class)::operator()(nvJitLinkResult) const
nvJitLink error: Internal error

Steps to Reproduce

This can be reproduced on several internal machines and with different programs using the gs-madrona batch renderer.

Here is how to reproduce on a Vast.ai instance and Genesis single_franka_batch_render example for convenience:

  • Create an instance
    • Select template NVIDIA CUDA
    • Edit template to change tag to cuda-12.8.1-auto
    • Select an instance with Max CUDA: 13.0 and click Rent
  • ssh connect to the instance and run the following commands:
git clone https://github.com/Genesis-Embodied-AI/genesis-world.git
cd genesis-world
uv add torch
uv run examples/rigid/single_franka_batch_render.py

Expected Behavior

No error

Screenshots/Videos

No response

Relevant log output

(main) root@C.37205212:/workspace/genesis-world$ uv run examples/rigid/single_franka_batch_render.py                    
[Genesis] [08:05:09] [INFO] ╭─────────────────────────────────────────────────────────────────────────────────────╮
[Genesis] [08:05:09] [INFO] │┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉ Genesis ┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉│                                                                                                                           
[Genesis] [08:05:09] [INFO] ╰─────────────────────────────────────────────────────────────────────────────────────╯
[Genesis] [08:05:10] [INFO] Running on [NVIDIA GeForce RTX 2070 SUPER] with backend gs.cuda. Device memory: 7.60 GB.
[Genesis] [08:05:10] [INFO] 🚀 Genesis initialized. 🔖 version: 0.4.7, 🎨 theme: dark, 🌱 seed: None, 🐛 debug: False, 📏 precision: 32, 🔥 performance: False, 💬 verbose: INFO                                                              
[Genesis] [08:05:13] [INFO] Scene <6df7fe9> created.    
[Genesis] [08:05:15] [INFO] Adding <gs.engine.entities.RigidEntity>. idx: 0, uid: <ce178ec>, morph: <gs.morphs.Plane>, material: <gs.materials.Rigid>.                                                                                        
[Genesis] [08:05:20] [INFO] Adding <gs.engine.entities.RigidEntity>. idx: 1, uid: <3a51d9f>, morph: <gs.morphs.MJCF(file='/workspace/genesis-world/genesis/assets/xml/franka_emika_panda/panda.xml')>, material: <gs.materials.Rigid>.
[Genesis] [08:05:21] [WARNING] (MJCF) Approximating tendon by joint actuator for `finger_joint1`                                                                                                                                              
[Genesis] [08:05:21] [WARNING] (MJCF) Approximating tendon by joint actuator for `finger_joint2`                                                                                                                                              
[Genesis] [08:05:23] [INFO] Building scene <6df7fe9>...
[Genesis] [08:05:26] [WARNING] Neutral robot position (qpos0) exceeds joint limits.
[Genesis] [08:05:27] [WARNING] Constraint solver time constant should be greater than 2*substep_dt. timeconst is changed from `0.005` to `0.02`). Decrease simulation timestep or increase timeconst to avoid altering the original value.
[Genesis] [08:05:32] [WARNING] Filtered out geometry pairs causing self-collision for the neutral configuration (qpos0): (6, 11), (7, 11), (14, 21), (15, 20), (16, 23), (17, 22). Consider tuning Morph option 'decompose_robot_error_thresho
ld' or specify dedicated collision meshes. This behavior can be disabled by setting Morph option 'enable_neutral_collision=True'.
[Genesis] [08:05:33] [INFO] Compiling simulation kernels... 
[Genesis] [08:07:00] [INFO] Building visualizer...
[Genesis] [08:07:05] [INFO] Raytracer and Rasterizer requires binding to the camera with a specific environment index. Defaulting to 'rendered_envs_idx[0]'. Please specify 'env_idx' if necessary.
CUDA linking Failed!
ERROR 4 in nvvmAddNVVMContainerToProgram, may need newer version of nvJitLink library


Error at /project/src/mw/cuda_exec.cpp:1197 in auto madrona::buildBVHKernels(const CompileConfig &, int32_t, std::pair<int, int>, CudaBatchRenderConfig::RenderMode)::(anonymous class)::operator()(nvJitLinkResult) const
nvJitLink error: Internal error

Environment

(main) root@C.37205212:/workspace/genesis-world$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.4 LTS"
(main) root@C.37205212:/workspace/genesis-world$ uname -a
Linux 1f98a53d6b8a 6.8.0-110-generic #110~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 27 12:43:08 UTC  x86_64 x86_64 x86_64 GNU/Linux
(main) root@C.37205212:/workspace/genesis-world$ nvidia-smi 
Thu May 21 08:30:12 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05              Driver Version: 580.95.05      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 2070 ...    On  |   00000000:65:00.0 Off |                  N/A |
|  0%   57C    P8             25W /  215W |       0MiB /   8192MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
(main) root@C.37205212:/workspace/genesis-world$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0
(main) root@C.37205212:/workspace/genesis-world$ 

Release version or Commit ID

ommit 723a20eca31433db37a440bbd7df2d181cb4758d (HEAD -> main, origin/main, origin/HEAD)
Author: Alexis DUBURCQ <alexis.duburcq@gmail.com>
Date:   Thu May 21 00:12:03 2026 +0200

    [BUG FIX] Fix collision non-convex vs any for watertight geometries. (#2812)

Additional Context

$ uv tree --package torch
Resolved 240 packages in 1ms
torch v2.12.0
├── cuda-bindings v13.2.0
│   └── cuda-pathfinder v1.5.4
├── cuda-toolkit[cudart, cufft, cufile, cupti, curand, cusolver, cusparse, nvjitlink, nvrtc, nvtx] v13.0.2
│   ├── nvidia-cuda-runtime v13.0.96 (extra: cudart)
│   ├── nvidia-cufft v12.0.0.61 (extra: cufft)
│   │   └── nvidia-nvjitlink v13.0.88
│   ├── nvidia-cufile v1.15.1.6 (extra: cufile)
│   ├── nvidia-cuda-cupti v13.0.85 (extra: cupti)
│   ├── nvidia-curand v10.4.0.35 (extra: curand)
│   ├── nvidia-cusolver v12.0.4.66 (extra: cusolver)
│   │   ├── nvidia-cublas v13.1.1.3
│   │   │   └── nvidia-cuda-nvrtc v13.0.88
│   │   ├── nvidia-cusparse v12.6.3.3
│   │   │   └── nvidia-nvjitlink v13.0.88
│   │   └── nvidia-nvjitlink v13.0.88
│   ├── nvidia-cusparse v12.6.3.3 (extra: cusparse) (*)
│   ├── nvidia-nvjitlink v13.0.88 (extra: nvjitlink)
│   ├── nvidia-cuda-nvrtc v13.0.88 (extra: nvrtc)
│   └── nvidia-nvtx v13.0.85 (extra: nvtx)
├── filelock v3.29.0
├── fsspec v2026.4.0
├── jinja2 v3.1.6
│   └── markupsafe v3.0.3
├── networkx v3.6.1
├── nvidia-cublas v13.1.1.3 (*)
├── nvidia-cudnn-cu13 v9.20.0.48
│   └── nvidia-cublas v13.1.1.3 (*)
├── nvidia-cusparselt-cu13 v0.8.1
├── nvidia-nccl-cu13 v2.29.7
├── nvidia-nvshmem-cu13 v3.4.5
├── setuptools v81.0.0
├── sympy v1.14.0
│   └── mpmath v1.3.0
├── triton v3.7.0
└── typing-extensions v4.15.0
(*) Package tree already displayed

nv_libs.sh

import ctypes
from importlib.metadata import distribution, PackageNotFoundError

for package_name, lib_name in (
    ("nvidia_cuda_nvrtc_cu12", "libnvrtc.so.1"), 
    ("nvidia_cuda_nvrtc", "libnvrtc.so.1"), 
    ("nvidia_nvjitlink_cu12", "libnvJitLink.so.12"),
    ("nvidia_nvjitlink", "libnvJitLink.so.13"),
):
    try:
        dist = distribution(package_name)
        for file in dist.files:
            if file.name.startswith(lib_name):
                print(ctypes.CDLL(dist.locate_file(file), ctypes.RTLD_LOCAL))
                break
    except PackageNotFoundError as e:
        print(e)
        pass
(main) root@C.37205212:/workspace/genesis-world$ uv run nv_libs.py 
No package metadata was found for nvidia_cuda_nvrtc_cu12
<CDLL '/workspace/genesis-world/.venv/lib/python3.11/site-packages/nvidia/cu13/lib/libnvrtc.so.13', handle 593f2dbcb580 at 0x72a66dce4c10>
No package metadata was found for nvidia_nvjitlink_cu12
<CDLL '/workspace/genesis-world/.venv/lib/python3.11/site-packages/nvidia/cu13/lib/libnvJitLink.so.13', handle 593f2ddb47b0 at 0x72a66dc61690>

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions