1

今天典型的 GPU 大多是面向 32 位的。虽然它们可以执行双精度,但 ALU 基本上采用 32 位整数,线程索引和网格大小为 32 位,并且(我假设)伪指针也对应于 32 位无符号物理地址。

但是,某些 GPU(Teslas、GTX Titans)配备 6GB、8GB、12GB 内存。

那么,它是如何工作的?我的意思是,你能同时处理超过 4GB 的数据吗?如果是这样,怎么做?如果 i 是 unsigned long int 类型,你能做 a[i] = 123 吗?还是像过去 8086 那样的段偏移?或者也许每个内核单独只能寻址 4GB,但不同的内核可以寻址更多?

4

1 回答 1

2

好吧,事实证明 GPU 指针(至少在 NVIDIA GPU 中,也可能在 AMD 中)是 64 位的。因此,寻址 4GB、40 GB、400 GB 或 400 万 GB 没有问题。只有 32 位平台才可能有对 32 位指针的传统支持。

于 2015-03-20T22:25:46.690 回答