首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种与操作系统无关的方法将OpenCL内核导入SPIR?

是否有一种与操作系统无关的方法将OpenCL内核导入SPIR?
EN

Stack Overflow用户
提问于 2020-12-28 10:27:34
回答 1查看 309关注 0票数 0

我已经找到了一个关于用开源工具将OpenCL内核离线编译成SPIRclang指南,但是我无法找到一种与其他编译器一起进行此操作的正式方法。

有没有一种方法可以使用OpenCL将一个CMake内核转换到SPIR中?如果不是,除了编写自定义脚本和在不同的操作系统上调用clang (我对Linux和Windows特别感兴趣)之外,是否还有另一种通用的方法来构建相同的包含OpenCL的项目?

我看到SPIR-V是为OpenCL 2.0+设计的,但是NVidia显卡只支持OpenCL 1.2-。包含SPIR模块的应用程序会在NVidia显卡上工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-30 19:58:08

但我无法找到一种与其他编译器一起进行此操作的正式方法。

因为没有任何官方的方法。大多数实现甚至不允许您以独立或脱机的方式运行它们的编译器。有Clang,IIRC确实有一个离线OpenCL编译器;我不知道还有其他编译器。

除了编写自定义脚本和在不同的操作系统上调用clang之外,是否还有另一种通用的方法来构建相同的包含OpenCL的项目?

取决于你所说的“建筑”是什么意思。几乎在任何地方工作的唯一方法是使用程序分发OpenCL源代码,并在运行时调用clBuildProgram()。如果这对您不好,那么您有两个选项: 1)混淆CL源,2)分发二进制文件。对于2),没有任何正式的二进制格式在任何地方都能工作。SPIR非常接近,但它的支持仅在OpenCL 2.1之后才是强制性的。

包含SPIR模块的应用程序会在NVidia显卡上工作吗?

不是的。您可以使用“正式方式”获得特定于Nvidia的二进制文件,方法是在clGetProgramInfo()之后调用clBuildProgram()。

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

https://stackoverflow.com/questions/65476190

复制
相关文章

相似问题

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