首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发布可靠的OpenCL应用程序-工具/技术/提示?

发布可靠的OpenCL应用程序-工具/技术/提示?
EN

Stack Overflow用户
提问于 2013-10-31 04:25:36
回答 3查看 304关注 0票数 1

我想发货的OpenCL代码,应该工作在所有OpenCL 1.1兼容的GPU。有没有什么工具可以帮助确保可靠性,而不是购买一堆GPU并在它们上进行测试?

如果任何人有将OpenCL应用程序发布到广泛硬件基础上的经验,我很有兴趣了解其他测试可靠性的方法。

EN

回答 3

Stack Overflow用户

发布于 2013-10-31 05:13:21

我对此略知一二。不幸的是,答案是:取决于内核正在做什么。

我最大的抱怨是NVIDIA和OpenCL,因为它们似乎不支持:向量(float2,4等)和全局偏移量。有点让人讨厌。Intel和ATI都是可靠的,但即便如此,向量大小也可能不同。如果你正在做图像卷积,上面的内容并不重要。

如果你想在NVIDIA卡上运行AMD FFT,做矩阵数学等等,这很重要。为了解决向量问题,你可以编写多个内核,每个内核都有不同的向量大小,并调用正确的一个: MatrixMult_float4(...)。

票数 0
EN

Stack Overflow用户

发布于 2013-11-03 07:40:38

您可以使用AMD检查您的代码是否编译,尽管这确实需要一些KernelAnalyzer2驱动程序的组件,因此它只适用于配备AMD的PC。还有英特尔内核构建器,它适用于支持英特尔OpenCL软件开发工具包的设备。Nvidia的实现中有错误,特别是在更新的GPU上,根据我的经验,所以最好的方法是测试每一代的一个GPU。

票数 0
EN

Stack Overflow用户

发布于 2013-11-03 08:13:11

为了避免扩展和验证CL语言版本,可以尝试使用LLVM测试编译代码,或者只是获得用于验证的语法,例如BNF。

有一个很有前途的开源项目,它可能包含有用的东西:http://bazaar.launchpad.net/~pocl/pocl/master/files/head:/lib/CL/

然而,我遇到的问题是:

  • 换行符在OpenCL源文件中的某些实现(CR、LF、CRLF)上造成构建断点。将其中之一指定为唯一有效的行尾将是愚蠢的。如果要在不同平台上与SCM一起编辑源文件,可能会很不方便。因此,在compilation.
  • Performance:使用多线程有效地提供给图形处理器之前,我删除了注释并清理了换行符;不同的硬件星座有不同的瓶颈。在这里,我需要一个具有多个分派器线程的客户端管道。当然,CPU的剩余工作量取决于计算设备的任务或功能、数量和资源。需要序列化执行或动态循环计数的东西就是这样的候选对象。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19693142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档