CUDA指针属性CU_POINTER_ATTRIBUTE系列对应的传入指针类型是什么?
cuGetPointerAttribute 相关属性的输出类型说明
调用cuGetPointerAttribute()时传入的输出指针类型可以直接参考CUDA官方头文件cuda.h的定义,这是比文档更准确的权威依据,你问的两个属性以及布尔类属性的类型明确如下:
CU_POINTER_ATTRIBUTE_BUFFER_ID:对应的输出类型为unsigned long long,需传入该类型的指针取值。它是驱动为每个设备内存分配生成的64位全局唯一数值ID,不存在溢出问题。CU_POINTER_ATTRIBUTE_ALLOWED_HANDLE_TYPES:对应的输出类型为unsigned int,位宽为32位,足够覆盖当前所有已定义的句柄类型位掩码枚举值。
另外你提到的布尔类型属性,统一传入int*类型指针即可,CUDA驱动API遵循C语言原生惯例用int存储布尔值,0表示假、非0表示真,不要传入C++的bool*类型指针,避免不同编译器对bool位宽定义不一致导致的内存访问错误。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

