C 什么';gpu上的大小是多少?

C 什么';gpu上的大小是多少?,c,sizeof,C,Sizeof,我的理解是,size_t是一种足以表示(或寻址)给定体系结构中任何内存位置的类型。 例如,在32位计算机上,大小\u t应至少能够表示2^32个值。这意味着在32位体系结构中sizeof(size_t)必须大于等于4,对吗 那么要运行gpu的代码的大小应该是多少呢? 由于许多GPU的容量超过4gb,sizeof(size_t)必须至少为5。但是为了对齐,我想它是8。粗略地说,size\u t应该能够表示任何单个分配对象的大小。但这可能比总地址空间小 例如,在16位MS-DOS程序中,一个内存模型

我的理解是,size_t是一种足以表示(或寻址)给定体系结构中任何内存位置的类型。 例如,在32位计算机上,大小\u t应至少能够表示2^32个值。这意味着在32位体系结构中sizeof(size_t)必须大于等于4,对吗

那么要运行gpu的代码的大小应该是多少呢?


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

粗略地说,
size\u t
应该能够表示任何单个分配对象的大小。但这可能比总地址空间小

例如,在16位MS-DOS程序中,一个内存模型具有16位
大小\u t
,即使有许多兆字节的内存可用,指针也是32位的。但您无法分配任何大于64K的特定内存块

由编译器编写者决定GPU的大小,使
size\t
的大小足以在该GPU上进行最大可能的分配。正如您所说,这可能是2的幂(但不能保证)

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