小智 3
如果将“\xe2\x80\x93save-temps”添加到创建程序(或任何名称)的调用中,您将看到生成的汇编文件。您可以修改这些内容,然后从此程序集中创建 opencl 程序。
\n\n获取程序集输出的另一种方法是构建支持 amd gpu 的 llvm,然后使用 -S 标志将其编译为程序集。
\n\n我用于 Polaris10(采用 opencl 标准 2.0)的命令行是:
\n\nclang -std=CL2.0 -target amdgcn-amd-amdpal-opencl -mcpu=polaris10 -S -c foo.cl -O3\n
Run Code Online (Sandbox Code Playgroud)\n\n您需要修改 foo.cl 以包含 opencl-ch,方法是添加
\n\n#include <opencl-c.h>\n
Run Code Online (Sandbox Code Playgroud)\n\n到 opencl 源文件的第一行。
\n\n然后,这将在当前目录中生成汇编文件 foo.s。要生成 R9 Fury 的代码,请将 mcpu 更改为 fiji。IE。
\n\n... -mcpu=fiji ...\n
Run Code Online (Sandbox Code Playgroud)\n