【问题标题】:What's the sizeof of size_t on gpu?gpu 上 size_t 的 sizeof 是多少?
【发布时间】:2017-08-30 11:31:06
【问题描述】:

我的理解是 size_t 是一种足够大的类型,可以表示(或寻址)给定架构中的任何内存位置。 例如,在 32 位机器上 size_t 应该能够表示至少 2^32 个值。这意味着 sizeof(size_t) 在 32 位架构中必须 >= 4,对吧?

那么运行 gpu 的代码的 sizeof(size_t) 应该是多少?

由于许多 gpus 超过 4gb,sizeof(size_t) 必须至少为 5。但我想它是 8,用于对齐目的。

【问题讨论】:

    标签: c sizeof


    【解决方案1】:

    粗略地说,size_t 应该能够表示任何单个分配对象的大小。不过,这可能小于总地址空间。

    例如,在 16 位 MS-DOS 程序中,一个内存模型具有 16 位 size_t,即使有很多兆字节的内存可用,并且指针是 32 位的。但是您不能分配任何大于 64K 的特定内存块。

    GPU 的编译器编写者可以让size_t 具有足够大的大小以在该 GPU 上进行尽可能大的分配。正如您所说,这可能是 2 的幂(但不能保证)。

    用于表示任何内存位置的类型是void *

    【讨论】:

      猜你喜欢
      • 2013-09-19
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2018-09-25
      相关资源
      最近更新 更多