今天典型的 GPU 大多是面向 32 位的。虽然它们可以执行双精度,但 ALU 基本上采用 32 位整数,线程索引和网格大小为 32 位,并且(我假设)伪指针也对应于 32 位无符号物理地址。
但是,某些 GPU(Teslas、GTX Titans)配备 6GB、8GB、12GB 内存。
那么,它是如何工作的?我的意思是,你能同时处理超过 4GB 的数据吗?如果是这样,怎么做?如果 i 是 unsigned long int 类型,你能做 a[i] = 123 吗?还是像过去 8086 那样的段偏移?或者也许每个内核单独只能寻址 4GB,但不同的内核可以寻址更多?