nul*_*nge 10
回答你的第二个问题:
如果要编写与平台无关的GPGPU代码,OpenCL是(唯一的)方法.
如果你搜索一下,ATIs网站实际上有很多OpenCL资源,他们的示例项目很容易修改成你需要的东西,或者只是为了理解代码.
OpenCL规范和参考页面也是一个非常好的知识来源:http : //www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/ http://www.khronos.org/registry /cl/specs/opencl-1.1.pdf
有很多讨论可以解释一些核心概念,也解释了如何编写我建议的快速代码(这也适用于CUDA).
几乎回答你的第一个问题:在OpenCL中,代码在运行时编译为你正在使用的特定GPU(以保证速度).
你可能想在CUDA上做一些背景阅读 - 这不是你可以通过查看一些代码示例来获取的东西.现在亚马逊上有大约3种不同的CUDA书籍,http://developer.nvidia.com上有很多参考资料.
回答你的问题:
是的,.cu文件使用nvcc编译为中间形式(PTX) - 随后在运行时将其转换为特定于GPU的代码
生成的代码将在nVidia GPU的子集上运行,子集的大小取决于您在代码中使用的CUDA功能