固定点库OpenCL FPGA

时间:2017-09-15 16:44:23

标签: opencl fixed-point

我正在尝试加速在FPGA上执行算法。我试图在C代码中寻找长度为32:32(64)的固定数学库,这很容易转换为OpenCL。有没有人知道一个好的图书馆?我试图避免使用128位数据类型,因为它们是OpenCL上的浮点数,我想如果我不得不再次使用浮点数,它不会加速我的算法。任何建议表示赞赏。如果有一个创建自己的图书馆的指南我就可以了,只要它解释得很容易哈哈。

由于

2 个答案:

答案 0 :(得分:1)

我发现GPU仅适用于花车。我将为您提供一些CUDA C ++ 11 / C ++ 14技巧:

- 使用标准化浮点范围[-1.0,+ 1.0]以获得最高精度并单独存储标准化值(累计加倍),

- 无论如何数据都是高范围(大数除法以有损归一化结束)归一化为中位子抽取(单独存储为uint64_t)=大数字将以较小的精度存储。人们可以使用修剪的平均值f.e。 5%而非中位数,

-sort并定期规范化,

-in 2017使用新的GTX1080ti(GFLOPS / USD; GFLOPS / W)或使用GTX 770,

- 高端FPGA如果在ADC或之后(低功率)嵌入式系统(通常是网络交换机,媒体处理视频,实时FFT)中用作预处理单元,那就太棒了设备,等等。此外,即使这些超低功耗计算设备的最佳型号也很少超过数百GFLOPS 1500美元。它等于全新的,外壳和大多数问题解决的NVidia论坛GT730 4GB GDDR5由Palit提供35美元,

- 通过实例预算几十美元" CUDA"等。 J. Sanders,免费YT课程" Udacity介绍并行编程"和伟大的书"专业的CUDA编程"等。 J. Cheng将在三个全职月份成为CUDA C ++ 11中级程序员,

- 自己研究针对老式序列CPU的定点算术,以得出一些结论,即cos,squre root和其他基础只有有限的库。更复杂的功能是有问题的,并且没有大的社区支持来解决错误。最后你会发现FPU没有加速,或者这么大的努力小于数量级(从零开始写一切),

-buy(最小微架构Keppler)GPU(自流行的GTX670以来)从一些没有受过良好教育的少年获得50美元,

-install Ubuntu,获取GNU Octave和please-cite-GNU Parallel以解决大多数非GPU问题,

- 使用FPGA开发用于大规模生产的高端ASIC。

Post Scriptum:来自YouTube的用户#WhatsACreel可以为您写一些固定点功能 - 给他写一封带有诚实优惠的电子邮件。在他的频道上,他解释了定点逻辑的基础。

答案 1 :(得分:0)

尽管人们对FPGA与GPU普遍存在误解,但FPGA的表现却令人印象深刻。有关FP16和INT8的更多信息,请参见:https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/wp/wp-01269-accelerating-deep-learning-with-opencl-and-intel-stratix-10-fpgas.pdf 尽管OpenCL并非针对FPGA的基于库的方法,但是有很多来自Altera / Intel和XILINX的具有不同数据类型的示例。 https://www.altera.com/products/design-software/embedded-software-developers/opencl/developer-zone.htmlhttps://github.com/Xilinx/SDAccel_Examples 比数据宽度和类型更重要的是算法IMHO的数据移动和数据重用方面。 V100与P100相比如何提高性能-通过巧妙的调度,在硬件协助下进行零复制,避免DRAM流量以及在GPU硬件中进行张量转置。 https://devblogs.nvidia.com/tensor-core-ai-performance-milestones/ FPGA也不例外。要获得苹果到苹果的性能基准,必须学习这些技巧并以OpenCL或C(HLS)代码在FPGA上实现它们。