其他
注意!使用FPGA“代替”CPU,说法不准确!
中国科技大学微软亚洲研究院博士李博杰对这个问题作出了回答:
为什么使用 FPGA,相比 CPU、GPU、ASIC(专用芯片)有什么特点?
微软的 FPGA 部署在哪里?FPGA 之间、FPGA 与 CPU 之间是如何通信的?
未来 FPGA 在云计算平台中应充当怎样的角色?仅仅是像 GPU 一样的计算加速卡吗?
专用的 FPGA 集群,里面插满了 FPGA
每台机器一块 FPGA,采用专用网络连接
每台机器一块 FPGA,放在网卡和交换机之间,共享服务器网络
不同机器的 FPGA 之间无法通信,FPGA 所能处理问题的规模受限于单台服务器上 FPGA 的数量;
数据中心里的其他机器要把任务集中发到这个机柜,构成了 in-cast,网络延迟很难做到稳定。
FPGA 专用机柜构成了单点故障,只要它一坏,谁都别想加速了;
装 FPGA 的服务器是定制的,冷却、运维都增加了麻烦。
这样一个 1632 台服务器、1632 块 FPGA 的集群,把 Bing 的搜索结果排序整体性能提高到了 2 倍(换言之,节省了一半的服务器)。如下图所示,每 8 块 FPGA 穿成一条链,中间用前面提到的 10 Gbps 专用网线来通信。这 8 块 FPGA 各司其职,有的负责从文档中提取特征(黄色),有的负责计算特征表达式(绿色),有的负责计算文档的得分(红色)。
硬件和软件不是相互取代的关系,而是合作的关系;
必须具备灵活性,即用软件定义的能力;
必须具备可扩放性(scalability)。
FPGA 在云规模的网络互连系统中应当充当怎样的角色?
如何高效、可扩放地对 FPGA + CPU 的异构系统进行编程?
推荐阅读
【01】FPGA为什么比CPU和GPU快【02】FPGA vs. ASIC 你看好谁?【03】FPGA将代替CPU?一文揭秘FPGA的现在与未来之路【04】FPGA开发设计必经之路:时序分析【05】如今的FPGA走错路了吗?