共计 1330 个字符,预计需要花费 4 分钟才能阅读完成。
gpu 高性能计算与图像处理
gpu hpc and image processing
1 什么是 gpu 高性能计算 近年来,以 nvidia tesla 为代表的异构芯片(协处理器)逐渐被引入到通用计算领域中。最初的图形处理 (graphic processing unit, gpu) 就是用来处理大规模的并行计算,并且 gpu 的并行处理能力在不断的上升。gpu 将更多的晶体管用于执行单元,而非像 cpu 那样用作复杂的数据 cache 和指令控制。由于 gpu 具有超强的浮点计算能力,除了在传统领域(图形显示,多用于游戏)的应用以外,gpu 越来越多地应用在科学计算领域上,并且逐渐进入高性能计算的主流。 cuda(compute unified device architecture,统一计算设备架构)是一种由 nvidia 推出的通用并行计算架构,该架构使 gpu 能够解决复杂的高性能计算问题。cuda 编程是在 c 语言上的基础上对 c 语言的扩展,不再需要借助于图形学 api,cuda 开发人员只需要在 c 语言的基础上从 cpu 过度到 gpu 上,cuda 提供了简单、容易的 gpu 开发工具,因此对于开发者来说,cuda 的开发门槛大大降低了。cuda 编程采用了异构体系结构的模式,cpu 作为主机,gpu 作为 cpu 的协处理器(或称设备),cpu 与 gpu 协同工作,cpu 负责逻辑性强的事务处理和串行计算,gpu 负责高度并行化的计算任务,cpu 与 gpu 共同完成加速任务。 cuda 编程语言的推出,使得在 gpu 平台上的高性能计算应用软件越来越多。目前,cuda 在石油勘测、流体动力学模拟、天文计算、分子动力学仿真、生物计算、图像处理、音频视频编解码、医疗成像、金融、数据库等领域得到广泛的应用,在很多应用中获得 2 - 3 个数量级的加速比,极大地提高了性能。 gpu 已广泛应用在图像增强处理、图像目标搜索、公安行业、国防安全、平安城市、交通系统、救灾、卫星成像、信号处理、人脸识别、指纹识别、多路高清直播、智能视频监控等领域中。在这些领域,利用 gpu 可以达到实时性计算,相对 cpu 平台加速数十倍甚至数百倍,cuda 计算在图像处理领域中的成功案例如下图:
2 gpu 高性能计算特点 目前,高端的 nvidia gpu 包含上千个核,双精度峰值性能超过 1tflops,单精度性能超过 3tflops,性价比远超过 cpu。nvidia gpu 有 tesla 和 geforce 两个系列,tesla 为服务器上专用,内存空间较大,运行稳定,但价格较高,geforce 系列显卡性能达到 tesla 的性能,然而成本很低,中端系列的 geforce 显卡只需要一千多元配置在 pc 上即可获得数十倍的性能。 目前,很多应用运行在 pc 机器上,然后 pc 的性能有限,尤其随着处理的数据规模的增大,pc 已远不能满足性能的需求,当采用 cpu 服务器解决时,成本将提高 5 -10 倍,不利于成本的控制。然后,nvidia 提供了 pc 版本的 geforce 系列 gpu,geforce 系列 gpu 价格在数百元到上万元之前,我们可以采用 pc geforce gpu 的配置方案,性能同样可以获得原 pc 的数十倍,然而,成本仅增加 10%-50%。pc gpu 的优化方案将成为一些应用软件的重要配置方案。