GithubHelp home page GithubHelp logo

lejm4n96 / jetson-containers Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dusty-nv/jetson-containers

0.0 0.0 0.0 521 KB

Machine Learning Containers for NVIDIA Jetson and JetPack-L4T

License: MIT License

Shell 64.57% Python 28.05% OCaml 7.38%

jetson-containers's Introduction

Machine Learning Containers for Jetson and JetPack

Hosted on NVIDIA GPU Cloud (NGC) are the following Docker container images for machine learning on Jetson:

The following ROS containers are also available, which can be pulled from DockerHub or built from source:

Distro Base Desktop PyTorch
ROS Melodic ros-base X X
ROS Noetic ros-base X PyTorch
ROS2 Eloquent ros-base X X
ROS2 Foxy ros-base desktop PyTorch
ROS2 Galactic ros-base desktop PyTorch
ROS2 Humble ros-base desktop PyTorch

The ROS distros that use Python3 have PyTorch-based containers, and some have ROS Desktop for JetPack 5.x.

Pre-built Container Images

The following images can be pulled from NGC or DockerHub without needing to build the containers yourself:

L4T Version Container Tag
l4t-ml R35.1.0 nvcr.io/nvidia/l4t-ml:r35.1.0-py3
R34.1.1 nvcr.io/nvidia/l4t-ml:r34.1.1-py3
R34.1.0 nvcr.io/nvidia/l4t-ml:r34.1.0-py3
R32.7.1 nvcr.io/nvidia/l4t-ml:r32.7.1-py3
R32.6.1 nvcr.io/nvidia/l4t-ml:r32.6.1-py3
R32.5.0* nvcr.io/nvidia/l4t-ml:r32.5.0-py3
R32.4.4 nvcr.io/nvidia/l4t-ml:r32.4.4-py3
R32.4.3 nvcr.io/nvidia/l4t-ml:r32.4.3-py3
l4t-pytorch R35.1.0 nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.13-py3
R35.1.0 nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.12-py3
R35.1.0 nvcr.io/nvidia/l4t-pytorch:r35.1.0-pth1.11-py3
R34.1.1 nvcr.io/nvidia/l4t-pytorch:r34.1.1-pth1.12-py3
R34.1.1 nvcr.io/nvidia/l4t-pytorch:r34.1.1-pth1.11-py3
R34.1.0 nvcr.io/nvidia/l4t-pytorch:r34.1.0-pth1.12-py3
R32.7.1 nvcr.io/nvidia/l4t-pytorch:r32.7.1-pth1.10-py3
R32.7.1 nvcr.io/nvidia/l4t-pytorch:r32.7.1-pth1.9-py3
R32.6.1 nvcr.io/nvidia/l4t-pytorch:r32.6.1-pth1.9-py3
R32.6.1 nvcr.io/nvidia/l4t-pytorch:r32.6.1-pth1.8-py3
R32.5.0* nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3
R32.5.0* nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.6-py3
R32.4.4 nvcr.io/nvidia/l4t-pytorch:r32.4.4-pth1.6-py3
R32.4.3 nvcr.io/nvidia/l4t-pytorch:r32.4.3-pth1.6-py3
l4t-tensorflow R35.1.0 nvcr.io/nvidia/l4t-tensorflow:r35.1.0-tf1.15-py3
R35.1.0 nvcr.io/nvidia/l4t-tensorflow:r35.1.0-tf2.9-py3
R34.1.1 nvcr.io/nvidia/l4t-tensorflow:r34.1.1-tf1.15-py3
R34.1.1 nvcr.io/nvidia/l4t-tensorflow:r34.1.1-tf2.8-py3
R34.1.0 nvcr.io/nvidia/l4t-tensorflow:r34.1.0-tf1.15-py3
R34.1.0 nvcr.io/nvidia/l4t-tensorflow:r34.1.0-tf2.8-py3
R32.7.1 nvcr.io/nvidia/l4t-tensorflow:r32.7.1-tf1.15-py3
R32.7.1 nvcr.io/nvidia/l4t-tensorflow:r32.7.1-tf2.7-py3
R32.6.1 nvcr.io/nvidia/l4t-tensorflow:r32.6.1-tf1.15-py3
R32.6.1 nvcr.io/nvidia/l4t-tensorflow:r32.6.1-tf2.5-py3
R32.5.0* nvcr.io/nvidia/l4t-tensorflow:r32.5.0-tf1.15-py3
R32.5.0* nvcr.io/nvidia/l4t-tensorflow:r32.5.0-tf2.3-py3
R32.4.4 nvcr.io/nvidia/l4t-tensorflow:r32.4.4-tf1.15-py3
R32.4.4 nvcr.io/nvidia/l4t-tensorflow:r32.4.4-tf2.3-py3
R32.4.3 nvcr.io/nvidia/l4t-tensorflow:r32.4.3-tf1.15-py3
R32.4.3 nvcr.io/nvidia/l4t-tensorflow:r32.4.3-tf2.2-py3
ROS Melodic (ros-base) R32.7.1 dustynv/ros:melodic-ros-base-l4t-r32.7.1
R32.6.1 dustynv/ros:melodic-ros-base-l4t-r32.6.1
R32.5.0* dustynv/ros:melodic-ros-base-l4t-r32.5.0
R32.4.4 dustynv/ros:melodic-ros-base-l4t-r32.4.4
ROS Noetic (ros-base) R35.1.0 dustynv/ros:noetic-ros-base-l4t-r35.1.0
R34.1.1 dustynv/ros:noetic-ros-base-l4t-r34.1.1
R34.1.0 dustynv/ros:noetic-ros-base-l4t-r34.1.0
R32.7.1 dustynv/ros:noetic-ros-base-l4t-r32.7.1
R32.6.1 dustynv/ros:noetic-ros-base-l4t-r32.6.1
R32.5.0* dustynv/ros:noetic-ros-base-l4t-r32.5.0
R32.4.4 dustynv/ros:noetic-ros-base-l4t-r32.4.4
ROS Noetic (PyTorch) R35.1.0 dustynv/ros:noetic-pytorch-l4t-r35.1.0
R34.1.1 dustynv/ros:noetic-pytorch-l4t-r34.1.1
R34.1.0 dustynv/ros:noetic-pytorch-l4t-r34.1.0
R32.7.1 dustynv/ros:noetic-pytorch-l4t-r32.7.1
R32.6.1 dustynv/ros:noetic-pytorch-l4t-r32.6.1
R32.5.0* dustynv/ros:noetic-pytorch-l4t-r32.5.0
R32.4.4 dustynv/ros:noetic-pytorch-l4t-r32.4.4
ROS2 Eloquent (ros-base) R32.7.1 dustynv/ros:eloquent-ros-base-l4t-r32.7.1
R32.6.1 dustynv/ros:eloquent-ros-base-l4t-r32.6.1
R32.5.0* dustynv/ros:eloquent-ros-base-l4t-r32.5.0
R32.4.4 dustynv/ros:eloquent-ros-base-l4t-r32.4.4
ROS2 Foxy (ros-base) R35.1.0 dustynv/ros:foxy-ros-base-l4t-r35.1.0
R34.1.1 dustynv/ros:foxy-ros-base-l4t-r34.1.1
R34.1.0 dustynv/ros:foxy-ros-base-l4t-r34.1.0
R32.7.1 dustynv/ros:foxy-ros-base-l4t-r32.7.1
R32.6.1 dustynv/ros:foxy-ros-base-l4t-r32.6.1
R32.5.0* dustynv/ros:foxy-ros-base-l4t-r32.5.0
R32.4.4 dustynv/ros:foxy-ros-base-l4t-r32.4.4
ROS2 Foxy (desktop) R35.1.0 dustynv/ros:foxy-desktop-l4t-r35.1.0
R34.1.1 dustynv/ros:foxy-desktop-l4t-r34.1.1
ROS2 Foxy (PyTorch) R35.1.0 dustynv/ros:foxy-pytorch-l4t-r35.1.0
R34.1.1 dustynv/ros:foxy-pytorch-l4t-r34.1.1
R34.1.0 dustynv/ros:foxy-pytorch-l4t-r34.1.0
R32.7.1 dustynv/ros:foxy-pytorch-l4t-r32.7.1
R32.6.1 dustynv/ros:foxy-pytorch-l4t-r32.6.1
R32.5.0* dustynv/ros:foxy-pytorch-l4t-r32.5.0
R32.4.4 dustynv/ros:foxy-pytorch-l4t-r32.4.4
ROS2 Galactic (ros-base) R35.1.0 dustynv/ros:galactic-ros-base-l4t-r35.1.0
R34.1.1 dustynv/ros:galactic-ros-base-l4t-r34.1.1
R34.1.0 dustynv/ros:galactic-ros-base-l4t-r34.1.0
R32.7.1 dustynv/ros:galactic-ros-base-l4t-r32.7.1
R32.6.1 dustynv/ros:galactic-ros-base-l4t-r32.6.1
R32.5.0* dustynv/ros:galactic-ros-base-l4t-r32.5.0
R32.4.4 dustynv/ros:galactic-ros-base-l4t-r32.4.4
ROS2 Galactic (desktop) R35.1.0 dustynv/ros:galactic-desktop-l4t-r35.1.0
R34.1.1 dustynv/ros:galactic-desktop-l4t-r34.1.1
ROS2 Galactic (PyTorch) R35.1.0 dustynv/ros:galactic-pytorch-l4t-r35.1.0
R34.1.1 dustynv/ros:galactic-pytorch-l4t-r34.1.1
R34.1.0 dustynv/ros:galactic-pytorch-l4t-r34.1.0
R32.7.1 dustynv/ros:galactic-pytorch-l4t-r32.7.1
R32.6.1 dustynv/ros:galactic-pytorch-l4t-r32.6.1
R32.5.0* dustynv/ros:galactic-pytorch-l4t-r32.5.0
R32.4.4 dustynv/ros:galactic-pytorch-l4t-r32.4.4
ROS2 Humble (ros-base) R35.1.0 dustynv/ros:humble-ros-base-l4t-r35.1.0
R34.1.1 dustynv/ros:humble-ros-base-l4t-r34.1.1
R34.1.0 dustynv/ros:humble-ros-base-l4t-r34.1.0
ROS2 Humble (desktop) R35.1.0 dustynv/ros:humble-desktop-l4t-r35.1.0
R34.1.1 dustynv/ros:humble-desktop-l4t-r34.1.1
ROS2 Humble (PyTorch) R35.1.0 dustynv/ros:humble-pytorch-l4t-r35.1.0
R34.1.1 dustynv/ros:humble-pytorch-l4t-r34.1.1
R34.1.0 dustynv/ros:humble-pytorch-l4t-r34.1.0

note: the L4T R32.5.0 containers can be run on both JetPack 4.5 (L4T R32.5.0) and JetPack 4.5.1 (L4T R32.5.1)

To download and run one of these images, you can use the included run script from the repo:

# L4T version in the container tag should match your L4T version
$ scripts/docker_run.sh -c nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3

For other configurations, below are the instructions to build and test the containers using the included Dockerfiles.

Docker Default Runtime

To enable access to the CUDA compiler (nvcc) during docker build operations, add "default-runtime": "nvidia" to your /etc/docker/daemon.json configuration file before attempting to build the containers:

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },

    "default-runtime": "nvidia"
}

You will then want to restart the Docker service or reboot your system before proceeding.

Building the Containers

To rebuild the containers from a Jetson device running JetPack 4.4 or newer, first clone this repo:

$ git clone https://github.com/dusty-nv/jetson-containers
$ cd jetson-containers

Before proceeding, make sure you have set your Docker Default Runtime to nvidia as shown above.

ML Containers

To build the ML containers (l4t-pytorch, l4t-tensorflow, l4t-ml), use scripts/docker_build_ml.sh - along with an optional argument of which container(s) to build:

$ ./scripts/docker_build_ml.sh all        # build all: l4t-pytorch, l4t-tensorflow, and l4t-ml
$ ./scripts/docker_build_ml.sh pytorch    # build only l4t-pytorch
$ ./scripts/docker_build_ml.sh tensorflow # build only l4t-tensorflow

You have to build l4t-pytorch and l4t-tensorflow to build l4t-ml, because it uses those base containers in the multi-stage build.

Note that the TensorFlow and PyTorch pip wheel installers for aarch64 are automatically downloaded in the Dockerfiles from the Jetson Zoo.

ROS Containers

To build the ROS containers, use scripts/docker_build_ros.sh with the --distro option to specify the name of the ROS distro to build and --package to specify the ROS package to build (the default package is ros_base):

$ ./scripts/docker_build_ros.sh --distro all   # build all ROS distros (default)
$ ./scripts/docker_build_ros.sh --distro foxy  # build only foxy (ros_base)
$ ./scripts/docker_build_ros.sh --distro foxy --package desktop  # build foxy desktop (on JetPack 5.x)

The package options are: ros_base, ros_core, and desktop - note that the ROS2 Desktop packages only build on JetPack 5.x. You can also specify --with-pytorch to build variants with support for PyTorch.

Testing the Containers

To run a series of automated tests on the packages installed in the containers, run the following from your jetson-containers directory:

$ ./scripts/docker_test_ml.sh all        # test all: l4t-pytorch, l4t-tensorflow, and l4t-ml
$ ./scripts/docker_test_ml.sh pytorch    # test only l4t-pytorch
$ ./scripts/docker_test_ml.sh tensorflow # test only l4t-tensorflow

To test ROS:

$ ./scripts/docker_test_ros.sh all       # test if the build of ROS all was successful: 'melodic', 'noetic', 'eloquent', 'foxy'
$ ./scripts/docker_test_ros.sh melodic   # test if the build of 'ROS melodic' was successful
$ ./scripts/docker_test_ros.sh noetic    # test if the build of 'ROS noetic' was successful
$ ./scripts/docker_test_ros.sh eloquent  # test if the build of 'ROS eloquent' was successful
$ ./scripts/docker_test_ros.sh foxy      # test if the build of 'ROS foxy' was successful

jetson-containers's People

Contributors

dingooz avatar dusty-nv avatar f-fl0 avatar johnnysclai avatar tiryoh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.