而众所周知,在专用芯片与通用芯片中间,还有一个更为灵活,也更为神秘的领域:FPGA。无论是英特尔天价的收购还是微软与 IBM 雄心勃勃的计划,都让人对其更加好奇。而“万能芯片”的名称,以及多样化的职责范围:它可以是智能手机里不起眼的一个小组件,也可以是数千美金一块的开发板,也让人对其真面目更加疑惑。
FPGA 与深度学习的关系究竟是什么?它适合加速何种类型的运算?适合应用于何种场景?6 月,机器之心采访了美国伊利诺伊大学香槟分校电气与计算机工程系(UIUC ECE)教授、深度学习算法硬件加速解决方案创业公司 Inspirit IoT 创始人陈德铭,与他聊了聊“万能芯片”FPGA 在深度学习领域的用法。陈教授于近期宣布兼任国内计算机视觉领域创业公司触景无限的首席科学家。
以下为采访实录。
机器之心:从算法的角度,FPGA 适合于加速哪些运算?
FPGA 的优势在于可定制化的并行。它可以为了特定算法专门定制逻辑单元。例如,算法中需要完成一个开三次方的运算,在通用芯片上需要一长串指令实现它,但是在 FPGA 上可以为这个特定运算设计一个单元。
定制化的一个“极限”的例子是,如果能够把神经网络中的参数全部二值化、特征图(feature map)也全部二值化,那么甚至可以不用乘法器,而是用异或门(XOR gate)完成计算,会有异常强大的表现。即使不全部二值化,因为全部二值化会让准确度明显下降,只要合理使用各种低位宽的运算,仍可以让 FPGA 大放异彩。比如在我们最近和 IBM 合作的 ELB-NN 项目中,我们可以在功耗低于 5 瓦的情形下,让神经网络在 FPGA 上的算力达到 10.3 TOPS,同时依然维持非常高的准确度。
另一个例子是微软的 Brainwave FPGA 项目,通过使用特殊的 8-bit 的浮点运算,可以在高容量的 FPGA 上达到 40 TOPS。
值得一提的是,LSTM 等神经网络每一步操作都很相似,这种整体运算过程是序列的算法也非常适用于用 FPGA 进行加速。FPGA 非常擅长处理流数据,可以设计流水线机制,使得在运算过程中不需要将中间数据存入内存而是直接送到下一步进行操作。
机器之心:相比于其他芯片,FPGA 在实现深度学习模型时有哪些结构带来的优势?
FPGA 的引脚比一般的芯片多,同时它的逻辑单元可以完全根据算法要求来重组从而产生定制化的数据通路(datapath),因此非常适合处理大批量流数据。它不像 GPU 一样需要反复调取片外存储中的数据,理想状态时,只要数据一次性流进去再流出来,算法就完成了,因此,FPGA 非常适合具有低延迟需求的任务。
另外 FPGA 的速度快、功率低的特点也让它在能耗方面相比于 CPU、GPU 也有很大优势。
而众所周知,在专用芯片与通用芯片中间,还有一个更为灵活,也更为神秘的领域:FPGA。无论是英特尔天价的收购还是微软与 IBM 雄心勃勃的计划,都让人对其更加好奇。而“万能芯片”的名称,以及多样化的职责范围:它可以是智能手机里不起眼的一个小组件,也可以是数千美金一块的开发板,也让人对其真面目更加疑惑。
FPGA 与深度学习的关系究竟是什么?它适合加速何种类型的运算?适合应用于何种场景?6 月,机器之心采访了美国伊利诺伊大学香槟分校电气与计算机工程系(UIUC ECE)教授、深度学习算法硬件加速解决方案创业公司 Inspirit IoT 创始人陈德铭,与他聊了聊“万能芯片”FPGA 在深度学习领域的用法。陈教授于近期宣布兼任国内计算机视觉领域创业公司触景无限的首席科学家。
以下为采访实录。
机器之心:从算法的角度,FPGA 适合于加速哪些运算?
FPGA 的优势在于可定制化的并行。它可以为了特定算法专门定制逻辑单元。例如,算法中需要完成一个开三次方的运算,在通用芯片上需要一长串指令实现它,但是在 FPGA 上可以为这个特定运算设计一个单元。
定制化的一个“极限”的例子是,如果能够把神经网络中的参数全部二值化、特征图(feature map)也全部二值化,那么甚至可以不用乘法器,而是用异或门(XOR gate)完成计算,会有异常强大的表现。即使不全部二值化,因为全部二值化会让准确度明显下降,只要合理使用各种低位宽的运算,仍可以让 FPGA 大放异彩。比如在我们最近和 IBM 合作的 ELB-NN 项目中,我们可以在功耗低于 5 瓦的情形下,让神经网络在 FPGA 上的算力达到 10.3 TOPS,同时依然维持非常高的准确度。
另一个例子是微软的 Brainwave FPGA 项目,通过使用特殊的 8-bit 的浮点运算,可以在高容量的 FPGA 上达到 40 TOPS。
值得一提的是,LSTM 等神经网络每一步操作都很相似,这种整体运算过程是序列的算法也非常适用于用 FPGA 进行加速。FPGA 非常擅长处理流数据,可以设计流水线机制,使得在运算过程中不需要将中间数据存入内存而是直接送到下一步进行操作。
机器之心:相比于其他芯片,FPGA 在实现深度学习模型时有哪些结构带来的优势?
FPGA 的引脚比一般的芯片多,同时它的逻辑单元可以完全根据算法要求来重组从而产生定制化的数据通路(datapath),因此非常适合处理大批量流数据。它不像 GPU 一样需要反复调取片外存储中的数据,理想状态时,只要数据一次性流进去再流出来,算法就完成了,因此,FPGA 非常适合具有低延迟需求的任务。
另外 FPGA 的速度快、功率低的特点也让它在能耗方面相比于 CPU、GPU 也有很大优势。
举报