Xavier/JetPack 5.0.2/Getting Started/Components: Difference between revisions

From RidgeRun Developer Wiki
mNo edit summary
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<noinclude>
<noinclude>
{{Xavier/Head|previous=JetPack 4.1‎/Getting Started/Wizard Flashing|next=JetPack 4.1‎/Compiling_Code|keywords=jetpack,component}}
{{Xavier/Head|previous=JetPack 5.0.2‎/Getting Started/Wizard Flashing|next=JetPack 5.0.2‎/Compiling_Code|metakeywords=jetpack,component}}
</noinclude>
</noinclude>


= JetPack Components =
{{DISPLAYTITLE:NVIDIA Jetson Xavier - JetPack 5.0.2 Software Components|noerror}}


{| class="wikitable" style="margin-right: 22em;"
This section provides an overview of some of the main software components provided in Jetpack 5.0.2 for Xavier.
 
 
==Jetpack Components==
Table 1 provides the versions of the key packages included in JetPack 5.1.3, Jetpack 5.0.2, and the version previously available in Jetpack 4.6.1:
<br>
 
 
{| class="wikitable" style="margin: auto;"
|+ Table 1: Version of Jetpack components
|-
|-
! Package  
! Package  
! Version
! Jetpack 5.1.3 Version
! Description
! Jetpack 5.0.2 Version
! Jetpack 4.6.1 Version
|-
|-
| Linux for Tegra (L4T)
| '''Linux for Tegra'''
| 31.0.2
| 35.5.0
| Operative System, includes toolchain, u-boot, kernel and filesystem (Reference filesystem is now derived from Ubuntu 18.04),
| 35.1
NVIDIA Tegra User Space Drivers and sample applications.
| 32.7.1
|-
|-
| L4T Multimedia API
| '''CUDA'''
| Argus 0.97
| 11.4.19
| Multimedia API is a collection of lower-level APIs that support flexible application development providing better control over the underlying hardware blocks.
| 11.4.14
| 10.2
|-
|-
| TensorRT
| '''cuDNN'''
| 5.0 RC
| 8.6.0
| A platform for high-performance deep learning inference. It includes a deep learning inference optimizer and runtime that delivers low latency and high-throughput for deep learning inference applications.  
| 8.4.1 
| 8.2.1
|-
|-
| cuDNN
| '''TensorRT'''
| 7.3
| 8.5.2
| The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers.
| 8.4.1
| 8.2.1
|-  
| '''OpenCV'''
| 4.5.4
| 4.5.4
| 4.1.1
|-
|-
| CUDA
| ''' Vision Programming Interface (VPI) '''
| 10
| 2.4
| CUDA Toolkit is a software development platform for building GPU-accelerated applications. The toolkit includes a compiler for NVIDIA GPUs, math libraries, and tools for debugging and optimizing the performance of your applications.
| 2.1
| 1.2
|-
|-
| VisionWorks
| 1.6
| VisionWorks is a software development package for computer vision (CV) and image processing.
|-
| OpenCV
| 3.3.1
| Computer vision library for C++.
|}
|}
<br>


= L4T =


L4T (Linux for Tegra) is the NVIDIA Linux OS version, with changes to support its platforms and integrate custom functionalities to manage Kernel, Device Tree and User Space features. It also includes all the drivers and device tree changes to support the EVM carrier boards. Additional libraries and support to easily use the display and image processing capabilities are added, in order to use the GPU force exposed by the NVIDIA platforms.
=== Linux for Tegra===


Features:
Linux for Tegra (L4T) is the component that provides the OS components (kernel, file system, drivers, firmware) and the bootloader. Jetpack 5.1.3 comes with L4T version 35.5.0, featuring:
* Kernel version 4.9
* Support for 64-bit user space and runtime libraries
* Vulkan Support
* V4L2 media-controller driver support for camera sensors (bypassing ISP)
* libargus provides low-level frame-synchronous API for camera applications
** RAW output CSI cameras needing ISP can be used with either libargus or GStreamer plugin
* Media APIs:
** OpenGL 4.6 Beta
** OpenGL ES 3.2
** OpenGL ES path extensions
** EGL 1.5 with EGLImage
* X Resize, Rotate and Reflect Extension (RandR) 1.4
* X11 Support


= Multimedia API =
* '''Linux Kernel version 5.10''': the previous Jetpack version (4.6) came with Linux Kernel version 4.9.
Multimedia API also known as MMAPI is a collection of lower-level APIs that support application development. MMAPI is for developers who use a custom framework or wish to avoid a framework like GStreamer.  
* '''Ubuntu 20.04-based root file system''': the previous Jetpack version (4.6) came with Ubuntu 18.04-based root file system.
* '''UEFI-based bootloader''': CBoot was used prior to L4T 34.1.
<!--* '''Jetson Orin NX performance emulation on Jetson AGX Orin''':-->
* '''Support for NVSCI''': Provides utilities for streaming data packets between different applications and for inter-process communication (IPC).
* '''Toolchain''': aarch64  gcc-9.3-glibc-2.31 for 64-bit Kernel and user space.
* '''Jetson Power GUI''': a new tool for monitoring the power and thermal status of the Jetson platform.
<br>


MMAPI should be downloaded separately from the NVIDIA Jetson Download Center [https://developer.nvidia.com/embedded/dlc/l4t-multimedia-api-31-0-1 L4T Multimedia API 31.0.1 ]
==== Multimedia API ====
Included as part of L4T, the Multimedia API allows developers to develop camera-based multimedia applications. It has two main components:
<br>


Components:
* V4L2 Sensor driver API: the V4L2 API that enables the capture devices, codecs, and scaling functionality.
* Libargus: the proprietary NVIDIA library that allows using the Jetson Image Signal Processor (ISP).
<br>


* '''Libargus''' for imaging applications.
JetPack 5.0.2 Multimedia API features new NVUtils Multimedia buffer management and buffer transformation API. Previous nvbuf_utils is deprecated in this release.
* '''Buffer utility''' for buffer allocation, management and sharing.
<br>
* '''NVOSD''' for On-Screen display.
* '''V4l2 API extensions''' for video converter, decoder and encoder support.
* '''Aplication framework'''
* '''Samples''' that demostrate image processing with CUDA, object detection and classification with cuDNN, TensorRT and OpenCV4Tegra usage.


= TensorRT =
=== CUDA ===
TensorRT is a C++ library that facilitates high performance inference on NVIDIA platforms. It is designed to work with the most popular deep learning frameworks, such as TensorFlow, Caffe, PyTorch etc. It focus specifically on running an already trained model, to train the model, other libraries like cuDNN are more suitable. Some frameworks like TensorFlow have integrated TensorRT so that it can be used to accelerate inference within the framework. For other frameworks like Caffe, a parser is provided to generate a model that can be imported on TensorRT. For more information on using this library read our wiki [[Xavier/Deep_Learning/TensorRT|here]]
Jetpack 5.0.2 includes CUDA 11.4.14 support. CUDA is a parallel computing API for NVIDIA GPUs. NVIDIA's CUDA Toolkit provides the development environment for creating GPU-accelerated applications in C/C++. Starting with CUDA 11, the various components in the toolkit are versioned independently. Table 2 provides the CUDA 11.4.14 components version information:
<br>


= CUDA =


CUDA is a parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs). With CUDA developers are able to dramatically speed up computing applications by harnessing the power of GPUs.
{| class="wikitable" style="margin: auto;"
 
|+ Table 2: CUDA 11.4 components version
You can learn more about the Volta GPU characteristics and CUDA support on our [[Xavier/Processors/GPU|Volta GPU]] wiki page.
|-
 
! Component Name
For a complete summary of the samples go to the [[Xavier/Processors/GPU/CUDA|CUDA]] section.
! Version Information
 
! Supported Architectures
=VisionWorks=
|-
VisionWorks is a software development package for computer vision (CV) and image processing. It implements and extends the Khronos OpenVX standard and has optimizations using the Xavier's GPU.
| CUDA Runtime (cudart)
 
| 11.4.148
VisionWorks is installed with the JetPack and includes samples that can be used as a starting point for development. The source code is located in <code>/usr/share/visionworks/sources/</code> and should be moved using the following commands
| x86_64, POWER, Arm64
 
|-
<syntaxhighlight lang=bash>
|cuobjdump
/usr/share/visionworks/sources/install-samples.sh ~/
|11.4.120
cd ~/VisionWorks-1.6-Samples/
|x86_64, POWER, Arm64
make -j4 # add dbg=1 to make debug build
|-
</syntaxhighlight>
|CUPTI
 
|11.4.120
this will compile all the samples and save them into the <code>~/VisionWorks-1.6-Samples/bin</code> directory, individual samples can be compiled from their own directory but the executable will be stored in the same directory as when all samples are built from the top directory.
|x86_64, POWER, Arm64
 
|-
{| class="wikitable"
|CUDA cuxxfilt (demangler)
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA Demo Suite
|11.4.100
|x86_64
|-
|CUDA GDB
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA Memcheck
|11.4.120
|x86_64, POWER
|-
|CUDA NVCC
|11.4.152
|x86_64, POWER, Arm64
|-
|CUDA nvdisasm
|11.4.152
|x86_64, POWER, Arm64
|-
|CUDA NVML Headers
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA nvprof
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA nvprune
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA NVRTC
|11.4.152
|x86_64, POWER, Arm64
|-
|CUDA NVTX
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA NVVP
|11.4.193
|x86_64, POWER
|-
|CUDA Samples
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA Compute Sanitizer API
|11.4.120
|x86_64, POWER, Arm64
|-
|CUDA Thrust
|11.4.122
|x86_64, POWER, Arm64
|-
|CUDA cuBLAS
|11.6.5.2
|x86_64, POWER, Arm64
|-
|CUDA cuFFT
|10.5.2.100
|x86_64, POWER, Arm64
|-
|CUDA cuFile
|1.0.2.10
|x86_64
|-
|CUDA cuRAND
|10.2.5.120
|x86_64, POWER, Arm64
|-
|CUDA cuSOLVER
|11.2.0.120
|x86_64, POWER, Arm64
|-
|CUDA cuSPARSE
|11.6.0.120
|x86_64, POWER, Arm64
|-
|-
! Sample !! Description
|CUDA NPP
|11.4.0.110
|x86_64, POWER, Arm64
|-
|-
| Feature Tracker || A local feature tracking demo using the Harris or FAST feature detector and tracks them using Lucas-Kanade algorithm.
|CUDA nvJPEG
|11.5.2.120
|x86_64, POWER, Arm64
|-
|-
| Stereo Matching || Uses the Semi-Global Matching algorithm to evaluate disparity and display the stereo matching.
|Nsight Compute
|2021.2.2.1
|x86_64, POWER, Arm64 (CLI only)
|-
|-
| CUDA Layer Object Tracker || Uses pyramidal Optical Flow to perform object tracking.
|NVTX
|1.21018621
|x86_64, POWER, Arm64
|-
|-
| Hough Transform || Detects circles and lines via the Hough Transform.
|Nsight Systems
|2021.3.2.4
|x86_64, POWER, Arm64 (CLI only)
|-
|-
| Video Stabilizer || Uses the Harris feature detector and sparse pyramidal optical flow to estimate and stabilize a frame's motion.
|Nsight Visual Studio Edition (VSE)
|2021.2.1.21205
|x86_64 (Windows)
|-
|-
| Motion Estimation || Implements the NVIDIA Iterative Motion Estimation algorithm to estimate motion in a frame.
|nvidia_fs1
|2.7.53
|x86_64
|-
|-
| OpenCV and NPP Interop || Shows interoperability of VisionWorks with the NPP and OpenCV library. It takes two images, blurs them and performs alpha blending between them.
|Visual Studio Integration
|11.4.120
|x86_64 (Windows)
|-
|-
| OpenGL Interop || Shows interoperability of VisionWorks and OpenGL.
|NVIDIA Linux Driver
|470.82.01
|x86_64, POWER, Arm64
|-
|-
| Video Playback || Shows basic image and video I/O.
|NVIDIA Windows Driver
|472.50
|x86_64 (Windows)
|-
|-
| NVIDIA Gstreamer Camera Capture || Shows NVIDIA GStreamer camera access.
|}
|}
<!--The last update of CUDA 11.4 is Update 4, in which the Linux x86_64 Driver Version is >=470.82.01.-->
<br>
===CUDA Deep Neural Network (cuDNN)===
cuDNN is an NVIDIA library used by deep learning frameworks to accelerate common components, such as pooling, normalization, and backward convolution. Jetpack 5.0.2 comes with cuDNN 8.4.1, including bug fixes and new enhancements.
<br>
=== TensorRT ===
TensorRT is a framework created and published by NVIDIA for deep learning inference runtime. Jetpack 5.0.2 includes TensorRT 8.4.1 This version of TensorRT have a support for CUDA 11.x.
TensorRT 8.4.1 has been tested with the following dependencies versions:
* cuDNN 8.4.1
* TensorFlow 1.15.5
* PyTorch 1.9.0
* ONNX 1.9.0
<br>
=== OpenCV ===
OpenCV is an Open Source library for computer vision tasks. Jetpack 5.0.2 supports OpenCV version 4.5.4.
<br>
=== Vision Programming Interface (VPI) ===
VPI is a library provided by NVIDIA to easily take advantage of the power of the Programmable Vision Accelerator and the GPU. It brings Computer Vision and Image Processing algorithms implemented to run the PVA, OFA (Optical Flow Accelerator), GPU, and CPU. Jetpack 5.0 comes with VPI 2.1 version.
<br>


<noinclude>
<noinclude>
{{Xavier/Foot|JetPack 4.1‎/Getting Started/Wizard Flashing|JetPack 4.1‎/Compiling_Code}}
{{Xavier/Foot|JetPack 5.0.2‎/Getting Started/Wizard Flashing|JetPack 5.0.2‎/Compiling_Code}}
</noinclude>
</noinclude>

Latest revision as of 15:39, 5 September 2024




Previous: JetPack 5.0.2‎/Getting Started/Wizard Flashing Index Next: JetPack 5.0.2‎/Compiling_Code






This section provides an overview of some of the main software components provided in Jetpack 5.0.2 for Xavier.


Jetpack Components

Table 1 provides the versions of the key packages included in JetPack 5.1.3, Jetpack 5.0.2, and the version previously available in Jetpack 4.6.1:


Table 1: Version of Jetpack components
Package Jetpack 5.1.3 Version Jetpack 5.0.2 Version Jetpack 4.6.1 Version
Linux for Tegra 35.5.0 35.1 32.7.1
CUDA 11.4.19 11.4.14 10.2
cuDNN 8.6.0 8.4.1 8.2.1
TensorRT 8.5.2 8.4.1 8.2.1
OpenCV 4.5.4 4.5.4 4.1.1
Vision Programming Interface (VPI) 2.4 2.1 1.2



Linux for Tegra

Linux for Tegra (L4T) is the component that provides the OS components (kernel, file system, drivers, firmware) and the bootloader. Jetpack 5.1.3 comes with L4T version 35.5.0, featuring:

  • Linux Kernel version 5.10: the previous Jetpack version (4.6) came with Linux Kernel version 4.9.
  • Ubuntu 20.04-based root file system: the previous Jetpack version (4.6) came with Ubuntu 18.04-based root file system.
  • UEFI-based bootloader: CBoot was used prior to L4T 34.1.
  • Support for NVSCI: Provides utilities for streaming data packets between different applications and for inter-process communication (IPC).
  • Toolchain: aarch64 gcc-9.3-glibc-2.31 for 64-bit Kernel and user space.
  • Jetson Power GUI: a new tool for monitoring the power and thermal status of the Jetson platform.


Multimedia API

Included as part of L4T, the Multimedia API allows developers to develop camera-based multimedia applications. It has two main components:

  • V4L2 Sensor driver API: the V4L2 API that enables the capture devices, codecs, and scaling functionality.
  • Libargus: the proprietary NVIDIA library that allows using the Jetson Image Signal Processor (ISP).


JetPack 5.0.2 Multimedia API features new NVUtils Multimedia buffer management and buffer transformation API. Previous nvbuf_utils is deprecated in this release.

CUDA

Jetpack 5.0.2 includes CUDA 11.4.14 support. CUDA is a parallel computing API for NVIDIA GPUs. NVIDIA's CUDA Toolkit provides the development environment for creating GPU-accelerated applications in C/C++. Starting with CUDA 11, the various components in the toolkit are versioned independently. Table 2 provides the CUDA 11.4.14 components version information:


Table 2: CUDA 11.4 components version
Component Name Version Information Supported Architectures
CUDA Runtime (cudart) 11.4.148 x86_64, POWER, Arm64
cuobjdump 11.4.120 x86_64, POWER, Arm64
CUPTI 11.4.120 x86_64, POWER, Arm64
CUDA cuxxfilt (demangler) 11.4.120 x86_64, POWER, Arm64
CUDA Demo Suite 11.4.100 x86_64
CUDA GDB 11.4.120 x86_64, POWER, Arm64
CUDA Memcheck 11.4.120 x86_64, POWER
CUDA NVCC 11.4.152 x86_64, POWER, Arm64
CUDA nvdisasm 11.4.152 x86_64, POWER, Arm64
CUDA NVML Headers 11.4.120 x86_64, POWER, Arm64
CUDA nvprof 11.4.120 x86_64, POWER, Arm64
CUDA nvprune 11.4.120 x86_64, POWER, Arm64
CUDA NVRTC 11.4.152 x86_64, POWER, Arm64
CUDA NVTX 11.4.120 x86_64, POWER, Arm64
CUDA NVVP 11.4.193 x86_64, POWER
CUDA Samples 11.4.120 x86_64, POWER, Arm64
CUDA Compute Sanitizer API 11.4.120 x86_64, POWER, Arm64
CUDA Thrust 11.4.122 x86_64, POWER, Arm64
CUDA cuBLAS 11.6.5.2 x86_64, POWER, Arm64
CUDA cuFFT 10.5.2.100 x86_64, POWER, Arm64
CUDA cuFile 1.0.2.10 x86_64
CUDA cuRAND 10.2.5.120 x86_64, POWER, Arm64
CUDA cuSOLVER 11.2.0.120 x86_64, POWER, Arm64
CUDA cuSPARSE 11.6.0.120 x86_64, POWER, Arm64
CUDA NPP 11.4.0.110 x86_64, POWER, Arm64
CUDA nvJPEG 11.5.2.120 x86_64, POWER, Arm64
Nsight Compute 2021.2.2.1 x86_64, POWER, Arm64 (CLI only)
NVTX 1.21018621 x86_64, POWER, Arm64
Nsight Systems 2021.3.2.4 x86_64, POWER, Arm64 (CLI only)
Nsight Visual Studio Edition (VSE) 2021.2.1.21205 x86_64 (Windows)
nvidia_fs1 2.7.53 x86_64
Visual Studio Integration 11.4.120 x86_64 (Windows)
NVIDIA Linux Driver 470.82.01 x86_64, POWER, Arm64
NVIDIA Windows Driver 472.50 x86_64 (Windows)


CUDA Deep Neural Network (cuDNN)

cuDNN is an NVIDIA library used by deep learning frameworks to accelerate common components, such as pooling, normalization, and backward convolution. Jetpack 5.0.2 comes with cuDNN 8.4.1, including bug fixes and new enhancements.


TensorRT

TensorRT is a framework created and published by NVIDIA for deep learning inference runtime. Jetpack 5.0.2 includes TensorRT 8.4.1 This version of TensorRT have a support for CUDA 11.x.

TensorRT 8.4.1 has been tested with the following dependencies versions:

  • cuDNN 8.4.1
  • TensorFlow 1.15.5
  • PyTorch 1.9.0
  • ONNX 1.9.0


OpenCV

OpenCV is an Open Source library for computer vision tasks. Jetpack 5.0.2 supports OpenCV version 4.5.4.

Vision Programming Interface (VPI)

VPI is a library provided by NVIDIA to easily take advantage of the power of the Programmable Vision Accelerator and the GPU. It brings Computer Vision and Image Processing algorithms implemented to run the PVA, OFA (Optical Flow Accelerator), GPU, and CPU. Jetpack 5.0 comes with VPI 2.1 version.



Previous: JetPack 5.0.2‎/Getting Started/Wizard Flashing Index Next: JetPack 5.0.2‎/Compiling_Code