NVIDIA Jetson Linux 35.3.1-开发指南-Jetson软件架构

Jetson软件架构

下图显示了NVIDIA®Jetson™Linux架构。

以下部分描述了每个模块的组件。在本开发人员指南或其他地方,许多组件的名称是指向组件主留档的链接。一些组件具有带有附加描述的单独链接。

文档

本开发人员指南是JetsonLinux留档的核心组件。它描述了JetsonLinux的体系结构,并提供了有关如何使用其功能的信息。

JetsonLinuxAPI参考》提供了有关JetsonLinuxAPI和API扩展的详细留档,可用于帮助您开发应用程序。

许多其他文档提供了与使用JetsonLinux进行应用程序开发有关的其他事项的信息,例如各种Jetson处理模块的数据表和模块开发工具包的用户指南。大多数这些文档和其他文档可以通过以下一个或多个访问:

示例应用程序

深度学习组件

Jetson系列产品专为深度学习而设计,深度学习是一种人工智能,它使计算设备能够通过经验“学习”如何最好地处理特定类别的问题。

  • NVIDIA®TensorRT™: 英伟达TensorRT 为深度学习应用的生产部署提供高性能的神经网络推理引擎,可用于优化、验证和部署经过训练的神经网络,用于对Jetson平台进行推理,Multimedia API提供了使用该引擎的示例。

  • NVIDIA®cuDNN™: 英伟达cuDNN 为深度神经网络提供GPU加速的原语库。cuDNN为标准例程提供高度调整的实现,例如前向和后向卷积、池化、归一化和激活层。

  • NVIDIA®Triton™: 英伟达Triton 是一种开源推理服务软件,有助于标准化模型部署和执行,并在生产中提供快速且可扩展的AI。

计算机视觉

计算机视觉涉及捕获和处理来自传感器(摄像头)的图像和视频流、跟踪特征以及执行各种类型的转换,例如去扭曲和颜色转换。

  • 视觉编程接口(VPI):在Jetson模块中的多个硬件加速器上实现计算机视觉和图像处理算法的软件库。

  • OpenCV: 提供NVIDIA专门为Jetson平台优化的OpenCV版本。它包含特定于Jetson的优化,使其能够比OpenCV实现运行得更快。

    OpenCV留档可以在OpenCV留档网站上找到。一般信息在opencv.org主网站上。

加速计算

加速计算提供了高度优化的库,应用程序可以使用这些库在GPU上并行执行computation-intensive原语。

  • cuBLAS: CUDA基本线性代数子程序,一个支持GPU加速线性代数运算的软件库。

  • cuFFT: CUDA快速傅里叶变换,一个支持GPU加速快速傅里叶变换的软件库。

图形

JetsonLinux为应用程序中的图形提供多种类型的支持。

  • Vulkan®:一种低级API,可让开发人员直接访问GPU。

  • OpenGL®ES:用于嵌入式系统上全功能2D和3D图形的跨平台API。

  • X Driver: X驱动程序的GPU加速实现。

  • Wayland韦兰: 基于Wayland协议的合成器Weston的GPU加速实现。

  • LibDRM: 提供对Linux直接渲染管理器(DRM)的访问的库。它由驱动程序和用户空间库组成。JetsonLinux实现使用GPU来加速其操作。参见JetsonLinuxAPI参考drm-nvdc-docs. h的描述。

多媒体

多媒体组件支持视频流处理和其他类型的多媒体处理。

  • Gstreamer: 提供更高级别的多媒体API。此框架提供与多媒体API相同类型的功能,但级别更高。

                GStreamer框架包含在JetsonLinux发行版中。它由SDK管理器安装。

  • V4L2库: 支持V4L2(Linux视频,版本2)API作为多媒体API的扩展;包括视频转换器、解码器和编码器。

传感器

传感器组件捕获来自传感器(摄像头)的输入并对其执行处理的初始阶段。它们为实现传感器处理提供高级构建块,并为许多步骤提供GPU加速。

  • 相机(Libargus/V4L2): 基于相机核心堆栈的低级API。

    SDK Manager将此组件作为多媒体API的一部分安装,该API提供了一组API,支持灵活的应用程序开发,并更好地控制底层硬件块。

  • SPE RTOS: 提供对传感器处理引擎(SPE)的软件访问,SPE是Jetson模块ARM®Cortex™-R5微控制器的组件,支持hardware-accelerated传感器输入处理。

  • PCI/以太网:

  • SPI/CAN/I2 S API:

CUDA-X

NVIDIA®CUDA®是一个并行计算平台,可以轻松地将GPU用于通用计算,对于实现图形应用程序特别有用,它可以与几种编程语言中的任何一种一起使用。

CUDA-X是一个包,包括几个常见的面向图形的任务的基于CUDA和CUDA的实现。

主板支持包

JetsonLinux板支持包(BSP)包含使用JetsonLinux开发和运行应用程序所需的所有软件。当前的JetsonLinuxBSP可从 JetsonLinux页面 在 NVIDIA开发者网站。 它包括:

  • Sources:Jetson Linux是一个开源产品,源代码包含在捷信Linux发行版中。

  • 示例根文件系统:源自Ubuntu发行版的根文件系统。您可以使用此根文件系统作为开发为您的应用程序量身定制的基础。

  • Jetson : 一套用于开发JetsonLinux应用程序的软件组件。

  • Jetson Linux内核: NVIDIA为在Jetson设备上使用而优化的UbuntuLinux内核版本。

  • Bootloader:Jetson设备上操作系统的引导软件。

开发者工具

NVIDIA提供了一整套开发人员工具,用于编写、构建和调试JetsonLinux应用程序。

  • NVIDIA®Nsight™:NVIDIA Nsight 跨多个CPU内核配置应用程序执行情况,并通过识别代码的缓慢部分来帮助您提高应用程序性能。

    在Linux主机上运行。支持所有Jetson产品。

  • Nsight图形: 通过控制台界面调试和配置OpenGL和OpenGL ES图形程序。

  • Nsight系统计算: 交互式配置CUDA应用程序的内核操作。通过用户交互界面和命令行工具提供详细的性能指标和API调试。

  • 交叉编译器和诊断实用程序:Jetson Linux BSP包括一个 工具链 用于在Ubuntu主机系统上编译应用程序,以及一套 开发工具 用于调试和优化它们。

  • Flashing 支持: 用于帮助将软件刷新到Jetson设备的脚本和相关工具。

其他组件

  • JetsonLinux用户空间驱动程序:在用户空间中运行的NVIDIA驱动程序。

  • 多媒体API(MMAPI):支持灵活应用程序开发的低级API的集合。多媒体API包括:

    MMAPI 还包括演示使用CUDA进行图像处理以及使用cuDNN、TensorRT和OpenCV4Tegra进行目标检测和分类的示例。

    MMAPI 适用于使用自定义框架或希望避免使用GStreamer等框架的开发人员。

    MMAPI 必须从NVIDIA Jetson下载中心单独下载。它不包含在JetsonLinuxBSP中。

CUDA工具包

  • 具有跨部署支持的Ubuntu主机工具包:主机的CUDA工具包。

  • CUDA工具包: 用于Jetson开发工具包的CUDA工具包。

图形

  • OpenGL: 开放图形库API用于渲染矢量图形。

  • EGL™: Khronos渲染API(如OpenGL ES或OpenVG)与底层本机平台窗口系统之间的接口。

JetPack SDK

  • NVIDIA JetPack™SDK留档: 提供您在Jetson平台上的开发详细信息。

  • 示例:旨在为您提供使用Jetson开发平台的实践示例。

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值