53

显卡有自己的指令集吗?我认为他们会这样做,但我一直想知道它们是否是专有的,或者是否有某种开放标准。

每个 GPU 指令之前是否都有一条 CPU 指令,还是无缝的?

也就是说,OpenGL 或 DirectX 是通过 CPU 调用驱动程序层,然后将 GPU 指令发送到总线上还是更复杂?

4

6 回答 6

45

是的,他们这样做。AMD 目前甚至提供了高达 HD4000 系列的规格。

在此处查看AMD 的 R700 指令集参考指南。

还有一个名为Nouveau的开源项目,它对 Nvidia 指令集进行逆向工程。

请注意,Nvidia 的架构与 AMD 略有不同,因为它们不使用VLIW,而是使用标量执行(尽管多个线程另外分组在所谓的 Warp 或 Wavefront 中)。

此外,并非每个 OpenGL/Direct3D 调用都映射到“GPU 指令”。例如,当绑定纹理时,驱动程序只会设置适当的硬件寄存器,告诉 GPU 使用哪个纹理内存进行采样。

真正的程序只有在 GPU 上执行着色器或流处理内核时才会运行。

于 2009-11-08T20:46:45.703 回答
8

是的,GPU 有自己的专有指令集。GPU 指令独立于 CPU 指令执行。

于 2009-11-08T20:38:42.943 回答
6

目前,NVIDIA 显卡使用某种称为 PTX 的中间 ISA。您可以在本文档中了解它:

PTX ISA 1.1

PTX 程序在安装时被翻译成目标硬件指令集。

于 2009-11-09T16:39:45.273 回答
5

对于 nvidia 卡,您可能需要查看此文档http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref

于 2015-04-22T19:42:53.937 回答
5

AMD 图形核心下一代 (GCN)

https://en.wikipedia.org/wiki/Graphics_Core_Next

第一代被称为“南岛”。

wiki 页面链接到记录 ISA 的 AMD 规范,例如:http: //developer.amd.com/wordpress/media/2012/12/AMD_Southern_Islands_Instruction_Set_Architecture.pdf

甚至还有一个名为 MIAOW https://github.com/VerticalResearchGroup/miaow的开放式 RTL 实现,尽管它可能侵犯了 AMD 暂时选择容忍的一些 IP(来源)。

SPIR-V

https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation是 Krhonos 标准中间语言。

它的设计可能与现有的 GPU ISA 相似,因此它的可实施性和采用率更高,因此它应该能够很好地了解实际的 GPU ISA。

如果这个标准真的流行起来,因为它似乎是由于 Vulkan 和 OpenCL 2.1 的采用,未来的实现很可能被设计为紧密地实现以具有更好的性能。

如何获取和修改 PTX

如何创建或操作 GPU 汇编器?

有关的

https://computergraphics.stackexchange.com/questions/7809/what-does-gpu-assembly-look-like

于 2016-09-28T18:55:04.913 回答
2

请参阅:CUDA 编程指南 3.0 版

设备的计算能力由主要修订号和次要修订号定义。

具有相同主版本号的设备具有相同的核心架构。基于 Fermi 架构的设备的主版本号是 2。之前的设备都是计算能力 1.x(它们的主版本号是 1)。

次要修订号对应于对核心架构的增量改进,可能包括新功能。

附录 A 列出了所有支持 CUDA 的设备及其计算能力。附录 G 给出了每种计算能力的技术规格。

于 2010-04-28T07:18:39.063 回答