将计算过程移步至内存里,这家公司有什么“骚操作”?
扫描二维码
随时随地手机看文章
关于这个计算世界的一个关键的未来要素是移动数据。移动数据需要功率,以至于从内存中调用数据要比实际对其进行“计算”消耗更多的功率。这就是我们有缓存的原因,但即使有缓存,也需要对CPU进行广泛的管理。对于简单的操作,如位转移或和操作,目标是将计算能力转移到主DRAM本身,这样它就不必来回穿梭。今年在Hot Chips, UPMEM是第一批展示新技术的公司之一。
对于任何已经完成任何形式的通用计算的人来说,通过算法推送一堆输入来获得结果,对于编写代码的人来说,通常有两个高级的心理阶段需要克服:首先是让它工作,其次是优化它。算法需要产生正确的结果,越快越好 - 慢速正确的结果通常是无用的,而快速的错误的结果也是无用的。如果能够以更低的功率完成,那么也会减少开销。
In-Memory Processing或“Processing In-Memory”背后的想法是,当内存仍在DRAM中时,应该完成一些简单的整数或浮点运算 - 无需将其推送到CPU操作,然后将其发回。如果数据可以保留在那里并进行更新,则可以节省时间和功耗,而不会影响结果。或者,如果结果被发送回主存储器并且最终的XOR应用于存储器中的数据,则可以减少CPU上的计算。这可以释放主CPU核心来执行其他与计算相关的事情,或者如果它是一个限制因素,则会减少有效内存带宽。
UPMEM所做的是在DRAM工艺节点上开发内置于DRAM芯片本身的数据处理单元(DPU)。每个DPU可以访问64 MB的DRAM,并且相当于该内存的1 GB / s带宽。DPU构建在一个干净的32位ISA上,具有大量优化功能,例如0循环条件jmps,组合SHIFT + X指令(如SHIFT + ADD或SHIFT + SUB),基本逻辑指令,SHIFT和rotate指令。编程模型使得基于c语言的库能够处理所有常见问题,UPMEM预计大多数应用程序需要几百行代码,少数人组成的团队只需2-4周就可以更新软件。
UPMEM所报的大数字包括更好的TCO、更好的ROI,以及潜在的100亿美元目标市场。我们会在适当的时候讨论这些。
(小编个人更喜欢PIM-DIMM这个名字)
UPMEM提出的是一种类似于DDR4 RDIMM的标准产品,每个64MB的内存都可以访问它的一个DPU。DPU内置于DRAM本身,使用内存制造节点。例如,UPMEM正在宣传它正在制作一个4 Gb DDR4-2400芯片,用于嵌入8个DPU 512 MB的模块, DPU以500 MHz运行。UPMEM计划将这4个Gb芯片中的16个放入单个DDR4 RDIMM模块中,提供8 GB模块,内置128个DPU。
目标是最终生产128 GB模块,总共2048个DPU。在DPU与其64 MB内存之间的有效1 GB / s带宽下,这意味着DPU与内存之间的有效带宽为2 TB / s。由于DPU的工作方式,这是必需的,这将在下面解释。
处理器和技术已获得专利,但UPMEM表示,他们正在与内存供应商合作开发20nm级工艺。添加DPU内核可以增加非常小的裸片面积,并且可以在2-3个金属层内启用,因为逻辑的密度小于前沿逻辑实现的密度。与领先的CPU实现相比,我们的想法是实现10倍的总能效和可扩展性。
目前,UPMEM为客户提供软件模拟和硬件FPGA验证模拟器 - 实际上,感兴趣的各方可以在AWS f1.16x大型实例上模拟UPMEM平台。实际的PIM-DRAM模块样品将在第三季度向高端客户发货,随着更多公司对此感兴趣并加入,我们计划在明年继续推广。UPMEM引用性能示例表示,他们已经看到基因组模式匹配的速度提高了22x-25x,数据库索引搜索的吞吐量提高了18倍,延迟为原来的1/100,索引搜索应用程序的TCO提高了14倍。
在成本方面,UPMEM没有说明计划以多少价格出售其技术,但与其他解决方案相比,UPMEM有望成为一个边际成本。在一次演示中,该公司表示,他们的解决方案可以用一个400美元的增强内存解决方案替代一个潜在的40000美元的服务器,并指出使用PIM在软件许可、数据中心空间和功耗/效率方面产生了连锁反应。
UPMEM提供了一些关于电力消耗的数据。在这张幻灯片中,该公司比较了两台服务器,一台带有pimm - dram,另一台没有。在这种情况下,“DRAM到处理器的64位操作数”召回需要在常规服务器上运行3000个pJ,将数据从DRAM中取出,并传递到缓存中,而在PIM-DRAM上,只需将数据移动到DPU上,同样的操作只需要150个pJ的能量。DPU上的操作本身实际上需要2倍的功率(20 pJ与10 pJ相比),但是总的功率效率增益是170 pJ vs 3010 pJ,或者略低于20x。
这张幻灯片指出的一件可能令人困惑的事情是服务器的功耗——常规服务器列出的功耗只有300W,但是PIM解决方案的功耗高达700W。这是因为在UPMEM的解决方案下,每个DRAM模块的功耗将会增加。
UPMEM提出的第一个产品模块是前面提到的8 GB DDR4-2400模块,其中128个DPU各自覆盖64 MB内存并以500 MHz运行。对于单个4 Gb裸片(其中16个在8 GB模块中,18个用于RDIMM ECC),我们仍然处于1 cm2的常规裸片尺寸,但每个芯片所需的功率约为1.2瓦。
如果我们研究所有16/18芯片,我们可以看到每个8GB的模块将是19.2-21.6瓦。对于DRAM来说,这是一个很大的功耗,而且实际上超过了DDR4插槽的额定范围。从这个角度来看,Intel的512GB Optane模块有一个18w的运行模式,服务器可以冷却到18w,但是也可以低到12w。UPMEM并没有说明它是否能够通过降低DPU频率来降低每个模块的功率。
UPMEM的目标是用PIM-DRAM模块替换服务器中的DRAM模块。该公司表示,DDR4接口并不适合这类事情,但他们已经解决了这个问题。在一份简报中,该公司指出,目前至少需要为一个操作系统安装非PIM-DRAM。