【问题标题】:Load SPIR binary with clBuildProgram on Windows在 Windows 上使用 clBuildProgram 加载 SPIR 二进制文件
【发布时间】:2019-02-19 09:27:10
【问题描述】:

我正在尝试加载我使用 clang+llvm 6.0.1 创建的 SPIR 二进制文件。

创建了几个不同的文件:

clang -target spir-unknown-unknown -cl-std=CL1.2 -c -emit-llvm -Xclang -finclude-default-header OCLkernel.cl  
clang -target amdgcn-amd-amdhsa -cl-std=CL1.2 -c -emit-llvm -Xclang -finclude-default-header OCLkernel.cl  
clang -cc1 -emit-llvm-bc -triple spir-unknown-unknown -cl-std=CL1.2 -include "include\opencl-c.h" OCLkernel.cl

这一切都发生在 Windows 上,安装了 AMD APP SDK 3 和 Adrenalin 18.6.1 驱动程序。

在此之后我尝试从二进制文件创建一个程序:

clCreateProgramWithBinary(context, 1, &device, &programSrcSize, (const unsigned char**)&programSrc, 0 , &status)

这一切都很好,我在这里没有收到任何错误,但我在之后尝试构建它时会这样做:

clBuildProgram(program, 1, &device, " –x spir -spir-std=1.2", NULL, NULL);

我得到的错误是:

调用 clBuildProgram 时出现错误 CL_INVALID_COMPILER_OPTIONS

我也尝试不使用“-x spir ...”的东西,但后来我得到了一个:

错误:无效值(生产者:'LLVM6.0.1' 阅读器:'LLVM 3.9.0svn')

编辑:

CL_DEVICE_NAME:gfx900
CL_DEVICE_VERSION:OpenCL 2.0 AMD-APP (2580.6)
CL_DEVICE_OPENCL_C_VERSION:OpenCL C 2.0
CL_DRIVER_VERSION:2580.6(PAL、HSAIL)
CL_DEVICE_SPIR_VERSIONS:1.2

运行 clCreateProgramWithBinary 后,我使用 clGetProgramBuildInfo 查询设备并获得:
CL_PROGRAM_BINARY_TYPE = [CL_PROGRAM_BINARY_TYPE_INTERMEDIATE]

这应该意味着二进制文件正在被识别,否则我猜它会返回 CL_PROGRAM_BINARY_TYPE_NONE

EDIT2:

我认为 clang 不是在创建一个“好”的二进制文件,但是如何创建它呢?

感谢您的帮助!

【问题讨论】:

  • 您能否检查CL_DEVICE_SPIR_VERSIONS 的设备信息以确保支持SPIR?
  • 是的,我编辑了我的帖子。我有一个 Vega56。谢谢
  • 你试过Khronos clang github.com/KhronosGroup/SPIR 吗?

标签: opencl spir


【解决方案1】:

不幸的是,对 SPIR 的支持已从 AMD 驱动程序中默默删除,请参阅 AMD 社区论坛的此线程中的 dipak 答案:

https://community.amd.com/thread/232093

关于您的第二个问题:通用 clang+LLVM(不是 AMD 调整并包含在其专有驱动程序中的秘密版本)仍然无法生成与通用 Windows AMD 驱动程序兼容的二进制文件,但是对于 Linux 是可能的:all new AMD’s ROCm, AMD PAL and Mesa 3D runtime are covered .

为什么 LLVM AMDGPU 后端开发人员不优先考虑为 Windows 驱动程序生成二进制文件的任务对我来说是个谜,因为有几个 GCN 汇编程序项目通过 Windows OpenCL 接口提供这样的功能,仅举几例: CLRadeonExtenderASM4GCNHepPas 等等。此外,我知道一个 undocumented fork of clang+LLVM(如其作者所述)生成这样的 OpenCL 二进制文件! “霍拉旭,天地间的事情比你的哲学梦想的还要多。”

【讨论】:

    猜你喜欢
    • 2015-09-28
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2021-01-13
    相关资源
    最近更新 更多