高性能浮点处理一直与高性能 CPU 相关联。在过去几年中,GPU 也成为功能强大的浮点处理平台,超越了图形,称为 GPGPU(通用图形处理单元)。新创新是在苛刻的应用中实现基于 FPGA 的浮点处理。本文的重点是 FPGA 及其浮点性能和设计流程,以及 OpenCL 的使用,这是高性能浮点计算前沿的编程语言。各种处理平台的 GFLOP 指标在不断提高,现在,TFLOP/s 这一术语已经使用的非常广泛了。但是,在某些平台上,峰值 GFLOP/s,即,TFLOP/s 表示的器件性能信息有限。它只表示了每秒能够完成的理论浮点加法或者乘法总数。分析表明,FPGA 单精度浮点处理能够超过 1 TFLOP/s。一种不太复杂的常用算法是 FFT。使用单精度浮点实现了 4096 点 FFT。它能够在每个时钟周期输入输出四个复数采样。每一个 FFT 内核运行速度超过 80 GFLOP/s,大容量 FPGA 的资源支持实现 7 个这类的内核。但是,如图 1 所示,这一 FPGA 的 FFT 算法 GFLOP/s 接近 400 GFLOP/s。这是“按键式”OpenCL 编译结果,不需要 FPGA 专业知识。使用逻辑锁定和 DSE 进行优化,7 内核设计接近单内核设计的 Fmax,将其 GFLOP/s 提升至 500,超过了 10 GFLOP/s 每瓦。这一每瓦 GFLOP/s 要比 CPU 或者 GPU 功效高很多。对比一下 GPU,GPU 在这些 FFT 长度上效率并不高,因此,没有进行基准测试。当 FFT 长度达到几十万个点时,GPU 效率才比较高,能够为 CPU 提供有效的加速功能。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !