【发布时间】:2021-08-09 17:21:42
【问题描述】:
我读过:CUDA PTX code %envreg<32> special registers。那里的发帖人对不尝试将源自 OpenCL 的 PTX 视为常规 CUDA PTX 感到满意。但是 - 他们关于 %envN 寄存器的问题没有得到正确回答。
马克哈里斯写道
OpenCL 支持的网格比大多数 NVIDIA GPU 支持的更大,因此需要通过划分多个实际网格启动来虚拟化网格大小,因此需要偏移。同样在 OpenCL 中,索引不一定从 (0, 0, 0) 开始,用户可以指定驱动程序必须传递给内核的偏移量。因此为 OpenCL 和 CUDA C 启动初始化的寄存器是不同的。
那么,%envN 寄存器是否构成“虚拟网格索引”?这些寄存器中的每一个都包含什么?
【问题讨论】: