谈CUDA和OpenCL的差异和发展前景
作者:赵铠楠
来源:《科技经济市场》2015年第12期
作者:赵铠楠
来源:《科技经济市场》2015年第12期
摘 要:CUDA是一种由NVIDIA推出的并行计算架构,非常适合大规模数据密集型计算。CUDA使GPU的超高计算性能在数据处理和并行计算等通用计算领域发挥优势,本文讨论了CUDA的计算架构和基于GPU的CUDA C编程语言,CUDA使GPU流处理器阵列的性能得到充分发挥。极大地提高了并行计算程序的效率。
关键词:OpenCL;CUDA
从很多方面来看,CUDA和OpenCL的关系都和DirectX与OpenGL的关系很相像。如同DirectX和OpenGL一样,CUDA和OpenCL中,前者是配备完整工具包、针对单一供应商(NVIDIA)的成熟的开发平台,后者是一个开放的标准。
虽然两者抱着相同的目标:通用并行计算。但是CUDA仅仅能够在NVIDIA的GPU硬件上运行,而OpenCL的目标是面向任何一种Massively Parallel Processor,期望能够对不同种类的硬件给出一个相同的编程模型。由于这一根本区别,二者在很多方面都存在不同:
1 开发者友好程度。
CUDA在这方面显然受更多开发者青睐。原因在于其统一的开发套件(CUDAToolkit, NVIDIA GPU Computing SDK以及NSight等等)、非常丰富的库(cuFFT,cuBLAS, cuSPARSE, cuRAND, NPP, Thrust)以及NVCC(NVIDIA最有前途的编程语言的CUDA编译器)所具备的PTX(一种SSA中间表示,为不同的NVIDIA GPU设备提供一套统一的静态ISA)代码生成、离线编译等更成熟的编译器特性。相比之下,使用OpenCL进行开发,只有AMD对OpenCL的驱动相对成熟。
2 跨平台性和通用性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论