高性能图形处理单元 (GPU) 的内部计算架构已从固定功能图形执行单元发展为完全可编程的单指令多数据 (SIMD) 处理器阵列。这种演变是由视频游戏社区的需求推动的,即并行执行通用物理计算,以使烟雾、碎片、火灾和流体等行为更加逼真。将这些相同类型的重复并行计算卸载和加速到 GPU 上的能力为雷达、声纳和图像处理等军事技术提供了巨大的潜力。高效实施的关键是新一代工具,如 OpenCL 和 CUDA,它们集成了跨异构 CPU/GPU 架构的代码开发以及支持它们的内存和 I/O 带宽。
单边处理光线
高性能 GPU 设备的核心通常具有多达 128 个 32 位单精度处理器内核,主频为 1 GHz 或更高。它们被组织为并行 SIMD 阵列,以便处理器组可以在不同的数据集上并行执行相同的指令。作为 GPU 运行时,主要要求是利用动画 3D 图形功能,例如着色器。然而,GPU 正在从特定的着色器处理器演变而成为更通用的数学处理器,现在称为“流处理器”。借助正确的工具,GPU 可以更广泛地应用于加速多种基于 PC 的应用程序,例如基因研究、地震处理、气象处理和 DSP,其成本远低于其他更具体的硬件加速形式。
一家主要的GPU制造商NVIDIA开发了一种称为CUDA的软件环境,以将GPU的潜力释放到这些其他应用领域。CUDA 通过允许通过隐藏 GPU 流处理器及其与 CPU 接口的抽象函数库进行内联 C 代码开发来支持 CPU 和 GPU 的组合。这提供了一个非常灵活的编程接口,并允许将来对流处理器进行增长甚至根本性更改,而不会影响现有代码。为了减少错误的范围,CUDA 采用简单的编程模型,在内部管理多个线程以优化处理器利用率,因此无需编写显式线程代码。
没有图形的图形 GPU
矛盾的是,会有一类嵌入式应用程序根本不会生成任何本地图形输出。通常,此类可能包括无人机或水下遥控车辆(ROV)或许多其他类型的无人传感器中的图像处理。具有 GPU 的嵌入式 PC 成为图像增强、稳定、模式识别、目标跟踪、视频编码或加密/解密的理想平台。这些都是可以用常规 C 代码编写以在高性能 PC 上运行的应用程序,但可以通过 GPU 流处理器加速以运行速度快几个数量级。GPU 提供已经集成到许多 PC 配置中的通用并行处理,并且通过使用现成的工具(如 CUDA、MathWorks 的 MATLAB 和移植的 VSIPL DSP 库)来构建、测试和验证应用程序,需要的专业技能低于 FPGA 开发。
PCI Express 是性能的关键
嵌入式传感器处理应用需要高数据带宽来接收和处理连续的传入原始图像数据流。CUDA 处理多线程并因此最大化 GPU SIMD 阵列的处理负载的能力取决于外部接口及其本地内存接口的性能。高端GPU设备将使用16通道PCI Express 2.0,是早期PCI Express 1.0数据速率的两倍,理论上每通道500 MBps。对于坚固耐用的嵌入式应用,这非常适合VPX (ANSI/VITA 46)封装标准的流行3U和6U格式,并具有扩展的高速连接性。GE Fanuc Intelligent Platforms的MAGIC1强固型嵌入式PC(如图1所示)基于3U VPX外形,并经过重新设计和增强,以支持NVIDIA支持CUDA的GPU。虽然这种嵌入式PC非常适合3U格式,但6U配置文件还具有空间和更大的连接性,有可能基于许多多核处理器和GPU使用PCI Express 2.0作为互连的新型强大多计算引擎。
GPU 正在迅速发展,创造了一种处理能力,可在许多不同的市场中得到广泛的应用。CUDA 和类似的开发环境提供了对这种未开发性能储备的可访问性。因此,坚固耐用的军事和航空航天领域似乎将改变复杂、耗时的传感器应用的开发、测试、验证和成功部署方式。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !