集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 7689|回复: 17

FPGA 在云计算中的角色

[复制链接]
小舍YZ 发表于 2017-3-14 14:04:55 | 显示全部楼层 |阅读模式
FPGA 在云计算中的角色

FPGA 在云规模的网络互连系统中应当充当怎样的角色?
如何高效、可扩放地对 FPGA + CPU 的异构系统进行编程?
 楼主| 小舍YZ 发表于 2017-3-14 14:05:13 | 显示全部楼层
对 FPGA 业界主要的遗憾是,FPGA 在数据中心的主流用法,从除微软外的互联网巨头,到两大 FPGA 厂商,再到学术界,大多是把 FPGA 当作跟 GPU 一样的计算密集型任务的加速卡。然而 FPGA 真的很适合做 GPU 的事情吗?前面讲过,FPGA 和 GPU 最大的区别在于体系结构,FPGA 更适合做需要低延迟的流式处理,GPU 更适合做大批量同构数据的处理。
 楼主| 小舍YZ 发表于 2017-3-14 14:05:34 | 显示全部楼层
由于很多人打算把 FPGA 当作计算加速卡来用,两大 FPGA 厂商推出的高层次编程模型也是基于 OpenCL,模仿 GPU 基于共享内存的批处理模式。CPU 要交给 FPGA 做一件事,需要先放进 FPGA 板上的 DRAM,然后告诉 FPGA 开始执行,FPGA 把执行结果放回 DRAM,再通知 CPU 去取回。CPU 和 FPGA 之间本来可以通过 PCIe 高效通信,为什么要到板上的 DRAM 绕一圈?也许是工程实现的问题,我们发现通过 OpenCL 写 DRAM、启动 kernel、读 DRAM 一个来回,需要 1.8 毫秒。而通过 PCIe DMA 来通信,却只要 1~2 微秒。
 楼主| 小舍YZ 发表于 2017-3-14 14:09:01 | 显示全部楼层
PCIe I/O channel 与 OpenCL 的性能比较。纵坐标为对数坐标。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-3-14 14:10:47 | 显示全部楼层
OpenCL 里面多个 kernel 之间的通信就更夸张了,默认的方式也是通过共享内存。本文开篇就讲,FPGA 比 CPU 和 GPU 能效高,体系结构上的根本优势是无指令、无需共享内存。使用共享内存在多个 kernel 之间通信,在顺序通信(FIFO)的情况下是毫无必要的。况且 FPGA 上的 DRAM 一般比 GPU 上的 DRAM 慢很多。
 楼主| 小舍YZ 发表于 2017-3-14 14:11:52 | 显示全部楼层
因此我们提出了 ClickNP 网络编程框架,使用管道(channel)而非共享内存来在执行单元(element/kernel)间、执行单元和主机软件间进行通信。需要共享内存的应用,也可以在管道的基础上实现,毕竟 CSP(Communicating Sequential Process)和共享内存理论上是等价的嘛。ClickNP 目前还是在 OpenCL 基础上的一个框架,受到 C 语言描述硬件的局限性(当然 HLS 比 Verilog 的开发效率确实高多了)。
 楼主| 小舍YZ 发表于 2017-3-14 14:13:42 | 显示全部楼层
ClickNP 使用 channel 在 elements 间通信

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-3-14 14:14:03 | 显示全部楼层
ClickNP 使用 channel 在 FPGA 和 CPU 间通信

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
大鹏 发表于 2017-3-14 14:50:18 | 显示全部楼层
厉害了,楼主!
 楼主| 小舍YZ 发表于 2017-3-14 16:04:05 | 显示全部楼层
低延迟的流式处理,需要最多的地方就是通信。然而 CPU 由于并行性的限制和操作系统的调度,做通信效率不高,延迟也不稳定。此外,通信就必然涉及到调度和仲裁,CPU 由于单核性能的局限和核间通信的低效,调度、仲裁性能受限,硬件则很适合做这种重复工作。因此我的博士研究把 FPGA 定义为通信的「大管家」,不管是服务器跟服务器之间的通信,虚拟机跟虚拟机之间的通信,进程跟进程之间的通信,CPU 跟存储设备之间的通信,都可以用 FPGA 来加速。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-20 02:46 , Processed in 0.080478 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表