CUDA编译器可以选择生成32位或64位PTX。这些有什么区别?对于x86来说,NVidia GPU实际上有32位和64位ISA吗?或者它仅与主机代码相关?
答案 0 :(得分:7)
指针肯定是the most obvious difference。 64位机器模型启用64位指针。 64位指针可以实现各种功能,例如大于4GB的地址空间和unified virtual addressing。统一虚拟寻址反过来启用其他功能,例如GPUDirect Peer-to-Peer。 CUDA IPC API也取决于64位机器模型。
x64 ISA与
32位机器模型可以处理64位数据类型(例如double
和long long
),因此通常不需要对正确编写的CUDA C / C ++源代码进行任何更改编译32位机器模型或64位机器模型。如果您直接在PTX中编程you may have to account for the pointer size differences,至少。