Skip to content

Fix ARM64/aarch64 Docker builds for reconstruction and robotic_grounding - #142

Open
kabilankb wants to merge 2 commits into
nvidia-isaac:mainfrom
kabilankb:main
Open

Fix ARM64/aarch64 Docker builds for reconstruction and robotic_grounding#142
kabilankb wants to merge 2 commits into
nvidia-isaac:mainfrom
kabilankb:main

Conversation

@kabilankb

Copy link
Copy Markdown

Summary

  • Docker Hub's pytorch/pytorch base images ship amd64-only, and several pinned pip packages (usd-core, judo-rai, onnxruntime-gpu==1.24.4) have no linux_aarch64 wheel, so reconstruction's and robotic_grounding's Docker builds fail outright on ARM64 hosts (e.g. NVIDIA GB10 Grace-Blackwell).
  • Retarget v2d_moge and v2d_task_library_loader from pytorch/pytorch:* to NVIDIA's arm64-native NGC PyTorch image, with a numpy<2.0 pin to match that image's torch build ABI, and add the missing libx11-dev system dep (needed by glcontext, which has no arm64 wheel and must build from source).
  • Add robotic_grounding/workflow/Dockerfile.aarch64 (wired up by the existing build-aarch64 path in workflow/run.sh, which previously had no corresponding Dockerfile) on top of the already arm64-native Isaac Lab NGC base:
    • Add liblapack-dev/libblas-dev (needed by py-soma-x's cholespy dependency, which has no arm64 wheel).
    • Bump onnxruntime-gpu to 1.29.0 (no arm64 wheel exists for 1.24.4).
    • Drop the judo-rai pip install — it has no arm64 wheel for any version with a source fallback, and is only used as an optional import (try/except ImportError) in the SOMA/G1 whole-body visualizer, not on the Sharpa floating-hand path this image targets.
    • Point PYTHONPATH/LD_LIBRARY_PATH at Isaac Sim's bundled omni.usd.libs extension instead of pip-installing usd-core, which has no linux_aarch64 wheel or sdist on PyPI at all.

Test plan

Verified end-to-end on an NVIDIA GB10 (Grace-Blackwell, aarch64) host:

  • v2d_moge image builds and the documented MoGe quickstart (run_download_weights + run_video_to_depth on the bundled test_video.mp4) produces correct depth maps + intrinsics for all 100 frames.
  • v2d_task_library_loader image builds successfully.
  • robotic_grounding's aarch64 retarget image builds successfully; dummy_agent.py and a 3-iteration train.py RSL-RL PPO smoke test both run correctly against the bundled, license-free synthbox fixture, producing real reward/loss curves and checkpoints.
  • No changes to amd64 behavior — all fixes are scoped to the aarch64 path (new Dockerfile.aarch64) or additive (numpy pin, extra system packages) on images that were already broken on ARM64.

Docker Hub's pytorch/pytorch base images ship amd64-only, and several pinned
pip packages (usd-core, judo-rai, onnxruntime-gpu==1.24.4) have no linux_aarch64
wheel. Retarget v2d_moge and v2d_task_library_loader to NVIDIA's arm64-native
NGC PyTorch image (with a numpy<2.0 pin to match its torch build's ABI), add a
missing libx11-dev/liblapack-dev/libblas-dev system deps, and add
workflow/Dockerfile.aarch64 for the robotic_grounding retarget image on top of
the (already arm64-native) Isaac Lab NGC base — dropping the unused judo-rai
optional dependency and wiring PYTHONPATH/LD_LIBRARY_PATH at Isaac Sim's
bundled omni.usd.libs extension in place of the unavailable usd-core wheel.

Verified end-to-end on an NVIDIA GB10 (Grace-Blackwell, aarch64) host: MoGe
video-to-depth, and an RSL-RL PPO training smoke test against the bundled
synthbox fixture.
Fork-specific pointer to PR nvidia-isaac#142, not intended for upstream.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant