刚刚在加州 Hot Chips 大会上,百度发布 XPU,这是一款 256 核、基于 FPGA 的云计算加速芯片。合作伙伴是赛思灵(Xilinx)。百度也在这次的大会上,透露了关于这款芯片的更多架构方面的细节。
过去几年,百度在深度学习领域,尤其是基于 GPU 的深度学习领域取得了不错的进展。而且,百度也在开发被称作 XPU 的新处理器。
△ 百度解释了 FPGA 上 AI 和数据分析工作负载的情况
百度研究员欧阳剑表示,百度设计的芯片架构突出多样性,着重于计算密集型、基于规则的任务,同时确保效率、性能和灵活性的最大化。今天,他在 Hot Chips 大会上与来自 FPGA 厂商 Xilinx 的人士一同发布了 XPU。
△ 百度去年宣布采用 Xilinx Kintex UltraScale FPGA 加速数据中心的额机器学习应用
XPU 的目标是在性能和效率之间实现平衡,并处理多样化的计算任务。FPGA 加速器本身很擅长处理某些计算任务,但随着许多小内核交织在一起,多样性程度将会上升。
欧阳剑表示:“FPGA 是高效的,可以专注于特定计算任务,但缺乏可编程能力。传统 CPU 擅长通用计算任务,尤其是基于规则的计算任务,同时非常灵活。GPU 瞄准了并行计算,因此有很强大的性能。XPU 则关注计算密集型、基于规则的多样化计算任务,希望提高效率和性能,并带来类似 CPU 的灵活性。”
目前 XPU 有所欠缺的仍是可编程能力,而这也是涉及 FPGA 时普遍存在的问题。到目前为止,XPU 尚未提供编译器。不过欧阳剑表示,该团队将会很快开发一款编译器。
欧阳剑还表示
为了支持矩阵、卷积,以及其他大大小小的内核,我们需要一个配备高带宽低延时内存,以及高带宽 I/O 接口的大型数学阵列。FPGA 中 XPU 的 DSP 单元提供了并行处理能力,片外 DDR4 和 HBM 接口优化了数据传输,而片上 SRAM 则提供了必要的存储特性。
在 Micro Benchmark 测试中,对于计算密集型、常规内存访问的计算任务,XPU 的效率与 x86 内核类似。对于数据同步的计算任务,XPU 的可扩展性应当可以进一步优化。而对于没有数据同步的计算任务,XPU 的可扩展性与核心数量呈线性关系。
这就是问题所在。如前所述,XPU 仍然没有配备编译器。这款处理器在 FPGA 上实现,通过订制的逻辑电路提供指令。这些小核心类似于 CPU,开发者只能使用汇编语言,而所有的执行都由主机来控制。整个流程包括拆分计算任务,编写 XPU 代码,调用专用的逻辑函数,从而在 Linux 平台上进行编译和运行。
△ XPU 具有 256 个内核,集成了一个共享内存用于数据同步。所有内核都运行在 600MHz。
欧阳剑称:“在百度,我们使用 FPGA 已有多年时间。我们的数据中心、云计算平台和自动驾驶项目中有大量 FPGA。我们非常了解 FPGA 的优缺点,以及如何优化。凭借 XPU 的大型核心,我们专注于多样化的计算任务。”
去年有媒体报道了基于百度深度学习 SDA 的 SQL 加速器。当时的数据流基于 SA 架构。根据欧阳剑的描述,这也是 XPU 内存带宽和延时优势的核心。
欧阳剑同时展示了今年完成的一些 benchmark 测试,但信息非常粗略。不过,这只是百度第一次公开展示 XPU。
如果 XPU 被证明可以用于 AI、数据分析、云计算和无人驾驶,那么百度可能需要用 ASIC 技术去开发 XPU。
更多最新行业资讯,欢迎点击与非网《今日大事要闻》!