Я прочитал: CUDA PTX code% envreg ‹32› специальные регистры. Автор сообщения удовлетворился тем, что не пытался рассматривать PTX, происходящий из OpenCL, как обычный CUDA PTX. Но - их вопрос о %envN
регистрах не получил должного ответа.
Марк Харрис написал, что
OpenCL поддерживает сетки большего размера, чем поддерживает большинство графических процессоров NVIDIA, поэтому размеры сетки необходимо виртуализировать путем разделения на несколько фактических запусков сетки, поэтому необходимы смещения. Также в OpenCL индексы не обязательно начинаются с (0, 0, 0), пользователь может указать смещения, которые драйвер должен передать ядру. Поэтому регистры, инициализированные для запуска OpenCL и CUDA C, различны.
Итак, составляют ли регистры %envN
индекс виртуальной сетки? И что содержит каждый из этих регистров?