1

FWIW,这是假设的,因为我实际上还没有要运行的特定 GCN 计算着色器二进制文件。我正在研究与此相关的事情,但我意识到我的脑海中有很多模糊和不确定的想法,所以我将回到基础并尝试纠正我可能有的任何误解。

因此,假设我确实有这样一个二进制文件,我希望我的 GPU 运行(假设我想在 C# 中执行此操作),我需要执行哪些步骤/在 github 中是否有特别有启发性/相关的示例?

第二个问题;假设我有一个 DirectX 二进制文件,我成功地在我的 AMD GPU 上作为计算着色器运行......有没有什么方法可以让我得到 DirectX 二进制文件被编译成的 GCN 二进制文件?

4

1 回答 1

0

晚了五个月,但也许这可能会有所帮助。这个项目做你想做的,在 C# 中:https ://www.codeproject.com/Articles/872477/Assembler-for-AMD-s-GCN-GPU

这个项目所做的是它需要一个空内核,然后交换备用二进制字节,然后运行它。这个项目...

1) 获取 GCN 程序集,然后将其转换为字节数组(您不需要这部分)

2)获取该字节数组,然后将其修补

3) 运行二进制文件

您可能会修改项目,因为您不需要 GPU asm 部分。

关于将 AMD GPU 的 DirectX 二进制文件转换为应该可能的原始 GCN 源的第二个问题。您只需要弄清楚 GCN 代码的实际开始位置在哪里。我认为您可以像上面的项目一样寻找一种模式。找到开始后,您需要找到一个反汇编程序将其转换为可查看的程序集......或者您可以以痛苦的方式进行操作并使用 AMD GCN ISA 手册查找位模式。希望这可以帮助。

于 2016-12-18T22:53:27.643 回答