关于OpenCL和CUDA C的效能我主观上感觉CUDA C会好一点,毕竟他和CUDA是同生的,从NV的解释看CUDA应该理解成一种指令集,CUDA C、OpenCL和DX11都是在CUDA构架上运行的一种语言,都需要先通过驱动编译成PTX语言(类似于X86汇编)来在GPU上运行,虽然NV的驱动也会对OpenCL做优化但肯定没有CUDA C更适应NV的GPU的硬件结构和内存管理特性,CUDA C来得更直接,DX11就说不清楚了,这就有点战略性了,对谁优化多一点NV的PTX编译驱动很关键,但我觉得可以大胆推测现有平台上:效率(OpenCL on AMD)<效率(OpenCL on NV)<效率(CUDA C on NV)。效率应该是(单位时间内数据处理量)/(晶体管数*工作频率)。未来AMD也可能改善它的底层构架来更好的支持OpenCL,但是NV也没停下,而且起点比他高。