|
1
9
我知道这是一个老问题,上面有老答案。我想我会用最新的答案来更新它。 是的,OpenCL内核和代码的一个实现将在今天的各种设备上工作,并具有正确编写的平台和设备枚举代码。编写正确的平台和设备枚举代码非常容易,棘手的部分是选择哪个平台或设备。您可能应该在应用程序中提供一个配置选项,用户可以在其中选择一个,或者对每个选项运行一个微基准测试,并动态选择一个并缓存测试结果。 人们可以而且将会拥有多个平台。例如,我的系统有GTX 580 SLI,所以它在英伟达平台上有两个设备。它还具有Intel OpenCL SDK,因此我的CoreI7 990x Extreme CPU也作为Intel平台中的设备出现。
显然,最终用户可能没有任何OpenCL,因此您可能需要延迟加载或LoadLibrary OpenCL.dll和动态链接。 我强烈建议在NVidia GPU和AMD GPU上针对Intel OpenCL SDK测试您的代码。您可能会在一个平台上发现导致问题的错误,但在其他平台上运行良好。你可能还会发现,由于驱动程序错误,完全好的代码在其中一个平台上神秘地没有给出正确的结果。 |
|
|
2
6
最终,OpenCL将以与OpenGL相同的方式工作。也就是说,用户将从他们的硬件供应商(ATI、NVIDIA、Intel)安装当前的驱动程序。作为开发人员,您在构建应用程序时只需链接到OpenCL库即可。当用户运行应用程序时,应用程序将重定向到驱动程序提供的适当的特定于供应商的库。
|
|
|
ProEns08 · cuDNN库是否适用于All nvidia图形卡? 10 年前 |
|
|
Zach Dwiel · 如何计算Theano中的GPU内存使用量? 10 年前 |
|
|
user3116936 · 当X Server打开时,大型阵列的内核超时 10 年前 |
|
|
Controller · 用推力排序Cuda中的2D阵列 11 年前 |
|
|
chafner · C++函数调用后SSBO的内容无效 12 年前 |
|
|
Kukunin · 如何扩展GPGPU的顶点着色器功能 12 年前 |
|
|
mrei · 参数超过256字节的CUDA内核调用的想法 12 年前 |