首页 > 解决方案 > 我可以在编译时检查 OpenCL 内核语法吗?

问题描述

我正在一个更大的项目中处理一些 OpenCL 代码。该代码仅在运行时编译 - 但我不想部署一个版本并为此启动它。有什么方法可以让我检查这些内核的语法(即使不考虑),甚至编译它们,至少在一些限制下,以便更容易更早地捕获错误?

我将针对 AMD 和/或 NVIDIA GPU。

标签: opencldynamic-compilation

解决方案


您正在寻找的程序类型是 OpenCL 内核的“离线编译器”——知道这将有助于您的搜索。它们存在于许多 OpenCL 实现中,您应该检查您正在使用的特定实现的可用性;否则,快速的网络搜索表明有一些通用的开源代码可能适合您,也可能不适合您。

如果您的构建机器也是您的部署机器(即您的目标 OpenCL 实现在您的构建机器上可用),您当然也可以自己组装一个非常基本的离线编译器,只需简单地将clBuildProgram()和朋友包装在一个基本的命令行实用程序中。


推荐阅读