dusty-nv / jetson-containers

Machine Learning Containers for NVIDIA Jetson and JetPack-L4T
MIT License
1.93k stars 422 forks source link

Options for building on host PC (Cross compilation) #377

Closed BBO-TheyeQ closed 5 months ago

BBO-TheyeQ commented 5 months ago

I'm new in this area and I'm wondering if there are some specific options to pass through the building script to use it on a host PC instead of directly building on Jetson Orin ? When I do a simple test on my host PC (x86/Ubuntu) with : ./build.sh --name=my_container pytorch transformers ros:humble-desktop

I'm getting error with ARCH and L4T_VERSION (and likely more) as these parameters are not reporting values corresponding to my Jetson Orin.

./build.sh --name=my_container pytorch transformers ros:humble-desktop Traceback (most recent call last): File "/usr/lib/python3.10/runpy.py", line 187, in _run_module_as_main mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "/usr/lib/python3.10/runpy.py", line 110, in _get_module_details import(pkg_name) File "/home/benoitb/nvidia/jetson-containers/jetson_containers/init.py", line 7, in from .logging import * File "/home/benoitb/nvidia/jetson-containers/jetson_containers/logging.py", line 5, in from .packages import _PACKAGE_ROOT File "/home/benoitb/nvidia/jetson-containers/jetson_containers/packages.py", line 12, in from .l4t_version import L4T_VERSION File "/home/benoitb/nvidia/jetson-containers/jetson_containers/l4t_version.py", line 77, in def get_jetpack_version(l4t_version=get_l4t_version(), default='5.1'): File "/home/benoitb/nvidia/jetson-containers/jetson_containers/l4t_version.py", line 37, in get_l4t_version raise ValueError(f"L4T_VERSION isn't supported on {ARCH} architecture (aarch64 only)") NameError: name 'ARCH' is not defined

dusty-nv commented 5 months ago

Hi @BBO-TheyeQ, although there is a cross-compilation container for JetPack (which includes cross-compilation support for applications using the libraries in JetPack like CUDA, cuDNN, TensorRT, ect), there are so many 3rd-parties used in the various jetson-containers (each of which would typically require some kind of cross-compilation support) that it's impractical. Also jetson-containers performs tests throughout the build process that use the GPU to verify the packages were built correctly, which necessitates running onboard actual Jetson hardware. I build the containers on Jetson AGX Orin or Xavier which is pretty fast enough.