关键要点:

RISC-V在AI领域的角色存在争议。其可定制性提供了灵活性,但将推理工作负载在CPU和加速器之间拆分,可能带来高昂的数据搬运成本和编译器复杂性。

控制功能可能是RISC-V的最佳选择。自定义指令有助于协调加速器、减少加载/存储延迟,并处理有限的数学任务,而无需承担繁重的推理工作。

正确的指令并不能保证芯片能正常工作。定制化AI系统还需要可观测性和系统级验证,以暴露性能瓶颈、缓存一致性问题和互连死锁。

专家圆桌:对并行性和能效的需求正在推动芯片设计从通用计算转向AI计算,这增加了对灵活、模块化和开放硬件的需求。这一趋势正将RISC-V带入AI加速领域。可定制硬件可以直接实现AI计算,而不必依赖固定的CPU设计。Semiconductor Engineering就这些议题采访了Quadric首席营销官Steve Roddy、西门子EDA旗下Tessent产品管理与产品工程总监Francisca Tan、SignatureIP销售与业务拓展高级副总裁Ewald Liess,以及Breker首席执行官Dave Kelf。以下是对话节选。

从左至右:Quadric的Roddy;西门子EDA的Tan;SignatureIP的Liess;Breker的Kelf。

问:随着AI模型快速演进,架构师正在利用RISC-V设计高度专业化的扩展。从IP供应商的角度来看,您如何在提供标准化、可复用的IP核与客户对AI工作负载所要求的极致定制化之间取得平衡?

Liess:我们认为不需要配置,因为我们提供了NoC以及PCI Express、CXL、CHI、AMBA等接口。基于此,我们不需要做定制,而是由NoC来进行配置。因为我们拥有预先验证过的NoC,所以可以利用我们的工具来实现这一点。我们可以配置定制化的RISC-V。当然,客户可能会为RISC-V核添加新指令进行修改,但他们仍会坚持使用诸如AMBA总线、CXL、PCI Express等接口,因为这使他们能够访问所需的外部组件,比如内存或片外资源。而这正是我们发挥作用的地方。所以RISC-V的使用者可以随心所欲地去做他们想做的事情。

Tan:定制化的验证与确认也变得非常重要,可观测性同样如此。在测试和嵌入式分析方面,进行调试或硅片启动的工程师可以监控、检视内部信号,或计算性能是否达标。在我看来,这也关乎硬件可观测性,因为整个行业正在进入芯片领域各种各样的挑战和复杂性之中。

Roddy:在这个特定领域,我们持相反观点。我们认为,以RISC-V为起点来做AI加速器,是一个彻头彻尾的糟糕主意,因为这会立即制造出一个问题。你现在有一个分区——一部分任务运行在具有良好ALU能力的可编程处理器上,另一部分则运行在外部加速器上,这样你就不得不对系统进行分区。而一旦分区,就会产生问题,你需要复杂的编译器来解决问题,弄清楚如何将数据从加速器(或多个加速器)通过NoC搬运到可编程核心,再搬运回去。这是一个扩展性很差的问题。加速器越大,问题就越严重。于是你就在不断放大这个问题。如果你有一个比如说100 TOPS的系统,你可能需要16个RISC-V处理器去充当一大堆加速器模块的从属控制器,当然,你需要出色的互连,也需要出色的验证,以及与之配套的一切,因为你是在试图解决一个根本性的底层问题——而这个问题恰恰源于你一开始就选择了CPU作为起点。CPU非常擅长做指针追踪,这正是CPU的本职工作。CPU拥有出色的逻辑来处理这样一种情况:你同时运行着40个线程,而在下一个时钟周期,你完全不知道将要运行什么。但这并不是你在做AI推理时所需要的。在做AI推理时,你提前数百万个周期就已经知道接下来会发生什么。你根本不需要大部分的CPU硬件。DSP稍微接近你所需要的东西,但DSP是向量机——向量乘标量或者向量乘向量。而AI中大部分具有挑战性的计算是矩阵乘矩阵。所以我们构建了一个原生支持矩阵运算的机器。我所知道的唯一与之接近的,是数据中心里谷歌那些巨大的TPU。可以说,几乎其他所有人都面临着分区问题,然后他们苦苦挣扎,花费数十亿美元试图解决这个分区问题,试图弥补他们一开始就选错了起点所带来的后果,而我们认为那个起点本身就是错误的。

Kelf:我同意Steve的观点,因为我们所看到的是,大型AI加速器——可能采用不同的架构,比如SIMD、SIMT——已经相当普遍了。这类东西基本上是由某种复杂的状态机来控制,或者说一直是由状态机控制的,然后会有某种主机处理器来驱动若干个这类不同的模块,告诉状态机该做什么,再去驱动加速器。我们现在在四个案例中观察到——无论是大公司还是小公司——状态机的方式都是行不通的。所以他们转而采用RISC-V处理器,将其作为这些加速器之上的控制功能,原因有好几个。其一,他们确实可以内置一系列数学引擎——正如Steve提到的那种——向量类型,使用RISC-V的向量指令,或者类似的指令。然后他们也会加入自己的指令,或者一些新的矩阵乘法指令。他们还会加入自己的指令,用于非常高效的加载/存储操作,以减少分区之间所看到的延迟。所以他们正试图弄清楚如何调整这些RISC-V进程以减少这种延迟、减少分区问题。我们有若干个案例,有些成功了,有些则不太成功。他们仍在攻克这个问题,但RISC-V的优势在于,他们可以添加任何想要的自定义指令,同时仍然使用常规编译器,并创建一种机制来驱动非常高效的加载/存储操作,这是其他处理器做不到的。当然,还有像Arm这样的公司,他们已经在一些处理器中内置了指令,但这些指令是不可变的。而RISC-V在这方面非常理想,在创建这些强大的自定义指令方面具有相当独特的能力。

问:关于那些自定义的向量指令,EDA工具是否考虑到了这一点,并实现了验证的自动化?

Roddy:我在Tensilica工作了17年。我们把这一切都实现了自动化。当然,缺点是你需要支付版税。RISC-V提供了一个不必向大厂支付版税、贡金、税负的机会。如果你想要定制化,Tensilica的那帮人早在多年前就已经把这一切自动化了。其理念是修改指令,就能立即得到与之匹配的编译器和模拟器,验证也能随之完成,因为这一切都在一个结构化的环境中进行。RISC-V则提供了更大的灵活性,可以超出这些界限。我的看法是,如果你真的想用RISC-V,那你最好是全力以赴、彻底地进行定制,愿意付出努力去手动创建所有这些东西,因为如果你只是想要一点点的定制,我在Tensilica的老朋友们有一套自动化系统可以实现这一点。是的,这需要付出商业成本。RISC-V是一项非常有趣的技术,它绝对有其用武之地。市场领导者并不允许在控制和CPU功能方面达到这种程度的灵活性。针对手头的控制功能对处理器进行调整和优化,可以获得很多价值。我们只是认为,用它来做推理并不合理。但CPU的用途有成千上万种,RISC-V CPU在完成这些任务时,或许比其他供应商的固定功能CPU更灵活、更高效,而且价格肯定更低。我们只是认为,承担繁重的推理计算工作并不是部署这类技术的正确方式。

Kelf:我基本同意。有些公司正试图内置向量运算,并构建他们自己的、类似DSP类型的数学指令。我曾与一些遇到问题的客户交流过。他们有一个SIMT阵列——单指令多线程——正在进行大量的并行数学运算,并希望其中一条并行通道不会偏离其他通道。结果其中一条确实出现了偏离。SIMT的好处就在于它允许出现这种偏离。他们当时利用RISC-V控制处理器来处理这种偏离所产生的部分数学运算,而让加速器的其余部分去处理剩下的数学运算。他们并没有在RISC-V内部做繁重的处理,只是做了足够维持整个系统正常运转、减少延迟所需的那部分工作,但却是在RISC-V内部完成这件颇为奇特的事情。他们花了大量功夫才让这一切正常运转起来,但现在看来效果相当不错。我同意RISC-V存在商业层面的考量,也就是不必支付版税,我也认同Tensilica技术的价值,那对于这类工作、尤其是DSP通信而言堪称出色。但他们在RISC-V内部也能做类似的事情。他们必须自己去构建,必须懂得该怎么做。但一旦做到了,就能获得很大的灵活性,以及围绕RISC-V的大量标准化支持。他们可以用上编译器,也有可能转向另一家公司,并将自己的专有技术构建到那个RISC-V当中。这确实能带来更大的灵活性,同时也有更多的标准化,而这是你用固定处理器或专有处理器未必能获得的。

Tan:说到测试和更好的分析能为自定义指令提供什么,尤其是在RISC-V领域,我们支持针对自定义指令跟踪的可调试性。我们支持RISC-V用户在处理器运行期间指定他们想要跟踪哪些自定义指令,以支持这种可调试性环境。我们也是RISC-V组织的成员之一,几年前我们向其捐赠了高效跟踪(E-Trace)规范。这是一种高度压缩的指令跟踪方式,适用于那些会产生大量数据的复杂系统,因此我们也需要考虑如何压缩所有这些数据。在我们的基础架构中,关注的不仅仅是处理器本身,而是整个系统。因此,我们的基础架构可以从RISC-V核心捕获指令跟踪,也可以从RISC-V SoC的各个部分捕获,比如互连、总线监控,或者我们希望监控的特定信号。

Liess:我们已经谈了很多关于验证自定义指令集、通过ISA级别验证的内容,而且大多数情况下,生成的IP会附带验证附属物,比如测试平台、流量生成器和性能模型。但我是从系统的角度来看待这个问题的,这意味着在一个高性能系统中,通常会有多个核心,当你在RISC-V中内置了一个加速器,或者在一个系统中有多个RISC-V时,你立刻就会面临一致性问题,因为你使用了缓存等机制。一致性方面的边界情况和突发流量很容易在互连结构中导致死锁。因此,从NoC的角度来看,在系统层面进行全面的验证非常重要,需要检查流量是如何流动的,并确保不会陷入死锁的情形。简单来说,一条指令可能执行正确,但如果该指令或该计算所需的数据突发流量无法到位,芯片仍然可能出问题。这正是我们正在着力解决的领域。

Semiconductor Engineering