https://www.zhihu.com/topic/19570427/top-answers 话题汇总
如何看待xilinx提出的all progarmable 的概念?
JonsonXP 可重编程架构研究,FPGA,CAD开发
这是个不错的问题,本质上是对FPGA未来角色的思考。简单说下我的看法。
Computing面临什么问题?
社会的IoT(物联网)化高速发展,思科IBSG曾预测2020年联网设备数会超过500亿台,这个数字是2015年的2倍。处理、分析这些设备产生的大量数据更需要比如今更多的计算资源。然而目前基于高主频CPU的云计算架构存在成本高、利用率低、耗电大等问题。例如被传拥有300万台服务器的Google每年电费成本高达数十亿人民币。因此,需要新的、高能效计算机架构才能支撑下一代的数据中心。
异构计算?
CPU是万能的,但不是最高能效的。GPGPU替代CPU在Deep Learning加速等领域已得到经广泛应用。然而CPU和GPGPU都无法高效解决的场景还有很多,目前最有可能加速这些场景的设备,就只有FPGA。近些年使用FPGA加速各种应用的研究层出不穷,通常FPGA比CPU的吞吐量、效能比要高几十上百倍。所以未来的数据中心,必然是CPU+FPGA+GPGPU+X的异构计算体系。
All Programmable是必然?
其实通用计算和专用计算十年河东十年河西,Makimoto's Wave就是对这一趋势的总结和预测。
趋势图的后半预测FPGA和SoC会在通用计算领域越来越重要,接下来的结果很有可能是Programmable SoC(FPGA SoC)的时代,即Xilinx的All Programmable概念。另一家FPGA大厂Altera,今年被Intel以167亿美元收购后,两家公司的技术组合也必然引向All Programmable的未来。All Programmable是通用、专用计算两条河终于合流的起点。
什么是All Programmable?
80年代FPGA刚被发明的时候规模较小,主要用来实现连接各种芯片的粘结逻辑(Glue logic)。今非昔比,现在的FPGA已经大到可以将CPU、Memory、DSP、各种接口控制器埋在自己的可编程逻辑阵列当中,根据需求随意组合,更可以在FPGA上实现自己的专用硬件电路,这就是All Programmable。All Programmable最大的魅力在于,通过FPGA的自由编程能力,开发人员可以使用最高效的硬件组合完成运算。这和目前基于冯诺依曼架构的纯软件的开发方式有着本质的不同。
当下的困难?未来的开发方式?
All Programmable要真正流行,个人估计至少还得5到10年以上的时间。最大的困难在于All Programmable要求软硬件同时设计,而现如今硬件、软件设计工具、流程、知识体系差异巨大。需要技术和时间来打造全新的硬件平台、开发工具、人员培训等等。当下产学界正在全力解决这些问题,例如可以将c/c++直接转为电路的高位综合编译器(HLS),全虚拟化的异构计算开发框架,都是热门的研发课题。传统的软件开发人员可能还不会感触到这些进展,但FPGA这个词肯定会更频繁地进入大家的视野。
未来的开发方式我认为会是这样,硬件IP开发者面向应用开发加速硬件,并以第三方库的形式公开到Github等开源社区。而软件开发人员可以和现在使用函数库、组件一样,轻松下载集成这些加速器,加速自己的应用而不用关心硬件底层。当如今的SoC发展为Programmable SoC,每个人口袋里都会装着一台超算。
Computing面临什么问题?
社会的IoT(物联网)化高速发展,思科IBSG曾预测2020年联网设备数会超过500亿台,这个数字是2015年的2倍。处理、分析这些设备产生的大量数据更需要比如今更多的计算资源。然而目前基于高主频CPU的云计算架构存在成本高、利用率低、耗电大等问题。例如被传拥有300万台服务器的Google每年电费成本高达数十亿人民币。因此,需要新的、高能效计算机架构才能支撑下一代的数据中心。
异构计算?
CPU是万能的,但不是最高能效的。GPGPU替代CPU在Deep Learning加速等领域已得到经广泛应用。然而CPU和GPGPU都无法高效解决的场景还有很多,目前最有可能加速这些场景的设备,就只有FPGA。近些年使用FPGA加速各种应用的研究层出不穷,通常FPGA比CPU的吞吐量、效能比要高几十上百倍。所以未来的数据中心,必然是CPU+FPGA+GPGPU+X的异构计算体系。
All Programmable是必然?
其实通用计算和专用计算十年河东十年河西,Makimoto's Wave就是对这一趋势的总结和预测。
趋势图的后半预测FPGA和SoC会在通用计算领域越来越重要,接下来的结果很有可能是Programmable SoC(FPGA SoC)的时代,即Xilinx的All Programmable概念。另一家FPGA大厂Altera,今年被Intel以167亿美元收购后,两家公司的技术组合也必然引向All Programmable的未来。All Programmable是通用、专用计算两条河终于合流的起点。
什么是All Programmable?
80年代FPGA刚被发明的时候规模较小,主要用来实现连接各种芯片的粘结逻辑(Glue logic)。今非昔比,现在的FPGA已经大到可以将CPU、Memory、DSP、各种接口控制器埋在自己的可编程逻辑阵列当中,根据需求随意组合,更可以在FPGA上实现自己的专用硬件电路,这就是All Programmable。All Programmable最大的魅力在于,通过FPGA的自由编程能力,开发人员可以使用最高效的硬件组合完成运算。这和目前基于冯诺依曼架构的纯软件的开发方式有着本质的不同。
当下的困难?未来的开发方式?
All Programmable要真正流行,个人估计至少还得5到10年以上的时间。最大的困难在于All Programmable要求软硬件同时设计,而现如今硬件、软件设计工具、流程、知识体系差异巨大。需要技术和时间来打造全新的硬件平台、开发工具、人员培训等等。当下产学界正在全力解决这些问题,例如可以将c/c++直接转为电路的高位综合编译器(HLS),全虚拟化的异构计算开发框架,都是热门的研发课题。传统的软件开发人员可能还不会感触到这些进展,但FPGA这个词肯定会更频繁地进入大家的视野。
未来的开发方式我认为会是这样,硬件IP开发者面向应用开发加速硬件,并以第三方库的形式公开到Github等开源社区。而软件开发人员可以和现在使用函数库、组件一样,轻松下载集成这些加速器,加速自己的应用而不用关心硬件底层。当如今的SoC发展为Programmable SoC,每个人口袋里都会装着一台超算。