如果我有有效的GCN着色器二进制文件,我可以通过什么过程来使我的兼容AMD GPU运行呢?

时间:2016-07-13 18:33:29

标签: c# directx amd-gpu

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

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

第二个问题;假设我有一个directX二进制文件,我在AMD GPU上作为计算着色器成功运行...有哪些方法可以获得编译directX二进制文件的GCN二进制文件?

1 个答案:

答案 0 :(得分: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手册查找位模式。 希望这会有所帮助。