gpt4 book ai didi

clang - 使用 LLVM 3.3 后端为 AMD 编译 OpenCL

转载 作者:行者123 更新时间:2023-12-03 05:06:00 30 4
gpt4 key购买 nike

究竟如何使用 LLVM 3.3 中的新 R600 后端来生成适合传递到 AMD 卡上的 OpenCL clCreateProgramWithBinary API 的二进制文件?有没有关于如何执行此操作的代码示例?

我已经看到了如何为 AMD 进行编译的 clang 命令行,但我还没有在任何地方看到如何将输出与驱动程序一起使用。

非常感谢。

最佳答案

您可以阅读llvm/test/CodeGen/R600中的测试用例。

例如:add.ll

;RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s

;CHECK: ADD_INT T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}

;CHECK: ADD_INT * T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}

;CHECK: ADD_INT * T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}

;CHECK: ADD_INT * T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}

define void @test(<4 x i32> addrspace(1)* %out, <4 x i32> addrspace(1)* %in) {

%b_ptr = getelementptr <4 x i32> addrspace(1)* %in, i32 1

%a = load <4 x i32> addrspace(1) * %in

%b = load <4 x i32> addrspace(1) * %b_ptr

%result = add <4 x i32> %a, %b

store <4 x i32> %result, <4 x i32> addrspace(1)* %out

ret void
}

然后您可以直接通过 clCreateProgramWithBinary 使用输出。

关于clang - 使用 LLVM 3.3 后端为 AMD 编译 OpenCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17361717/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com