您现在的位置是:首页 > 文章详情

NVIDIA 在 2024 年出货十亿个 RISC-V 核心的背后

日期:2025-03-03点击:72

在最近的 RISC-V 北美峰会上,NVIDIA 多媒体架构副总裁 Frans Sijstermans 深入阐述了 NVIDIA 选择 RISC-V 作为其嵌入式微控制器架构的原因,以及它如何成为其产品成功的重要组成部分。

背景:NVIDIA 从零到十亿个 RISC-V 核心的历程

NVIDIA 与 RISC-V 的历史可以追溯到 2016 年。当时,NVIDIA 开始将其内部的 Falcon 微处理器(用于 GPU 产品的逻辑控制)转向新的架构。在评估了多种架构后,NVIDIA 选择了 RISC-V ISA,并自此开始将 RISC-V 微控制器添加到其产品中,逐步替换旧版 Falcon。

在其 10 年的生命周期中,NVIDIA 估计出货量约为 30 亿个 Falcon 处理器,预计这一转型最终将导致数十亿个 RISC-V 处理器的出货。通常,每个 NVIDIA 芯片包含 10 到 40 个 RISC-V 核心,具体数量取决于配置。2024 年,基于出货的总芯片数量,NVIDIA 的 RISC-V 处理器出货量超过了十亿个。

自 RISC-V 社区首次会议以来,NVIDIA 一直是该社区的积极成员,并且几乎一直在董事会层面拥有代表权。NVIDIA 参与了许多技术工作组,不仅贡献和分享自己的工作,还从其他社区成员的贡献中受益,同时还参与了 RISE 软件组织。 

尽管如此,NVIDIA 并不常与 RISC-V 联系在一起,这可能是因为其许多工作都是内部进行的,尽管重要,但大多与面向客户的产品无关。RISC-V 在 NVIDIA 产品组合中主要涉及三个关键领域:

  1. 功能级控制器,包括视频编解码器、显示器、摄像头、内存控制器(培训)、芯片间接口和上下文切换。

  2. 芯片/系统级控制,包括资源管理、电源管理和安全性。

  3. 数据处理,包括网络中的数据包路由以及 DLA(非 GPU)中的激活和其他深度学习网络层。

NVIDIA 的 RISC-V 核心

NVIDIA 从仅支持 32 位的 Falcon 核心过渡到 RISC-V 的初衷是为了满足 64 位能力的需求。他们的第一个 RISC-V 开发是一个相对普通的双发射乱序 RISC-V 核心,配备标准扩展,并可作为多处理器版本部署。随后,他们还为面积受限的应用添加了 32 位版本,并增加了一个 1024 位向量单元的向量处理器。

NVIDIA 还开发了几个自定义扩展,有些是特定于 NVIDIA 的,另一些则对一般用户有益。例如,2kB 页面大小扩展是 NVIDIA 独有的,能够提高传统软件性能 50%。同样,64 位地址扩展在大规模系统中非常有用,如数据中心,其内存是分布式且相距甚远。

另一方面,他们的指针掩码扩展在安全和保护应用方面具有广泛的潜力。因此,NVIDIA 将该扩展提交给 RISC-V 标准,并获得批准,现在已被许多社区成员使用。

NVIDIA 还拥有额外的扩展,可实现通用功能、安全性和性能,虽然这些扩展在技术上并不特别先进,但对于整个系统来说至关重要。

RISC-V 支持的子系统

NVIDIA 的 SoC 使用自己的 RISC-V 子系统,名为 Peregrine。除了 RISC-V 核心外,它还包括其他外设,如 DMA 和安全 IP。Peregrine 对 NVIDIA 至关重要,因为它允许他们选择和重用 30 多个系统控制和管理应用,而无需每次都进行独立开发。RISC-V 架构使 NVIDIA 具备灵活性和模块化,能够根据需求配置子系统。例如,他们可以选择 32 位或 64 位核心,并添加特定工作负载所需的扩展,从而最大化开发重用和投资回报。

类似地,在软件方面,所有 30 多个应用使用单一堆栈,这使得诸如引导、操作系统、分离内核和应用程序库等项目的重用变得显著。

NVIDIA 同样致力于使其产品尽可能安全,内部设有一支进攻性安全团队,作为“黑客”积极寻找设计中的弱点、漏洞和错误。

Peregrine 子系统的核心组件是分离内核,可以被视为一个非常基础的虚拟机监控器。它将系统划分为不同的独立部分,便于单独验证。用户可以在不同的分区上运行不同的软件。例如,符合 ASIL-D 认证的安全合规应用可以在一个分区上运行,而另一个非认证应用可以在另一个分区独立运行。

应用实例

NVIDIA 拥有 30 多个使用 RISC-V 核心的系统控制和管理应用,并且可以根据具体用例灵活部署。以下详细介绍了其中两个应用程序。

首先,GPU 系统处理器(GSP)为 NVIDIA 的软件开发方式带来了根本性变化。GSP 是位于 GPU 顶部的处理器,负责创建 GPU 可执行的抽象。主处理器和内核驱动不再使用 GPU 内部的各个控制寄存器,而是直接与 GSP 通信,GSP 将这些高级命令转换为低级控制寄存器的操作。

GSP Peregrine 配备 64 位 RISC-V 处理器,提供单线程和多线程版本。最重要的是,GSP 可以完全访问 GPU 中的所有内容,包括内存和显示控制器,这些在软件中需要非常仔细地管理。从软件的角度看,用户可以部署具有内核驱动和多个访客虚拟机的主处理器。访客虚拟机在 GSP 上具有相应的 vGPU 运行时分区,而分离内核确保它们之间相互隔离,不会干扰。资源管理器会根据需要切换不同的访客,并确保资源分配公平。这一功能支持了诸如保密计算等特定用例,在这种情况下,GPU 被分配给访客,且不会受到虚拟机监控器的影响。在这种情况下,RISC-V 架构因其特定的隔离能力和 NVIDIA 自身的扩展特性而对安全性至关重要。

第二个支持 NVIDIA RISC-V 的应用程序是深度学习加速器,作为一些专用 AI SoC 的一部分。它本质上是一个图处理编程的推理引擎。例如,ONNX 程序表示深度学习网络中处理的层图。它使用标准的 RISC-V 编译器,将内核代码编译为可执行文件。在此基础上,还有一个 RVV 编译器,将其转换为可加载格式。也可以将不同内核组合成单一内核,以实现最优执行。

DLA 并不会在 RISC-V 处理器上运行所有东西,主卷积核心和矩阵乘法器是独立的实体。在下图的硬件结构中,有两个 RISC-V 处理器,一个是控制核心,简单的 32 位单元,另一个是 NVRVV,这是一种 1024 位向量单元。还包括一个卷积核心,总共六个硬件引擎。例如,Rubik 是一个智能 DMA 数据转换器,负责数据传输,而 RISC-V RVV 向量处理器用于大多数非矩阵乘法的层。简而言之,它是一个在 DLA 上运行的完整 ONNX 实现。

总结:为何 RISC-V 适合 NVIDIA

总结来说,NVIDIA 选择 RISC-V ISA 以及它取得成功的原因有 5 个:

  1. 定制化:定制能力至关重要,使 NVIDIA 能够最大化使用硅片。RISC-V 的许可模型允许他们使用基本 ISA 作为构建块,添加适合特定应用需求的扩展和配置文件。

  2. 硬件/软件协同设计:确保硬件针对软件负载进行了优化,从而提升效率和性能。

  3. 配置选项:标准的“现成”处理器往往对应用要求过高。通过 RISC-V,NVIDIA 可以通过配置实现仅需的特定扩展来节省成本和开发努力。

  4. 自定义扩展:允许 NVIDIA 添加特定功能、安全性和性能等要求。

  5. 统一的硬件和软件架构:允许 NVIDIA 在其 30 多个应用程序中重复使用资产,而无需为每个应用程序创建或调整新架构。减少开发工作量、简化部署并降低成本。 

详情可查看原文。 

原文链接:https://www.oschina.net/news/336623/nvidia-shipped-one-billion-risc-v-cores-2024
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章