我想发货的OpenCL代码,应该工作在所有OpenCL 1.1兼容的GPU。有没有什么工具可以帮助确保可靠性,而不是购买一堆GPU并在它们上进行测试?
如果任何人有将OpenCL应用程序发布到广泛硬件基础上的经验,我很有兴趣了解其他测试可靠性的方法。
发布于 2013-10-31 05:13:21
我对此略知一二。不幸的是,答案是:取决于内核正在做什么。
我最大的抱怨是NVIDIA和OpenCL,因为它们似乎不支持:向量(float2,4等)和全局偏移量。有点让人讨厌。Intel和ATI都是可靠的,但即便如此,向量大小也可能不同。如果你正在做图像卷积,上面的内容并不重要。
如果你想在NVIDIA卡上运行AMD FFT,做矩阵数学等等,这很重要。为了解决向量问题,你可以编写多个内核,每个内核都有不同的向量大小,并调用正确的一个: MatrixMult_float4(...)。
发布于 2013-11-03 07:40:38
您可以使用AMD检查您的代码是否编译,尽管这确实需要一些KernelAnalyzer2驱动程序的组件,因此它只适用于配备AMD的PC。还有英特尔内核构建器,它适用于支持英特尔OpenCL软件开发工具包的设备。Nvidia的实现中有错误,特别是在更新的GPU上,根据我的经验,所以最好的方法是测试每一代的一个GPU。
发布于 2013-11-03 08:13:11
为了避免扩展和验证CL语言版本,可以尝试使用LLVM测试编译代码,或者只是获得用于验证的语法,例如BNF。
有一个很有前途的开源项目,它可能包含有用的东西:http://bazaar.launchpad.net/~pocl/pocl/master/files/head:/lib/CL/
然而,我遇到的问题是:
https://stackoverflow.com/questions/19693142
复制相似问题