NVIDIA JetPack SDK 简介

NVIDIA JetPack SDK 是构建 AI 应用的最全面的解决方案。JetPack SDK 为硬件加速的边缘 AI 开发提供完整的开发环境。

JetPack SDK 包含 Jetson Linux 驱动程序包,其中包含引导加载程序、Linux 内核、Ubuntu 桌面环境以及一整套用于加速 GPU 计算、多媒体、图形和计算机视觉的库。它还包括主机和开发者套件的示例、文档和开发者工具,并支持更高级别的 SDK,例如用于流视频分析的 DeepStream、用于机器人的 Isaac 和用于对话式 AI 的 Riva。

JetPack 6.2 组件包括以下内容

操作系统镜像

JetPack 6.2 包括 NVIDIA Jetson Linux 36.4.3,其中包含 Linux Kernel 5.15、基于 UEFI 的引导加载程序、基于 Ubuntu 22.04 的根文件系统、NVIDIA 驱动程序、必要的固件、工具链等等。有关 Jetson Linux 36.4.3 中的所有亮点,请参阅发行说明

  • TensorRTcuDNN,用于高性能深度学习应用。

    TensorRT 是一个高性能深度学习推理运行时,用于图像分类、分割和目标检测神经网络。它可以加速深度学习推理,并减少卷积和反卷积神经网络的运行时内存占用。

    CUDA 深度神经网络库为深度学习框架提供高性能原语。它包括对卷积、激活函数和张量转换的支持。

  • CUDA,用于跨多个领域的 GPU 加速应用。

    NVIDIA 容器运行时,用于容器化的 GPU 加速应用。

    容器运行时支持创建、分发和使用容器化的 GPU 加速应用。

  • 多媒体 API

    Jetson 多媒体 API 包为灵活的应用程序开发提供低级 API。

    相机应用 API:libargus 为相机应用提供低级帧同步 API,具有每帧相机参数控制、多个(包括同步)相机支持和 EGL 流输出。需要 ISP 的 RAW 输出 CSI 相机可以与 libargus 或 GStreamer 插件一起使用。在任何一种情况下,都使用 V4L2 媒体控制器传感器驱动程序 API。

    传感器驱动程序 API:V4L2 框架支持视频解码、编码、格式转换和缩放功能。用于编码的 V4L2 提供了许多功能,例如比特率控制、质量预设、低延迟编码、时间权衡、运动矢量图等等。

  • VPIOpenCV,以及用于视觉计算应用。

    VPI (视觉编程接口),一个软件库,提供在 PVA (可编程视觉加速器)、GPU 和 CPU 上实现的计算机视觉/图像处理算法。

    OpenCV 是领先的开源库,用于计算机视觉、图像处理和机器学习,现在具有 GPU 加速功能,可用于实时操作。

示例

有许多示例演示了 JetPack 组件的使用。这些示例包含在参考文件系统中,并且可以在开发者套件上编译。

JetPack 组件

参考文件系统上的示例位置

TensorRT

/usr/src/tensorrt/samples/

cuDNN

/usr/src/cudnn_samples_<version>/

CUDA

/usr/local/cuda-<version>/samples/

多媒体 API

/usr/src/jetson_multimedia_api

OpenCV

/usr/share/opencv4/samples/

VPI

/opt/nvidia/vpi/samples/

开发者工具

JetPack 包含用于应用程序开发、调试、性能分析和优化的开发者工具。一些工具直接在 Jetson 系统上使用,另一些工具在连接到 Jetson 系统的 Linux 主机上运行。

用于应用程序开发和调试的工具

  • NVIDIA Nsight Eclipse Edition,用于开发 GPU 加速应用。

    NVIDIA Nsight Eclipse Edition(与 CUDA Toolkit 捆绑)是一个功能齐全的 IDE,由 Eclipse 平台驱动。它提供了一个一体化的集成环境,用于编辑、交叉编译和调试 CUDA-C 应用程序。Nsight Eclipse Edition 支持丰富的商业和免费插件。*在 Linux 主机上运行。支持所有 Jetson 产品。*

  • CUDA-GDB,用于应用程序调试。

    CUDA-GDB 是一个命令行工具,与 CUDA Toolkit 捆绑在一起,提供无缝的调试体验,允许您同时调试应用程序的 CPU 和 GPU 部分。*在 Jetson 系统或 Linux 主机上运行。支持所有 Jetson 产品。*

  • CUDA-MEMCHECK,用于调试应用程序内存错误。

    CUDA-MEMCHECK 是一个命令行工具,与 CUDA Toolkit 捆绑在一起,用于检测 GPU 代码中内存访问错误的来源和原因。CUDA-MEMCHECK 还会报告运行时执行错误,识别可能导致应用程序运行时出现“未指定的启动失败”错误的情况。*在 Jetson 系统上运行。支持所有 Jetson 产品。*

用于应用程序性能分析和优化的工具

  • NVIDIA Nsight Systems,用于跨 GPU 和 CPU 的应用程序性能分析。

    NVIDIA Nsight Systems 是一款低开销的系统级性能分析工具,为开发人员提供分析和优化软件性能所需的见解。它使用 GPU 跟踪、CPU 采样和跟踪以及操作系统线程状态跟踪来可视化应用程序的算法,帮助开发人员识别优化代码的最大机会。*在 Linux 主机上运行。支持所有 Jetson 产品。*

  • nvprof,用于跨 GPU 和 CPU 的应用程序性能分析。

    nvprof 是一个命令行工具,与 CUDA Toolkit 捆绑在一起,使您能够收集和查看性能分析数据,即 CPU 和 GPU 上与 CUDA 相关的活动时间线。*在 Jetson 系统上运行。支持所有 Jetson 产品。*

  • Visual Profiler,用于跨 GPU 和 CPU 的应用程序性能分析。

    Visual Profiler(与 CUDA Toolkit 捆绑)将在未来弃用。开发人员应使用 NVIDIA Nsight Systems 进行跨 GPU 和 CPU 的应用程序采样和跟踪,并使用 Nsight Compute 进行 CUDA 内核性能分析。*在 Linux 主机上运行。支持所有 Jetson 产品。*

  • NVIDIA Nsight Graphics,用于图形应用程序调试和性能分析。

    NVIDIA Nsight Graphics 是一个独立的应用程序,用于调试和分析图形应用程序。强大的分析工具可帮助识别优化机会。*在 Linux 主机上运行。支持所有 Jetson 产品。*

  • NVIDIA Nsight Compute,用于交互式 CUDA 内核性能分析。

    NVIDIA Nsight Compute(与 CUDA Toolkit 捆绑)是一个用于 CUDA 应用程序的交互式内核性能分析器。它提供详细的性能指标用于分析,并支持基线和当前运行之间的结果比较。Nsight Compute 可以通过分析脚本进行扩展,以进行后处理结果。在 Linux 主机上运行。*支持 Jetson AGX Xavier 和 Jetson Xavier NX。*

  • NVIDIA Nsight Deep Learning Designer,用于开发神经网络。

    NVIDIA Nsight Deep Learning Designer 是一个集成开发环境,可帮助开发人员高效地设计和开发用于应用内推理的深度神经网络。

  • NVIDIA Nsight Compute CLI,用于 CUDA 内核性能分析。

    NVIDIA Nsight Compute CLI(与 CUDA Toolkit 捆绑)提供了一种非交互式方式,用于从命令行分析应用程序。它可以将结果直接打印在命令行上或将其存储在报告文件中。它也可以用于简单地启动目标应用程序,然后暂停它,直到另一个工具连接以进行性能分析。*在 Jetson 系统或 Linux 主机上运行。支持 Jetson AGX Xavier 和 Jetson Xavier NX。*

文档

JetPack SDK 相关文档

JetPack 文档

OpenCV 文档

SDK 管理器文档

NVIDIA Nsight Eclipse Edition 文档

Jetson Linux 驱动程序包开发者指南

CUDA-GDB 文档

L4T 发行说明

CUDA-MEMCHECK 文档

TensorRT 文档

NVIDIA Nsight Systems 文档

cuDNN 文档

nvprof 文档

CUDA Toolkit

Visual Profiler 文档

NVIDIA 容器运行时

NVIDIA Nsight Graphics 文档

多媒体 API 参考

NVIDIA Nsight Compute 文档

VisionWorks 文档

VPI 文档