首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SPIR中使用OpenCL库?

如何在SPIR中使用OpenCL库?
EN

Stack Overflow用户
提问于 2018-04-13 08:47:39
回答 1查看 1.7K关注 0票数 1

我已经成功地使用OpenCL与VS2015一起编写和执行了.cl程序。我现在正试图通过下面的OpenCL C++将其转换为这些准则,其中提到:

要将OpenCL C++内核语言编译成SPIR,用户必须使用不属于OpenCL框架的编译器。Khronos组提供参考基于Clang 3.6的离线编译器和OpenCL C++标准库libclcxx的实现。

如何使这些安装说明适应VS2015?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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中调用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49812854

复制
相关文章

相似问题

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