中文 英语

CCIX启用机器学习

系统的普通方面可以成就或破坏解决方案,而接口通常定义了什么是可能的。

受欢迎程度

要实现像机器学习这样的东西需要大量的技术,并不是所有的技术都像神经网络架构和算法那样迷人。

再往下几层是运行这些程序的实际硬件,这就把我们带到了更不吸引人的接口世界。一个这样的接口,缓存相干加速器互连(CCIX),发音为C6,旨在使CPU和加速器之间的接口实现FPGAs或gpu几乎消失了。

CCIX基本面
使用CCIX发布之前可用的技术,CPU和加速器之间的一般数据流将非常面向批处理。CPU将数据从主存传输到加速器,可能使用直接内存访问(DMA)。加速器将处理数据,直到数据完成,并将中断发送回CPU,指示数据完成。此时,生成的数据将被传输回主存。整个过程有很长的延迟,这促进了非常细粒度的操作。

“考虑到摩尔定律的架构和验证副总裁Gaurav Singh说赛灵思公司CCIX财团主席。“这对系统架构意味着什么?一块硅片所包含的功能数量呈放缓趋势。现在,为了获得必要的功能和性能改进,您必须利用异构组件。那么,正确的连接方式是什么呢?”

而这正是CCIX希望提供的。Xilinx在2016年开始了这项工作,当时它需要一个有效的架构来连接其设备,这些设备被用作数据中心中的加速器。PCI express是目前事实上的标准,但它存在前面已经描述过的延迟问题。赛灵克斯和手臂还有一些EDA和知识产权在多方保密协议下的合作伙伴试图找到一个更合适的解决方案。2017年3月,他们成立了一个财团。

CCIX不是从头开始创建一个新标准,而是构建在PCI express之上。PCIe物理链路层和数据链路层不需要修改。CCIX增加了一个修改后的事务层和一个新的链路和协议层。

CCIX从连接的组件创建一个系统,所有组件都具有对相同内存的本机访问权。如果你要在一块硅上设计加速器,所有的加速器都可以访问所有的资源SoC.CCIX正试图在系统级别启用相同的功能。

通过在CPU和加速器之间引入缓存一致性的概念,CCIX绕过了大部分开销。可以在内存中创建数据结构,并将指向它的指针发送给加速器。加速器可以立即处理数据,可能只在实际需要数据时才会在本地复制数据。数据也有可能是不断更新的。

为什么缓存一致性很重要
技术的采用取决于较低的进入门槛。ARM的系统架构师Kent Orthner指出:“有成千上万的开发人员习惯于为ARM设备编程Achronix.“CCIX基本上在底层使用ARM协议,在连接的设备之间提供一致性。这允许所有的软件程序员使用相同的编程模型。它们现在可以用同样的方式和加速器对话。这就简单多了。”

ARM高级产品经理Jeff Defilippi补充道:“从本质上讲,你正在采用ARM总线和一致性协议,将其打包到CCIX协议中,现在你正在利用PCI基础设施跨多个芯片添加共享内存系统。”“即使在今天的移动领域,我们也有CPU和GPU,很多时候它们是连贯连接的。它简化了软件,而不仅仅是为了提高效率。”

一致性使得将各种组件更容易地连接在一起,而不会对性能造成重大影响。“一致性允许你做的是在FPGA、SoC和CCIX互连之间架起桥梁,”Anush Mohandass说,该公司营销和业务发展副总裁NetSpeed系统.“如果你看看FPGA加速器,它通常被视为多芯片架构中的二等公民。为了获得性能提升,这必须是连贯的。这发生在数据中心,那里有可用于特定处理任务的芯片外加速。另一个地方是服务器机架顶部的智能网卡。”

加速器的工作方式也在改变。Xilinx的Singh解释道:“数据共享模式正在发生变化。“早些时候,你有一大块数据,你可以解雇和忘记。但是今天,有很多应用程序都有稀疏的数据结构,而对这些数据结构的访问实际上是依赖于数据的。你得到一个包,看一个包,它给你一个指向一个非常大的表的指针。这个模型不适用于PCI express,因为你必须预先知道它的位置,并将缓冲区传递给加速器。有很多这种结构的例子,你真的希望加速器做很多查找,处理器做更新。所以你希望处理器和加速器共享同一个表。”

启用机器学习
这种类型的访问可能对机器学习非常重要。今天,机器学习是基于具有非常深的管道的任务。辛格说:“每个人都在谈论所需的计算量,这就是gpu表现良好的原因。”“他们有很多计算引擎,但更大的问题实际上是数据移动。您可能希望启用一个由GPU进行训练而由FPGA进行推断的模型。现在你有很多数据共享所有由GPU生成的权重,这些数据被传输到FPGA进行推断。你也可以有反向传播和正向传播。前向传播可以由fpga完成,后向传播可以由GPU完成,但关键仍然是数据移动。如果他们能共享相同的数据,他们就能高效地一起工作。”

启用这类应用程序中使用的编程语言也很重要。例如,OpenCL定义了一个称为共享虚拟内存的概念。他们试图让它看起来像一个共享内存空间。CCIX提供硬件访问,使编程模型更加高效。

扩展操作系统的概念
接口的变化会对硬件架构的其他部分产生连锁反应。

Orthner解释道:“假设你有一个正在加速的功能,也许是机器学习算法的一部分,可以进行视觉处理。”“你的记忆中有一张图像,你想要识别一张脸。所以这个软件需要一个人脸功能。它可以运行低性能的软件,也可以在FPGA中运行。它现在是否可以在FPGA中运行取决于比特流是否已经加载。然后就轮到司机了。它可以把它发送给软件,它可以识别硬件实现已经在FPGA中,或者用支持它的比特流加载FPGA。”

正确答案在运行时可能会改变。如果已知您将执行1000次任务,那么花费几毫秒对FPGA进行编程可能是有意义的。使用嵌入式FPGA可以更快地完成。部分软件驱动程序需要跟踪FPGA中的比特流。你也可以在同一个设备中有多个加速器。这种类型的功能需要迁移到操作系统中,同样以程序员不可见的方式迁移。

提供安全保障
今天讨论的任何新架构都必须考虑安全性,并从一开始就建立必要的保护机制。如果加速器可以访问共享内存,那么它就可以提供对系统其余部分的访问。

“有人可能试图通过访问内存的加速器入侵你的系统,”辛格承认。“这可能是更大的风险,但已经有了内置的保护机制。mmo就是这样做的。它们基于地址进行访问控制。我们只对让加速器访问被允许访问的内存部分感兴趣。”

IP的可用性
基于PCI快速标准的CCIX的决定为IP开发人员提供了一个良好的开端。“它的作用是多重的,”Sachin Dhingra说,他是一个知识产权集团的高级产品营销经理节奏.“它在物理方面重用现有的基础设施,在系统层面重用相同的连接器,相同的生态系统。从IP的角度来看,您可以利用PCI快速解决方案的巨大卡盘。我唯一真正改变的部分是事务层和系统总线的接口。”

图1:CCIX接口IP。礼貌和节奏。

但CCIX确实把事情推进了一步。“CCIX是25GHz,而PCI express Gen 4最高为16GHz,所以你必须重新设计物理层以支持25GHz,”英特尔IP部门营销副总裁John Koeter补充道Synopsys对此.“然后是传输层。我们发现,人们希望将此接口用于PCI express或CCIX,这取决于他们的应用程序。所以我们必须在传输层提供一些muxing,因为延迟。我们有一个原生界面。”

这提供了一系列性能解决方案。Cadence的Dhingra说:“如果我在16GHz的频率下运行CCIX,我不需要改变PCI快速传输层以下的任何东西。”“如果我使用的是20GHz甚至25GHz,我会改变其中的一小部分,但这并不多——只是与PHY有关的一小部分。但其余部分保持不变。”

PCI express也没有停滞不前。Koeter补充道:“PCI sig刚刚发布了第5代,它可以达到32GHz。“这带来了一个有趣的动态。”

但是,我们的目标是选择适合特定市场和应用程序的方案,然后根据许多选择构建最具成本效益的解决方案。

“在ARM,我们有被授权方围绕ARM架构创建自己的SoC,并创建自己的CCIX环境——可能与支持CCIX的第三方PCIe控制器一起使用,以增加盒子外的连接,”Defilippi说。“我们也有IP产品,其中我们有高性能的cpu,现在我们也有互连,它有CCIX的所有片上组件。但我们正在与生态系统合作伙伴合作,将其置于芯片之外,并提供完整解决方案所需的外部连接和PHY层。因此,在ARM IP和第三方IP之间,很容易将这些东西拼接在一起,就像他们今天为DDR或PCI所做的那样。”

结论
虽然CCIX并不是这个领域唯一的新标准,但它有一个强有力的开端,因为它是借助PCI express。因此,IP提供商看到了这方面的需求。

“PCI express之所以成功,是因为它保留了软件模式,”辛格说。“每个操作系统发行版都内置了这种机制。它无处不在。CCIX充分利用了这一切。”

有关的故事
嵌入式fpga时代到来
随着芯片和系统设计变得越来越异构,这些器件在更关键的功能上越来越受欢迎。
机器学习越来越受欢迎
经过20年的试验,半导体行业正争相采用这种方法。
机器学习与集成电路设计
机器学习可以在多个层面上帮助半导体的创造,但实现这一点并不像其他应用领域那么简单。
支持cpu + fpga
与会专家,第3部分:分区、安全问题、验证和现场可升级性。
机器学习竞赛
随着技术开始成型,芯片行业重新定位;目前还没有明确的赢家。
填补机器学习中的漏洞
第2部分:确保机器按预期运行的短期和长期解决方案。



5个评论

凯文 说:

人类的大脑中并没有储存信息的地方;神经网络是点对点的三维系统,看起来更像模拟电路。

CCIX只是对旧的Von Neumann SMP计算的支持的进化,与新的计算模型没有什么关系。

https://en.wikipedia.org/wiki/Von_Neumann_architecture#Von_Neumann_bottleneck

(FPGA晶体管的使用尤其糟糕)

布莱恩•贝利 说:

我完全同意你的看法。当我问这个问题时,它只是归结为——我们必须让现有的软件开发人员更容易理解它。他们思维方式的任何改变都被视为难以被接受的巨大障碍。随着摩尔定律的终结,新的、更有效的计算模型将在某个时候变得绝对必要。

凯文 说:

还有其他方法来运行(旧的)代码,这样缓存的一致性是不需要的,尽管有大量的并行,我有一个正在申请的专利-

专利US20150256484 -处理资源分配

BaronMatrix 说:

你真的应该看看AMD在CCIX上做了什么…他们未来系统的整个基础设施都支持它…我认为他们可能会因为IBM而采用OpenCAPI,但ARM确实进展得更快…

瑞安年代 说:

以下是凯文的评论。CCIX /深度学习用例听起来像旧的圆钉/方孔程序。在GPU上进行训练,同时与FPGA推理引擎一致地共享权重?根据你的推断,你在同一时间训练的频率是多少?我不是数据中心专家,但这似乎是一个奇怪的用例。我还质疑使用FPGA进行高性能推断....这是一个典型的ASIC问题。

留下回复


(注:此名称将公开显示)

Baidu