“一个架构、数十种应用程序、数十亿个处理器”这是在今年10月22日召开的RISC-V Summit 2024上,英伟达多媒体架构/ASIC 副总裁Frans Sijstermans所发表的关于英伟达在RISC-V领域的主题演讲。通过最新的一次披露,我们才了解到,英伟达实际上在这一领域已经深耕多年。
英伟达的RISC-V历史
早在2015年,英伟达就将RISC-V选定为其专有Falcon MCU的继任架构。Falcon一直是英伟达专有的控制处理器,负责在GPU芯片中完成关键的控制任务。然而,随着技术的快速演进,新兴用例对Falcon的功能和性能提出了更高要求,现有的CPU架构和指令集(ISA)都难以满足。通过比较多种指令集,英伟达认为RISC-V是下一代ISA的正确方向,并且称“RISC-V 是唯一符合我们所有标准的架构。”
各种指令集的综合比较(来源:RISC-V in NVIDIA,2017)
2016 年,英伟达将基于RISC-V指令集架构的新型GPU系统处理器 (GSP) 解决方案取代其代号为Falcon的快速逻辑控制器处理器。这款新型RISC-V处理器的代号为NV-RISCV,被用作GPU的控制器核心,协调大量GPU核心中的所有内容。
NVIDIA RISC-V Story,2016(来源:英伟达)
为了实现从专有架构向RISC-V的这一转型,英伟达在内部自主研发了RISC-V的硬件与软件。如今,几乎所有的MCU内核都基于RISC-V架构。在过去近十年的时间里,英伟达已经累计量产了约30亿颗基于RISC-V内核的芯片。同时,英伟达保守估计,预计到2024年,英伟达芯片中将出货约10亿个RISC-V核心。
来源:NVIDIA RISC-V Summit 2024演讲
根据英伟达公开的资料,目前英伟达已经推出了三类RISC-V控制器核心,分别是NV-RISCV32、NV-RISCV64和NV-RVV,每一类核心都针对特定应用进行了优化,展现了极高的灵活性和可扩展性,逐渐取代了英伟达专有的Falcon MCU:
NV-RISCV32:支持RV32I-MU指令集,包括乘法、压缩和浮点运算功能。它们使用顺序执行架构,单发射,性能达到1.8 CM/MHz,主频为1.8 GHz。
NV-RISCV64:支持RV64I-MSU指令集,增加了位操作和原子操作功能。其使用乱序执行架构,双发射,性能提升至5 CM/MHz,主频为2 GHz,并支持对称多处理(SMP)。
NV-RVV:在NV-RISCV32的基础上增加了向量扩展(1024位),以支持高性能向量运算。
英伟达还在RISC-V核心上增加了超过20项自定义扩展功能,主要包括三大类:(一)功能扩展:支持64位物理地址/虚拟地址扩展,提供2KB页面大小的支持;(二)安全性:集成ICD(In-Circuit Debug)的安全调试功能,支持ROM内存保护;(三)性能优化:提供缓存操作扩展以提升性能。
英伟达RISC-V核心的模块化设计还包括多个关键组件,如中断控制器、Trace Buffer、在电路调试模块以及引导和控制寄存器等。这些模块与NV MPU(内存保护单元)、PMP(物理内存保护)和PMA(物理内存属性)相结合,确保了高效的任务执行和数据处理能力。
一个架构:Peregrine子系统
英伟达的Peregrine子系统是其RISC-V生态系统中的关键设计之一,展现了高效资源利用和模块化构建的优势。Peregrine子系统的核心设计理念是复用。它通过将RISC-V核心与通用外设相结合,不仅减少了硬件的冗余,还优化了软件开发流程。
Peregrine采用模块化的构建策略,支持多种配置选项:例如,外设模块的存在与否可以根据具体需求灵活调整;RISC-V扩展可以按需启用,以适应不同应用场景;缓存(Cache)和TCM(紧耦合存储器)的大小支持参数化设置,确保资源分配的最优化。
从架构上看,Peregrine子系统由多个关键模块组成:核心模块是由NV-RISCV核心以及指令缓存(ICACHE)和数据缓存(DCACHE)组成。外设则包括中断控制器、随机数生成器、邮箱通信模块、定时器。加速引擎含有DMA、RSA/PKA、AES哈希引擎。存储系统包括ROM、ITCM和DTCM,与GPU控制平面和内存系统紧密集成。
Peregrine子系统的设计特别适用于GPU控制任务以及其他需要高效资源管理的场景。这种灵活的模块化设计使其能够支持多种功能,同时通过参数化的配置选项进一步适配特定需求。
Peregrine生态系统将所有英伟达产品中的嵌入式硬件和软件统一起来,通过消除基础原语(如隔离和加密)中的重复设计,大幅优化资源使用效率。这种统一的架构设计不仅减少了开发成本,还最大化了英伟达产品在软件和硬件层面的协同作用。
Peregrine生态系统采用高度可配置的架构设计,能够轻松适配不同的产品、功能和部署需求。这种灵活性使得英伟达的产品能够快速响应市场变化和客户需求,同时为新功能的开发提供了坚实基础。
安全性是Peregrine生态系统的核心支柱之一,其设计包括:
统一的物理攻击缓解措施:为所有硬件提供一致的保护。
深入的安全研究投资:主动探索并解决潜在的安全风险。
安全架构基础:基于Peregrine和NV-RISCV架构的安全框架,为GPU软件的安全性提供了可靠支持。
Peregrine子系统通过高度复用和模块化的设计策略,不仅增强了英伟达在RISC-V生态中的竞争力,也为硬件架构的高效化提供了新的范式。这一子系统展现了英伟达在开源技术与专有创新结合上的深厚积累,为GPU控制和加速任务提供了强大的支持。
英伟达将RISC-V用在了哪里?
据Frans Sijstermans的介绍,基于RISC-V架构,英伟达开发了两种处理器:
基于RISC-V的GPU系统处理器(GSP)
英伟达的GPU系统处理器(GSP)是一个基于嵌入式RISC-V架构的核心组件,专门用于优化GPU与主机处理器之间的协作。
从硬件结构来看,GSP位于主机处理器与GPU的中间层,通过PCIe接口与主机通信,并直接控制GPU的硬件单元和视频内存。GSP基于模块化设计,结合了多个嵌入式RISC-V核心及协作组件:包含多个RV64核心,一致性互连(Coherent Fabric)、统一TCM/缓存,还有一些外围模块。内存接口连接到GPU的视频内存。IOPMP(输入输出内存保护)提供内存访问的安全保障。
GSP具有三大重要的功能:(一)内核驱动卸载:GSP接管了许多传统上由主机内核驱动程序完成的功能,减轻了主机处理器的负担,提高了系统整体效率。(二)减少GPU对CPU的暴露:GSP通过中间抽象层的方式,将GPU的低级硬件细节封装起来,降低了GPU在系统中直接暴露给CPU的复杂度。(三)封装GPU低级细节:GSP的软件模块负责对GPU底层功能的封装,为上层软件提供了简化的接口,同时增强了系统的安全性和可靠性。
GSP的架构设计允许PC或GPU在云端被多个远程用户共享使用,特别适合虚拟化和多租户环境。
英伟达的GPU系统处理器(GSP)不仅在硬件层面展现了强大的性能优化能力,其软件架构同样体现了高度灵活性和安全性。具体而言,GSP的软件架构支持多分区模式,允许GPU资源在多个虚拟机(Guest VM)之间共享。GSP内部的资源管理器负责为每个虚拟GPU(vGPU)分配计算时间、内存等资源,确保各分区能够高效运行而互不干扰。每个Guest VM的驱动程序仅与其对应的vGPU运行时分区进行通信,确保虚拟机之间的隔离性和数据安全性。通过卸载内核驱动任务,GSP支持机密计算功能,为高安全性应用提供支持。
这一切强大的功能,都是RISC-V架构所提供的基础支持,包括安全性和隔离能力以及为GPU集成量身定制的扩展功能。
基于RISC-V的深度学习加速器(DLA)
英伟达的深度学习加速器(Deep Learning Accelerator,DLA)利用RISC-V架构的模块化设计和RVV向量扩展,为深度学习任务提供了高效的硬件加速能力。
硬件层面,DLA采用的是包括NV-RISCV32 (RV32IMC) 和 NV-RVV(RISC-V向量扩展),分别用于标量和向量计算。模块化设计中包括卷积核心、SDP(缩放与动态精度处理)、矩阵变换和优化模块RUBIK、CDP(压缩与解压模块)、Cfg DMA(可配置DMA)。内存接口集成了ITCM、DTCM和VTCM等紧耦合存储器,用于高效数据访问。另外,卷积缓冲器和内存接口优化了数据流传输和并行计算。
在编译器上,DLA的编译器集成了RVV编译器和RISC-V通用编译器,编译器可以将多个节点(nodes)整合到一个RVV内核中,优化硬件计算效率。DLA硬件模块直接通过运行时和编译器与高层应用交互。DLA特别适用于深度学习训练、推理优化等应用场景。
在应用上,RISC-V已经在其产品中实现了从功能级别控制到芯片与系统级别控制再到数据处理的全面覆盖。具体来看,在功能级别,RISC-V被用于处理视频编解码、显示、摄像头控制、内存控制器(主要应用于训练任务)等核心功能。同时,它也在芯片间接口和上下文切换等领域扮演关键角色。在系统级别,RISC-V负责资源管理、电源管理以及安全控制,进一步提升了芯片的整体运行效率和可靠性。此外,RISC-V还被应用于数据处理任务,例如网络中的数据包路由以及深度学习加速器(DLA)中的非GPU任务处理,展现出其在高性能计算中的潜力。
从时间线来看,英伟达对RISC-V的应用始于2018年的Turing架构,当时主要聚焦于硬件与软件的基础设计。到2020年的Ampere架构阶段,RISC-V的应用逐步扩展至IP集成。在2022年的Ada和Hopper架构中,英伟达进一步强化了RISC-V在安全领域的能力。而展望2024年即将推出的Blackwell架构,英伟达表示将继续聚焦RISC-V在性能和扩展性上的突破。
英伟达在RISC-V生态的角色
英伟达在RISC-V社区中的角色已经成为该公司技术战略的重要一环。作为RISC-V International(RVI)的核心成员,英伟达在董事会和技术指导委员会中拥有代表席位,同时也是RISE(RISC-V安全生态系统)的核心成员,并在董事会中拥有代表席位。
技术贡献方面,英伟达在多个关键领域深度参与了RVI的技术工作组(WG),包括内存模型、虚拟内存、可信执行环境(TEE)、扩展权限管理(ePMP)、输入输出内存保护(IOPMP)等。此外,英伟达还在外部调试安全、指针屏蔽、控制流完整性、内存标记以及指令/数据一致性等技术方向上做出了显著贡献。
与此同时,英伟达充分利用了RISC-V社区的技术成果,包括从开源项目中广泛使用GCC、LLVM、Spike、QEMU、合规性测试工具和SPDM库等。此外,英伟达还采用了AdaCore的Ada/Spark编译器技术,用于实现高安全性和编译器认证。
通过在社区治理、技术贡献和成果利用等多方面的深度参与,英伟达在RISC-V领域的布局已经不仅仅局限于芯片技术层面,还展现了其在推动开源生态系统发展中的领导地位。这种战略选择不仅增强了自身技术实力,也为RISC-V架构的广泛应用注入了强大动力。
结语
综上可以看出,作为一种开源指令集架构,RISC-V凭借其灵活性和可扩展性,逐步成为英伟达产品技术栈的重要组成部分。而且英伟达近来开始走向定制化解决方案的策略,而RISC-V开放架构所提供的自由度和扩展性为英伟达的定制化策略提供了很大的基础。
定制化策略的好处体现在以下几方面:1)硬件与软件可以协同设计,能够实现更高的性能和功能整合,从而满足特定行业需求。2)客户只需为实际需求配置支付费用,无需承担额外的硬件功能成本。对于需要独特功能、高性能和可靠性的行业,如人工智能、高性能计算和嵌入式系统,英伟达的这一策略无疑将成为重要的推动力。
本文来自微信公众号“半导体行业观察”(ID:icbank),作者:杜芹DQ,36氪经授权发布。
原创文章,作者:讯知在线,如若转载,请注明出处:http://mip.xzxci.cn/2024/11/25/22097.shtml