CUDA编译器有生成32位或64位PTX的选项。这两者之间有什么区别?它是否像x86一样,NVidia GPU实际上有32位和64位ISA?还是只与主机代码相关?
指针显然是最明显的区别。 64位机器模型使64位指针成为可能。 64位指针可以实现许多功能,例如比4GB更大的地址空间和统一虚拟寻址。 而统一虚拟寻址则可以实现其他功能,例如GPUDirect点对点通信。 CUDA IPC API也依赖于64位机器模型。
x64 ISA与x86 ISA不完全不同,它主要是对其的扩展。熟悉x86 ISA的人会发现x64 ISA很熟悉,在必要时自然地进行了64位扩展。同样,64位机器模型是PTX ISA能力向64位的扩展。大多数PTX指令的工作方式完全相同。