首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >NVIDIA Jetson 上可以兼容多个CUDA版本了?

NVIDIA Jetson 上可以兼容多个CUDA版本了?

作者头像
GPUS Lady
发布于 2022-10-11 18:44:23
发布于 2022-10-11 18:44:23
2.6K0
举报
文章被收录于专栏:GPUS开发者GPUS开发者

国庆节期间,NVIDIA在其开发者Blog上发布了一篇文章:

也就是说:开发者从CUDA11.8开始,可以在Jetson上像PC上那样的安装新版本的CUDA开发包了!

这确实是一件好事情,为什么这么说呢?

原本Jetson上有两种系统,一种是NV打包好的Jetpack,普通开发者们已经很熟悉了。另外一种是用的NV的BSP包,第三方厂商自己制作的系统(在NV的一堆组件, 包括内核源代码的基础上)自己构建的。

但是无论这两种情况,里面都自带有一个固定版本的CUDA开发包/运行时/驱动,例如11.x或者10.x。不能改。一旦你选择刷哪个版本的JetPack,CUDA的版本都是跟JetPack版本固定死了。

但是很多用户要求,能够像PC上的那样,直接下载一个新的驱动/开发包,就能使用新的CUDA版本,于是NVIDIA在这篇文章里宣布——NV对Jetson也提供了这个功能。无论你用的是Jetpack还是第三方的系统,都可以像安装软件一样的那样安装CUDA开发包了(从CUDA 11.8开始)。

Jetson 上的 CUDA 可升级包

为何以前不提供的理由是,Jetson上的CUDA和普通系统上的CUDA不一样,它基本的系统里面(Jetpack或者BSP的二次开发出来的)就固定含有了CUDA驱动了,不能轻易动。不能轻易动的原因是,Jetson系统往往是需要经过时间检验的稳定系统(例如出货给最终用户),如果用户能随意的更新的话,对整个Jetpack系统,或者BSP二次开发的系统的稳定性就造成了困扰,这样厂商就需要重新测试,重新检验稳定性,是一个问题。但是的确又有能随时使用每3个月发布的最新CUDA开发包的新功能的需求,这就产生了一个矛盾。

怎么办?

NV于是决定从Jetpack 5.0和CUDA 11.8开始,对基本系统(包括Jetpack和BSP衍生出来的系统)做一个简单的修改:

从 CUDA 11.8 开始,CUDA 引入了升级路径,为 Jetson 开发人员提供了将 CUDA 驱动程序和 CUDA 工具包更新到最新版本的选项。

下图显示的蓝色方框描述了 NVIDIA JetPack 5.0 SDK 中默认存在的组件。虚线将 Jetson Linux BSP 与 NVIDIA JetPack SDK 的其他组件分开。绿色框表示您可以通过此功能升级到的 CUDA 组件。

图 1. Jetson 上的 CUDA 升级路径

通过引入 CUDA 驱动程序升级(也称为 CUDA 兼容性包),这些升级成为可能,如图 2 所示。

此升级包主要包含 CUDA 驱动程序 ( libcuda.so.*) 及其依赖项,使您能够访问每个季度 CUDA 版本附带的最新和最强大的 CUDA 功能。

如果没有此软件包,您之前只能使用 Jetson Linux BSP 中打包的默认 CUDA 驱动程序提供的功能。您没有升级到最新 CUDA 驱动程序和工具包的机制。

有了这个软件包,为现有 Jetson Linux BSP 投入了漫长而彻底的验证周期的 Jetson 用户可以升级到最新的 CUDA 版本。此升级是在现有的 Jetson Linux BSP 上完成的,保持不变。

图2. 引入新的 CUDA 升级包

说白了,就是引入了一个叫中间兼容层的东西 (cuCompart),引入了这个东西为啥就解决了呢?因为以前追求稳定的内置驱动,是直接和NVMAP/NVHOST/EGL/NVGPU等更底层的组件直接交互的,所以不能轻易动,现在从JP 5.0起,驱动变成和cuCompat交互了,而cuCompat再和底层的NVMAP/NVHOST/EGL/NVGPU交互,这样就多了一个中间层次了。你可以简单理解成,多了一个抽象层,从原本的驱动中抽离,这个抽象层本身可以得到测试,可以稳定。而新版本的驱动变成了它上面的一个更高一层的软件了。

这样两层分离后,NV认为,现在可以随意的更新驱动了(*), 于是就多了现在的新功能:

我们可以直接在原版的基础上,安装新的CUDA开发包(含有驱动和开发工具/运行时等等),安装完毕后,用户就能直接在jetson上用新版本的,也就是原文中的每3个月发行一次的最新CUDA版本了。NV认为引入的这个cuCompat层次,消除了以前jetson上驱动直接和底层交互的弊端,我们可以同时享受稳定性,和最新特性了。

如何在 Jetson 上升级 CUDA

在 CUDA 11.8 中,CUDA 下载页面现在显示一个新架构aarch64-Jetson,如图3所示,以及相关的 aarch64-Jetson CUDA 安装程序,并提供有关如何下载和使用本地安装程序的分步说明,或 CUDA 网络存储库,以安装最新的 CUDA 版本。

图3 . 带有aarch64-Jetson 安装程序下载选项的 CUDA 11.8 下载页面

新的aarch64-JetsonCUDA 安装程序将 CUDA 工具包和升级包打包在一起。提供的分步安装说明可确保下载并安装 CUDA 升级包以及适用于 Jetson 设备的相应 CUDA 工具包。

图4. Jetson 设备的 aarch64-Jetson CUDA 安装程序

注意:NV强调了,目前只能支持2个版本的CUDA存在,不像PC上能支持任意多个。这两个版本是:Jetpack(或者基于BSP延申出来的其他jetson系统)自带的那个版本,外加用户安装的这个版本。如果用户试图安装11.8和11.9(还没有),则后者会覆盖前者,也就是变成自带版本+11.9,而不是自带版本+11.8+11.9,和PC不同。

总之,这是一个很好的特性,通过引入了新的兼容层次,让Jetson系统无需频繁更新,可以保持稳定性;同时又能享受到最新的CUDA开发包红利。

更多:

CUDA Toolkit 11.8 新功能揭晓

NVIDIA出了这么多Jetson模组,到底兼容不?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • Jetson 上的 CUDA 可升级包
  • 如何在 Jetson 上升级 CUDA
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档