opencl - 我可以在编译时检查 OpenCL 内核语法吗?
问题描述
我正在一个更大的项目中处理一些 OpenCL 代码。该代码仅在运行时编译 - 但我不想部署一个版本并为此启动它。有什么方法可以让我检查这些内核的语法(即使不考虑),甚至编译它们,至少在一些限制下,以便更容易更早地捕获错误?
我将针对 AMD 和/或 NVIDIA GPU。
解决方案
您正在寻找的程序类型是 OpenCL 内核的“离线编译器”——知道这将有助于您的搜索。它们存在于许多 OpenCL 实现中,您应该检查您正在使用的特定实现的可用性;否则,快速的网络搜索表明有一些通用的开源代码可能适合您,也可能不适合您。
如果您的构建机器也是您的部署机器(即您的目标 OpenCL 实现在您的构建机器上可用),您当然也可以自己组装一个非常基本的离线编译器,只需简单地将clBuildProgram()
和朋友包装在一个基本的命令行实用程序中。
推荐阅读
- c# - 如何在波引擎中添加点列表
- java - 没有 JDBC 类型的方言映射:-155
- angular - 如何在 Angular 单元测试中设置当前路由
- javascript - 检测未知设备以提醒用户的最佳方法
- azure - Azure SDK 帮助:如何获取有关用户最后访问的服务的信息?
- firebase - 无论如何,是否可以在 Google Analytics 中查看我从 Firebase 应用程序记录的(自定义)事件?
- amazon-web-services - 应用程序负载均衡器使用 Cognito 内部 500 错误进行身份验证
- javascript - 是否可以在 instagram 应用程序之外的 instagram 浏览器中打开网址?
- excel - 如果使用复制/粘贴插入,使用宏找到的值不会被替换
- javascript - 网页更改 url 后,开发工具中的 Javascript 片段似乎无法执行