CUDA是面向GPU计算的重量级软件生态,涵盖各类机器学习应用。目前CUDA仅支持x86‑64与aarch64架构的CPU。现在,英伟达正计划把CUDA拓展支持到RISC‑V平台。此举为RISC‑V CPU调度GPU算力打通了道路。英伟达本次分享重点阐述:RISC‑V CPU要运行CUDA,必须满足哪些条件。核心要求是:服务器级别的CPU以及配套平台。

英伟达首先要求CPU必须符合RVA23标准,同时遵循两份RISC‑V官方规范:RISC‑V服务器SoC规范、riscv‑server‑platform v1.0版本规范。这些规范包含RAS(可靠性、可用性、可维护性)能力、专用安全处理器以及一系列基础硬件特性。服务器级平台的大部分硬性要求,都可以通过上述两份规范得到满足。
除了上面RISC‑V配置集与平台规范之外,英伟达还额外提出若干条件。英伟达表示,如果缺少这些特性,CUDA软件很难良好运行。他们不希望出现 “最低公分母” 的困境:也就是无法使用性能增强扩展,因为不能确定运行硬件一定具备对应扩展支持。在英伟达看来,如果出现这种情况,就只能发布性能低下的软件版本。英伟达以向量扩展举例:谓词执行(predication)能力可以帮助代码规避分支跳转开销。

ACPI是实现难度较高的一项要求。ACPI可供软件探测硬件能力,同时用于功耗、性能、热管理。英伟达软件团队在最初移植CUDA时遇到难题:当时RISC‑V硬件还没有ACPI支持,不过该现状已经得到解决。2025年,UEFI论坛完成了RISC‑V的ACPI支持。RISC‑V BRS(启动与运行时服务)规范已于去年正式定稿,该规范就纳入了ACPI。

其次英伟达要求具备PCIe缓存一致性。这里涉及内存序问题:CPU已经写入的数据还停留在CPU缓存中;当CUDA发起DMA请求,把这份数据拷贝至GPU,DMA控制器直接读取内存DRAM,就读不到缓存里已经修改过的最新数据。反过来,当GPU运算结果通过DMA写回内存之后,CPU如果直接读取自身缓存,拿到的会是旧的过期数据。如果硬件不具备PCIe缓存一致性,软件就必须手动执行缓存失效操作来回避上述问题。但要把缓存失效逻辑完整嵌入CUDA软件栈实现起来难度很大,英伟达把PCIe缓存一致性视作服务器CPU的标准能力。RISC‑V服务器SoC规范只是建议硬件实现缓存一致性,而英伟达需要这一项作为强制保障条件。

英伟达还要求硬件支持PCIe端到端直传(peer‑to‑peer对等通信)。如果缺少该能力,两块设备之间的数据缓冲区拷贝,就必须绕道CPU内存。既会损失性能,还会增加软件复杂度,需要额外的同步信号。

除了让CUDA可以运行在RISC‑V CPU上,英伟达还简要介绍了NVLink Fusion的条件。NVLink Fusion允许第三方厂商在自家芯片内部集成英伟达NVLink知识产权,让自研CPU可以调用NVLink芯片到芯片(C2C)互联链路。一个假想产品的形态类似联发科GB10方案:利用NVLink C2C互联,把联发科CPU芯片和英伟达GPU连接在一起。英伟达当然也希望客户优先选用英伟达自家CPU;但如果客户希望接入自研CPU或者其他加速器,英伟达仍然希望客户采用NVLink IP,这颗自研CPU就可以是RISC‑V架构。

NVLink Fusion的全部要求包含CUDA的所有前置条件,外加DOCA、NCCL这类软件框架运行所需的配套硬件。同时还要求与英伟达建立深度合作关系,这一点也在意料之中。IP集成本身复杂度很高,需要类似联发科与英伟达开发GB10项目那样深度协同。

RISC‑V软件生态距离x86‑64、aarch64的成熟度,仍然存在不小差距。英伟达推动CUDA向RISC‑V迁移,是非常有前景的进展。但这不代表,你把一块英伟达GPU直接接到RISC‑V主板,就能直接跑CUDA。市面上绝大多数现有RISC‑V硬件,达不到英伟达提出的条件。实际上,短期内消费级RISC‑V硬件几乎不可能全部满足整套需求。ACPI就是非常明显的卡点,厂商落地实现难度很高。即便是aarch64生态,ACPI的实际支持情况也参差不齐。一份2025年定稿的RISC‑V标准,往往需要数年时间,硬件才能大范围落地普及,甚至耗时更久。
未来如果出现支持CUDA的RISC‑V系统,大概率会是服务器设备,而不是爱好者手里的单板计算机。英伟达提到正与SiFive开展合作,SiFive计划在Hot Chips大会演示一套可以运行CUDA的系统。英伟达幻灯片中标注的参考CPU规格,对应的就是这套样机;从规格来看,这是一颗大核数服务器芯片。我很期待这次演示,同时也希望英伟达不要做限制,不要禁止CUDA在不满足全部条件的硬件上运行。
展望未来,希望英伟达可以适度放宽条件,让更多现存RISC‑V设备有机会接近达标。缺少向量扩展、PCIe缓存一致性,并不代表一定会出现完全不可接受的性能灾难。如果分支的预测命中率很高,用分支替代谓词执行也可以正常工作。为规避缺少PCIe一致性而做软件缓存失效,确实会带来性能损耗;但对于计算量远大于数据搬运的业务负载,这个开销是可以接受的。PCIe对等直传也是同理。追求全速运行固然最好;但对于不频繁发生的数据操作,也可以走性能更低的兼容慢路径,做兼容处理。
但愿英伟达当前这套严苛需求,只是为了快速、低风险完成RISC‑V版本CUDA移植而设置的权宜之计。期待未来CUDA持续迭代,可以适配更加广泛的RISC‑V硬件,而不仅仅局限于少数专用企业级服务器芯片。
本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。
