正如大多数人所知,与GPU相比,CPU没有很好地设计浮点计算。我想知道如何在没有任何抽象层或驱动程序的情况下使用GPU的功能。我可以使用汇编,C,C ++语言为GPU编程(我的意思是如何?)。虽然程序集似乎可以帮助我直接访问gpu,但C / C ++可能需要一个中型库(例如OpenCL)来访问GPU。
让我问你另一个问题:在没有任何第三方驱动程序的情况下,现代GPU的能力将暴露给程序员多少?
答案 0 :(得分:5)
没有记录接口,因此OpenCL之类的东西是直接编程GPU的唯一实用方法。
如果没有驱动程序,您将无法自行反向设计GPU的完整功能。
答案 1 :(得分:0)
答案 2 :(得分:0)
像NVDIA和ATI这样的GPU制造商是闭源公司,它们选择不透露GPU架构并向公众开放工作。这就是我们无法直接对GPU进行编程的原因。我们可以利用GPU的强大功能进行计算的唯一方法是在NVDIA的情况下使用提供的库,如CUDA。但是有一种方法可以直接对GPU进行编程以进行计算,但为此您需要对所有GPU及其寄存器和SYSTEMCALLS进行逆向工程和记录,并且您知道我们无法访问有限的资源和有限的时间。 / p> PS:唯一的另一种方式是作为GPU的核心开发人员登录并与供应商签署NDA(保密协议),对于像我们这样的初学者和个人而言可能不会发生。