AMD|AMD 将用可编程逻辑和其他 XILINX IP 做什么?( 二 )


这个 frankensocket 的 FPGA 部分的目标应用程序是在可编程逻辑上运行 Open vSwitch 虚拟切换 , 使其运行速度提高 3 倍以上 , 并允许 Xeon CPU 托管 2 倍的虚拟机 , 因为它没有在软件中运行 Open vSwitch在至强核心上 。 我们估计组合设备的成本为 6500 美元 , 当时 Xeon 部分的成本约为 2600 美元 。 据我们所知 , 这个想法并没有席卷市场 , 谈话已经转向卸载虚拟存储、虚拟网络和交换以及加密/解密到 DPU(一种美化的 SmartNIC , 取决于你想要什么定义使用) 。
AMD 十多年来一直在考虑这种混合 CPU-GPU 计算方法及其异构系统架构 , 甚至在一些服务器部件中实现了它们 , 并且显然已经为 PC 和大批量定制游戏机芯片做到了这一点 。 在一定程度上 , Infinity Fabric 互连是 HSA 的一种实现 。
AMD 可以将整个 CPU 和整个 FPGA 集成在一起——由用于 CPU 计算的 frankensocket、用于 FPGA 可编程逻辑的小芯片以及它们两者的共享内存和 I/O 集线器组成——这很有趣 , 因为它可以提供连贯的共享插槽内跨 CPU 和 FPGA 容量的内存 。 使用 Infinity Fabric 链接 , 它也可以跨套接字完成 。 正如我们所建议的 , 使用 Infinity Fabric 交换 , 它可以跨机架甚至跨行完成 。 这是一个强大的想法 。
其中任何一个问题都是锁定任何套接字中的配置 。 CPU 与 FPGA 可编程逻辑的比例会因应用、行业和客户用例而异 。 如果你将 GPU 加入其中 , 你就有许多不同的变量需要排序 , 实际上 , 每个芯片都会及时成为特定客户的定制部件 。 你可以为超大规模企业和云建设者这样做 , 因为数量值得 , 但如果 AMD 想把它卖给其他服务提供商和大型企业 , 它就必须挑选一些 SKU , 而且它所做的任何事情都可能不是最理想的 。
Nvidia 对 FPGA 没有任何用处 , 除了可能用于模拟自己的芯片(如果它在其“Selene”超级计算机上进行所有模拟和验证 , 可能甚至没有) , 该公司的联合创始人兼首席执行官 Jensen Huang , 说这话并不害羞.但英特尔收购了 Altera 而现在 AMD 又收购了 Xilinx 的事实至少表明 , FPGA 在现成 CPU 上运行的编程语言和用于实现某些功能或软件堆栈的定制 ASIC 之间的边界仍然具有吸引力 。 我们一直认为 , 一个平衡的系统将包括所有三个计算引擎 , 例如现代交换机 。 您需要用于快速串行处理和大内存占用的 CPU , 用于快速并行处理和高内存带宽的 GPU , 以及用于加速硬编码算法的 FPGA , 这些算法在 X86 或 Arm 处理器上的软件实现中可用 , 但在由于这些算法变化太大 , 或者因为您无法支付热量或成本溢价 , 因此无法保证定制 ASIC 的数量 。
我们认为将 FPGA 可编程逻辑嵌入到每个 CPU 插槽甚至每个 GPU 插槽中作为这些设备的一种暂存器 , 这样它们就可以拥有散列算法、加密算法、安全协议或虚拟开关的元素 , 这绝对是一件有趣的事情(或部分完成)在 FPGA 中 , 而不是在 CPU 或 GPU 芯片上的逻辑块中 , 在添加到 CPU 或 GPU 插槽的单独小芯片中 , 或在 CPU 上运行的更高级别的软件中 。 多年来 , IBM 已经在其 System z 和 Power 处理器中添加了此类暂存器(请注意 , 不是用 FPGA 逻辑实现的) , 允许它们实现新指令或创建复合指令 , 这些指令在芯片流片了 。 这不会是芯片/插座空间的很大一部分 。
我们绝对认为很快就会有 Versal FPGA 混合使用 Xen X86 内核交付 , 我们认为 Vitis 堆栈将进行调整 , 以便能够将代码编译到这些内核以及 Versal 计算的其他元素复杂的 。 我们认为 AMD 不太可能将 X86 或 Arm 内核引入其 GPU , 但我们确实认为该公司可以创建一系列混合了 FPGA 和 X86 内核的 SmartNIC 和 DPU——如果它的话 , 甚至可能是婴儿 GPU具有建筑意义 。 AMD 是 SmartNIC 的新手 , 但 Xilinx 不是 , 尤其是在 2019 年 4 月收购 Solarflare 之后 。
我们希望看到 AMD 这样做 。 创建一个高性能的 Zen4 内核 , 去掉所有矢量引擎的内脏 , 并在芯片上放置更多内核或在芯片上放置更多更快的内核 。 我们选择后者是因为在这个 CPU 上 , 我们想要惊人的串行性能 。 我们想要这个东西上的 HBM3 内存 , 我们想要至少 256 GB 的容量 , 这应该是可能的 。 大量的 Infinity Fabric 链接从单个插槽中脱落 。 最高500瓦 , 我们不在乎 。 现在 , 在系统板左侧的旁边 , 我们想要一个杀手级“Aldebaran” Instinct GPU , 而 MI200 的一半可能就足够了——Instinct MI200 在一个封装中具有两个逻辑 GPU– 或者可能需要配备四台毕宿五发动机的完整 MI300 。 这将取决于客户 。 在 GPU 周围也放置大量 HBM3 内存 。 在 CPU 的右侧 , 我们想要一个 Versal FPGA 混合 , 其中包含更多的 Infinity Fabric 链接 , 去掉了 Arm 内核 , 保留了 DSP 引擎和 AI 引擎 , 以及所有硬块互连的东西 。 这是一个集成的可编程逻辑引擎 , 在需要时可以像 DPU 一样工作 。 Infinity Fabric 通道可以从这里断开以创建集群 , 或者直接断开 GPU 和 CPU , 但我们喜欢在 DPU 上实现 Infinity Fabric 交换机的想法 。