OpenCL
可以从你的生产代码中接口调用
在不同的图形硬件之间具有可移植性
操作有限但有预定义的快捷方式
CUDA
独立的语言(CUDA C)
仅限nVidia硬件
几乎完全控制代码(使用类似于C语言的编程)
有很多分析和调试工具
简单来说,OpenCL是可移植的,而CUDA仅适用于nVidia。然而,作为一种独立的语言,CUDA更加强大且拥有一系列非常好的工具。
易用性 -- OpenCL开箱即用,更易上手,但一旦设置好CUDA编码环境,它几乎就像使用C语言进行编码。
社区和文档 -- 两者都有广泛的文档和示例,尽管我认为CUDA更好。
性能 -- CUDA允许更大的控制权,因此可以更好地进行高性能的微调。
未来 -- 很难说。