图形卡有自己的指令集吗? 我认为它们有,但我一直在想它们是专有的还是存在某种开放标准。
每个GPU指令是否都需要由CPU指令前置,还是无缝的? 也就是说,OpenGL或DirectX是否通过CPU调用驱动程序层,然后将GPU指令发送到总线上,还是更加复杂?
图形卡有自己的指令集吗? 我认为它们有,但我一直在想它们是专有的还是存在某种开放标准。
每个GPU指令是否都需要由CPU指令前置,还是无缝的? 也就是说,OpenGL或DirectX是否通过CPU调用驱动程序层,然后将GPU指令发送到总线上,还是更加复杂?
是的,GPU有自己专有的指令集。GPU指令独立于CPU指令执行。
AMD Graphics Core Next (GCN)
https://en.wikipedia.org/wiki/Graphics_Core_Next
第一代被称为“南岛”。维基页面链接到 AMD 规格,其中记录了 ISA,例如:http://developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf。
甚至有一个名为 MIAOW 的开放 RTL 实现,https://github.com/VerticalResearchGroup/miaow,尽管它可能侵犯了 AMD 选择保持沉默的一些知识产权(来源)。
AMD CDNA
根据维基百科:https://en.wikipedia.org/wiki/AMD_Instinct ,新的 AMD 计算重点 GPU 产品(如 Instinct 系列)似乎使用 CDNA 架构,例如:
SPIR-V
https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation 是 Krhonos 标准的中间语言。
它很可能被设计成类似于现有的 GPU ISA,以便更易于实现并具有更好的采用率,因此它应该能够很好地反映实际的 GPU ISA。
如果这个标准确实受到欢迎,就像在 Vulkan 和 OpenCL 2.1 中采用的那样,未来的实现可能会被设计为密切实现以获得更好的性能。
如何获取和修改 PTX
相关
https://computergraphics.stackexchange.com/questions/7809/what-does-gpu-assembly-look-like