CUDA / PTX 32位与64位

时间:2013-12-17 02:05:41

标签: cuda nvcc ptx

CUDA编译器可以选择生成32位或64位PTX。这些有什么区别?对于x86来说,NVidia GPU实际上有32位和64位ISA吗?或者它仅与主机代码相关?

1 个答案:

答案 0 :(得分:7)

指针肯定是the most obvious difference。 64位机器模型启用64位指针。 64位指针可以实现各种功能,例如大于4GB的地址空间和unified virtual addressing。统一虚拟寻址反过来启用其他功能,例如GPUDirect Peer-to-PeerCUDA IPC API也取决于64位机器模型。

x64 ISA与 ISA 完全不同,它主要是它的扩展。那些熟悉x86 ISA的人会发现x64 ISA很熟悉,在需要时可以自然扩展64位。同样,64位机器模型是PTX ISA功能扩展到64位。大多数PTX指令的工作方式完全相同。

32位机器模型可以处理64位数据类型(例如doublelong long),因此通常不需要对正确编写的CUDA C / C ++源代码进行任何更改编译32位机器模型或64位机器模型。如果您直接在PTX中编程you may have to account for the pointer size differences,至少。