简单梳理一下目前在FPGA上数据处理的相关工作。
FPGA需要挖掘其自身优势,而不应该盲目模仿追赶GPU,即使现在有很多相关的start-up。FPGA也不应该完全抛开CPU,二者互相协作才能应对大多数应用场景,也就是扮演一个协处理器的角色,在特定应用场景发挥自己的优势。但是感觉很多工作就是GPU做过了,现在换FPGA再来搞一遍,当然能搞成功还是很说明问题的。
- 编译器。SQL直接映射为HDL,以Glacier为代表。这类为了方便非FPGA硬件开发人员所做的工作并不太吸引我,满足大多数人的“通用性”设计总会在一定程度上牺牲性能,使用Tensorflow的人也不总是对GPU知之甚少,而且Tensorflow并不是万能的,但是既然拿框架来类比了,又感觉这类工作做成了是一个很有意义的事情。不过,拿框架来说,Centaur这项工作可能更适合来类比。通过降低开发门槛来使更多的人员参与进来,进而群策群力,充分挖掘FPGA的潜力,前景很美好,但是看不到自己的position。
- 将CPU上的一部分工作卸载到FPGA上来,加速单一数据库操作,如排序、join、groupby等。复合操作的加速有值得挖掘的点吗?会不会有2>1+1的效果?一般通过PCI-e进行通信,是一个极大的瓶颈。
- 在数据通路上执行解压缩和数据过滤
- 将各种新型硬件、存储设备如RDMA、可编程SSD等应用到数据处理上来,达到类似“存内计算”等目的。这类方法trade-off时获得了什么,代价是什么呢?一有新的设备就套过来用真的不像是“硬件炒菜”吗?或许第一道菜是最香的。
- intel的CPU+FPGA集成至一个die里,利用QPI片内总线FPGA可以直接访问CPU的内存,而不再是传统开发板形式通过PCIe进行数据的搬运。算是一种DMA?
- 软硬件协同到底怎么个协同法
- 个人研究和大公司的cloud规模有何共通和区别之处