You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Platform: KADaP (Korea Automotive Data Platform) — a Kubernetes-based GPU-as-a-Service platform
GPU: NVIDIA L40S (45GB)
CUDA Driver: 550.90.12 (supports up to CUDA 12.4)
Host OS: Ubuntu 22.04 (glibc 2.35)
AlpaSim: latest main branch
Problem
I'm trying to run AlpaSim (Tutorial Level 3 — individual processes) on KADaP, which provides GPU pods via Kubernetes. Docker-in-Docker is not available on this platform due to Kubernetes security policies. This means I cannot use the standard wizard.py workflow that pulls and runs the NRE sensorsim Docker image (nvcr.io/nvidia/nre/nre-ga:26.02).
I successfully run physics, controller, and driver (VaVAM) as individual processes. However, I'm stuck on sensorsim (NRE) — this is the critical missing piece.
What I've Tried
1. Extract and run NRE from container image (using crane + proot)
I used crane export to download and extract the NRE-GA 26.02 container image as a flat filesystem (~27GB). Then I used proot to chroot into the extracted rootfs and run the NRE binary:
No module named 'l1l1l1l1l1l1l1l1l1l1l1l1' — This appears to be a PyArmor obfuscation module that only works within the original Docker container environment.
No CUDA runtime is found — The NRE image requires CUDA 12.8, but the host driver only supports up to CUDA 12.4.
2. Direct execution with container's ld-linux
Used the container's ld-linux-x86-64.so.2 (glibc 2.39) to run the binary directly on the host. Same obfuscation module error.
Questions
Is there an officially supported way to run NRE sensorsim without Docker? For example, as a standalone binary, via enroot, Singularity/Apptainer, or any other unprivileged container runtime?
In Issue How to run sensorsim / NuRec container as non-root #27, it was mentioned that the NVIDIA team uses enroot for non-root environments. Could you provide guidance on how to set up enroot to run the NRE sensorsim image? Are there specific flags or environment variables needed?
Is there a way to disable or work around the PyArmor obfuscation when running outside Docker? The l1l1l1l1l1l1l1l1l1l1l1l1 module seems to be a protection mechanism that prevents execution outside the intended container.
CUDA version compatibility: The NRE-GA 26.02 image requires CUDA 12.8, but our platform's driver (550.90.12) only supports up to CUDA 12.4. Is there an older NRE image that works with CUDA 12.4, or does NRE support CUDA forward compatibility libraries?
Would it be possible to provide a statically-linked or less restricted NRE binary that can run in Kubernetes pods without requiring Docker-in-Docker?
Context
This is related to Issue #27 (running without root/Docker) and Issue #17 (NRE image references). Many cloud GPU platforms (like KADaP, Lambda, CoreWeave managed Kubernetes) don't allow Docker-in-Docker, which makes the sensorsim component impossible to run with the current setup.
Environment
Problem
I'm trying to run AlpaSim (Tutorial Level 3 — individual processes) on KADaP, which provides GPU pods via Kubernetes. Docker-in-Docker is not available on this platform due to Kubernetes security policies. This means I cannot use the standard
wizard.pyworkflow that pulls and runs the NRE sensorsim Docker image (nvcr.io/nvidia/nre/nre-ga:26.02).I successfully run
physics,controller, anddriver(VaVAM) as individual processes. However, I'm stuck on sensorsim (NRE) — this is the critical missing piece.What I've Tried
1. Extract and run NRE from container image (using
crane+proot)I used
crane exportto download and extract the NRE-GA 26.02 container image as a flat filesystem (~27GB). Then I usedprootto chroot into the extracted rootfs and run the NRE binary:proot -r /path/to/nre-rootfs -b /dev -b /proc -b /sys \ -b /usr/lib/x86_64-linux-gnu/libcuda.so.1 \ -b /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 \ -w /app/internal/scripts/pycena/runtime/pycena_run.runfiles/_main \ /app/internal/scripts/pycena/runtime/pycena_run serve-grpc \ --port=6001 --host=0.0.0.0 --artifact-glob='/mnt/nre-data/scenesets/**/*.usd' \ --no-enable-nrend --cache-size=5 --max-workers=4Result: The binary starts but fails with:
No module named 'l1l1l1l1l1l1l1l1l1l1l1l1'— This appears to be a PyArmor obfuscation module that only works within the original Docker container environment.No CUDA runtime is found— The NRE image requires CUDA 12.8, but the host driver only supports up to CUDA 12.4.2. Direct execution with container's ld-linux
Used the container's
ld-linux-x86-64.so.2(glibc 2.39) to run the binary directly on the host. Same obfuscation module error.Questions
enroot, Singularity/Apptainer, or any other unprivileged container runtime?enrootfor non-root environments. Could you provide guidance on how to set upenrootto run the NRE sensorsim image? Are there specific flags or environment variables needed?l1l1l1l1l1l1l1l1l1l1l1l1module seems to be a protection mechanism that prevents execution outside the intended container.Context
This is related to Issue #27 (running without root/Docker) and Issue #17 (NRE image references). Many cloud GPU platforms (like KADaP, Lambda, CoreWeave managed Kubernetes) don't allow Docker-in-Docker, which makes the sensorsim component impossible to run with the current setup.
Thank you for any guidance!