RISC-V“希望进入所有处理器”
10月16日消息,RISC-V不再满足于颠覆CPU行业。它正在对集成到SoC或先进封装中的每一种处理器发动战争,这是一项雄心勃勃的计划,将面临来自财力雄厚的研发运营商及其构建良好的生态系统的激烈竞争。
当RISC-V International(RISC-V国际基金会)的首席执行官Calista Redmond在去年的峰会上说“RISC-V将无处不在”时,大多数人可能认为她在谈论CPU。很明显,该组织打算推动RISC-V进入在服务器和深度嵌入式设备中。但该组织的目标远不止于此。
Redmond暗示,每一个处理核心,GPU、GPGPU、AI处理器,以及所有其他类型的处理器,都可以是基于RISC-V的。加州大学伯克利分校教授、RISC-V International主席Krste Asanovi?在他的报告中展示了下面的幻灯片,使得这一点更加清晰。
随着RISC-V International最近完成的安全和加密标准工作,这一愿景开始形成。RISC-V International正在组建小组,并审查捐款,以增加对矩阵乘法的支持,这是GPU和AI处理器的基本功能。
在这些大胆的声明背后,是数据和计算架构的根本转变。这不再是关于哪家公司拥有最快的CPU,因为无论它设计得多么好,所有的CPU都有局限性。
“在一些垂直市场,如5G/6G、推理和视频处理,他们的计算工作量已无法在传统CPU上进行处理。”西门子EDA Catapult HLS团队的项目总监Russell Klein表示:“这就是我们看到采用新计算方法的地方。”
几乎每个应用程序都有某种形式的控制结构。Arteris负责解决方案和业务开发的副总裁Frank Schirrmeister表示:“从内存访问的角度来看,图形是一种非常特殊的野兽,有着非常特殊的要求。”。“如果你看看最近发布的一些人工智能和RISC-V,你会发现一些公司发布的处理元素下面显然有ISAs。”
在某些情况下,这些需要正确的说明。Bluespec的首席执行官Charlie Hauck说:“RISC-V有一种叫做向量扩展的东西。”。“根据你如何实现这一点,你可以得到一些开始看起来很像GPU的东西,就许多并行或SIMD类型的小型单元而言。”
然而,这条路并不容易。Stream Computing研发总监Fujie Fan表示:“通过指令扩展将GPU功能添加到RISC-V架构中很有吸引力,因为GPU在人工智能领域发挥着重要作用。”。“然而,我们也意识到这也面临架构和生态系统中不可避免的问题。”
怀疑论者比比皆是。处理器的历史上充斥着很多失败的初创公司,他们宣称自己将用新的计算架构击败竞争对手。许多人没有考虑到的是,竞争并没有停滞不前,计算环境正在经历不断加速的变化,转向新的方法和工具以及培训/再培训工程师的痛苦和费用并非微不足道。
Quadric工程副总裁Dhanendra Jani表示:“RISC-V给被采用者带来的价值是在控制处理领域,它拥有现成的开源工具、现成的操作系统(Linux或实时),以及通过ISA通用性提供的长期软件兼容性/可移植性的承诺。”。
“图形处理是一个非常不同的挑战——一个特定领域的处理挑战。要将基本RISC-V指令集改编成一个非常适合GPU任务的指令集,需要大量投资来定义自定义ISA扩展,构建高度复杂的微架构更改,并对开源工具进行‘重大手术’,使其几乎与原始工具相似。
因此使用RISC-V来进行GPU任务,那么几乎所有RISC-V的固有价值优势都将因为需要通过广泛的定制而被冲淡。你将失去大部分优势,同时可能被核心ISA功能所束缚,这些功能限制了在特定领域GPU上下文中的有用性。简而言之,从RISC-V开始,而不是一张干净的纸开始有什么意义?”
那么RISC-V的计划是什么呢?RISC-V International首席技术官Mark Himelstein表示:“矢量是SIMD运算,它使你能够同时对多条数据进行运算,并让芯片找出从内存中取出东西的最佳方式,处理单个指令,然后将东西放回内存,或将它们移到下一个操作。”。“缺少的基本功能是矩阵乘法。
我们收到了多个建议,其中一个建议就像32位指令中的矢量扩展一样。这非常困难,需要设置指令。你设置步幅和掩码,然后扣动扳机进行操作。但如果你想在更大的矩阵实现中具有竞争力在其他体系结构上,您必须使用更宽的64位指令。这就是很多人在谈论的。”
问题是有多少复杂性被暴露出来,还有多少仍然隐藏着。Arm客户业务线产品管理高级总监Anand Patel表示:“ISA是一个关键组成部分。”。“然而,GPU的复杂性通常是由Vulkan或OpenCL等标准API抽象出来的。这使得开发人员更容易瞄准多个供应商,同时将较低级别的优化留给GPU供应商。即使在GPGPU类型的应用程序中,GPU的架构也在快速发展,以跟上AI处理等新兴用例的步伐至关重要的开发人员可以访问一个成熟的软件生态系统来跟上这些变化。标准API确保开发人员不必担心ISA更改,但可以透明地看到这些底层改进的好处。”
宏观架构与微观架构
将这两个关注点分开是很重要的,因为RISC-V只定义宏观体系结构,而将所有微观体系架构决策留给实现者。当移动到CPU之外时,这将成为一个更大的问题。RISC-V的Himelstein说:“Von Neumann在某些方面是有限制的,但特定实现如何与内存交互并不是由RISC-V决定的。”。
“大多数GPU实现都是通过多级管道中的内存来优化这一点的。有些东西来自内存,而有些操作正在进行。当你开始看GPU时,你会谈论暴露内存交互。我们确实对事情发生的顺序有一些限制,因为你想确保操作定义良好。”
看待问题有很多方法。Stream Computing研发总监Fujie Fan说:“最先进的GPU产品可以分为传统的图形处理和现代的人工智能加速。”。“前者更像是一个可编程ASIC,而不是通用处理器,其核心能力来自流处理器的实现,而不是ISA。指令集通常对程序员来说是看不见的,总是退居次要地位。图形处理器的设计与微架构密切相关,适合与客户机一起实现omized指令。对我们大多数人来说,人工智能和多媒体功能的标准化更具吸引力。要实现这样的功能,复制GPU并不是唯一的方法。对于RISC-V来说,多媒体功能可以通过矢量架构来实现,AI能力可以通过更高效的矩阵加速器异构架构来实现。”
如果您希望外部程序员为您的设备编写软件,则某些方面会发生变化。“数据流处理可以通过几种方式完成,”西门子EDA Catapult HLS团队的项目总监Russell Klein表示说:“一种是使用小型通用处理器,甚至是专用处理器的流水线,每个处理器都处理一个问题的一个阶段。这明显比单个大CPU更快、更高效。
使用可编程处理器作为计算元件保留了很大的灵活性,但确实放弃了一些性能和效率。这种方法实际上可以由任何有能力的多核处理器构建而成。问题是这种方法已经被软件开发社区彻底拒绝了。他们不愿放弃他们的单线程编程模型。”
这对许多公司来说是个大问题。Bluespec的Hauck说:“如果你正在寻找一个通用处理器,根据应用需求,它可以是任何东西,从单问题、两级或三级微控制器,一直到运行多核的多问题超标量设计。”。“或者,你会看到有4096个RISC-V处理器的设计,每个处理器都是小型的、缩小的RV32I类型的东西,它们在特定的系统架构和互连中被拉在一起,使这些东西能够以GPU的精神运作。它们由许多较小的整数单元组成,它们正在一起合作完成一项艰巨的任务。挑战是如何为此开发软件?”
有了更大的灵活性,可能需要新的方法。西门子EDA首席产品营销经理Andy Meyer表示:“在大型HPC中,如果你运行的工作负载更面向数据中心,它就有一定的特征。但如果你的应用程序是科学计算,那么可能有一些关于加载和存储以及多种数学类型操作的功能可以扩展。”。“如果人们选择这条路线,生态系统将面临一些挑战。增长的主要领域是超规模的应用。如果你看看风险投资的金额,你会发现他们显然在解决一个独特的问题。”
软件和生态系统
几十年来,硬件/软件协同设计一直是一个目标,RISC-V是少数几个有进步概念的领域之一。Russell Klein说:“传统的数据处理设计会不遗余力地将硬件和软件分开。”。“硬件被创造出来,然后软件人员就对它失去了控制。如果硬件足够通用,那么软件将能够做任何它需要做的事情来提供系统的功能。如果您在计算能力和功耗方面有足够的冗余,那么这是可行的。我不会说它效果很好,但它确实有效,尽管它相当浪费。”
特定领域的计算开始改变这一点。Russell Klein补充道:“要真正利用数据流处理器的潜力,就意味着要为特定的应用程序进行定制。”。“这意味着硬件和软件团队需要共同努力才能取得成功。这让很多组织和设计团队感到非常不舒服。”
有时联合设计是唯一的方法。Bluespec的Hauck说:“假设你需要在边缘进行一些处理。”。“总是会有形状、大小或功率的限制。再多的软件创新也无法让你取得任何进展。如果你有一个软件堆栈,堆栈就是它。你将无法通过软件优化来获得任何具有这些类型限制的特定解决方案。你必须从硬件入手。”
当创建嵌入式系统时,处理器暴露在广泛的编程受众面前的可能性较小,并且可以进行更多的优化。Himelstein说:“考虑一下已经完成的矢量加密工作。”。“没有人会在他们的程序中对矢量加密进行编程。这不是他们所做的。他们使用的是库,比如libSSL或其他一些加密库,他们使用这些指令。有时他们通过进入汇编语言来使用它们,然后他们提供一个C、C++或Java接口,这样软件和应用程序就可以利用它们。”
当需要进行通用编程时,它会变得更加困难。Fujie Fan说:“如果你看看GPU的生态系统,工具链是由NVIDIA(英伟达)控制的。”。“包括AMD在内的其他竞争对手曾试图打破垄断,但都失败了。通过扩展RISC-V的标准指令集,几乎不可能与不断更新的NVIDIA生态系统兼容。另一方面,也很难重新开始,因为NVIDIA具有先发优势。”
何时能够成功?
尽管如此,RISC-V完全是为了实现创新。Hauck说:“我们所看到的为什么传统解决方案是目前最好的解决方案,很多都是历史性问题。”。“智能架构师和智能软件开发人员真正发挥其专业知识的地方将是RISC-V型环境。”
它始于一种共同的需求。西门子EDA首席产品营销经理Andy Meyer说:“如果有需要,人们会聚在一起合作,RISC-V就是合作。”。“你可以看到一个又一个例子,世界各地正在发生各种不同的倡议和联盟。生态系统会不断发展,但在商业方面和支持社区之间存在平衡。”
这可能会带来一些商业挑战,尤其是在投资回报率很低的情况下。Hauck说:“RISC-V还需要一段时间才能赶上并与现有的产品和生态系统竞争。”。“但你会开始看到,对于某些应用程序,如果有合适的公司支持,RISC-V处理器没有理由不成功。有很多优秀的软件开发人员。他们最终会成功,因为社区已经拥有了创新所需的所有工具。”
那么,我们需要多长时间才能看到RISC-V GPUS和AI处理器呢?Himelstein说:“如果你想在一个非GPU的世界里拥有合理的人工智能功能,那么你今天就已经拥有了。”。“但是,这些团体一直要求的矩阵和所有其他东西的完整补充可能会在大约一年半后出现在基本的东西上,然后可能在三到四年后出现在更高级的东西上。”
增量方法可以更快地使用工件。Fujie Fan说:“与其将整个GPU产品标准化,不如将每个GPU功能分别标准化。”。“至于AI能力,我们认为正在进行的RISC-V矩阵扩展是IC设计师的更好选择。”