我已经成功地使用OpenCL与VS2015一起编写和执行了.cl程序。我现在正试图通过下面的OpenCL C++将其转换为这些准则,其中提到:
要将OpenCL C++内核语言编译成SPIR,用户必须使用不属于OpenCL框架的编译器。Khronos组提供参考基于Clang 3.6的离线编译器和OpenCL C++标准库libclcxx的实现。
如何使这些安装说明适应VS2015?
发布于 2018-09-25 07:34:40
在使用OpenCL时,您应该了解代码是如何划分的。有一部分代码在主机环境下运行,然后是设备代码。
在您的示例中,您可以使用VS2015编译主机代码,并通过OpenCL运行时库进行链接。但是,MSVC不支持编译内核代码,无论是C代码还是C++代码。
要编译内核代码,可以使用OpenCL运行时库(即,clCreateProgram后面跟着clBuildProgram),如果它们支持源代码的话。此外,一些(大多数) OpenCL设备支持内核代码的中间表示。这些中间表示之一是通用的SPIR-V。因此,假设内核满足所有OpenCL要求,您就能够加载内核的任意SPIR表示。
因此,指令告诉您要做的是使用外部工具将".cl“文件编译到OpenCL运行时本身,使其成为SPIR-V表示,然后用OpenCL运行时加载该表示形式(clCreateProgramWithIL后接clBuildProgram)。
你具体是怎么做的取决于你自己。一种方法是使用Khronos:https://github.com/KhronosGroup/SPIR/tree/spirv-1.1提供的修改Clang编译器。
一旦构建好了它(如果已经安装了git和cmake,那么就很容易了),您可以使用定制的构建工具/步骤(随您喜欢)在VS2015中调用它。
https://stackoverflow.com/questions/49812854
复制相似问题