繁体   English   中英

为什么AMD GCN使用非零NULL?

[英]Why AMD GCN uses non-zero NULL?

这个提交说:

amdgcn目标中,全局,常量和通用地址空间中的空指针取值为0,而私有和本地地址空间中的空指针取值为-1。

他们如何使用这两个不同的NULL值?

至于为什么 :我不知道这一点,但是本地/专用地址空间指针几乎可以肯定只是作为平面物理寄存器文件/内存区域中的偏移量/索引来实现的。 没有像虚拟内存那样的地址重映射,只有一个大数组。 您仍然希望能够访问数组索引0,因此“无效指针”(无效索引)需要是其他名称。

别忘了,NULL =不可引用的指针= 0也是常规C中的约定 -一些非OpenCL系统在地址0处也具有有效内存。标准中关于内存集的复杂性等等,因此您如果您对确切的规范感兴趣,最好自己阅读文档。

我不确定您到底在问“ 如何 ”的问题-您无法明智地在不同OpenCL地址空间中的指针之间进行转换,因此那里没有冲突。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM