Что содержат специальные регистры% envregN?

Я прочитал: CUDA PTX code% envreg ‹32› специальные регистры. Автор сообщения удовлетворился тем, что не пытался рассматривать PTX, происходящий из OpenCL, как обычный CUDA PTX. Но - их вопрос о %envN регистрах не получил должного ответа.

Марк Харрис написал, что

OpenCL поддерживает сетки большего размера, чем поддерживает большинство графических процессоров NVIDIA, поэтому размеры сетки необходимо виртуализировать путем разделения на несколько фактических запусков сетки, поэтому необходимы смещения. Также в OpenCL индексы не обязательно начинаются с (0, 0, 0), пользователь может указать смещения, которые драйвер должен передать ядру. Поэтому регистры, инициализированные для запуска OpenCL и CUDA C, различны.

Итак, составляют ли регистры %envN индекс виртуальной сетки? И что содержит каждый из этих регистров?


person einpoklum    schedule 20.05.2021    source источник


Ответы (1)


Степень достоверности ответа, который может быть дан, - это то, что находится в документация по PTX:

Набор из 32 предопределенных регистров только для чтения, используемых для записи среды выполнения программы PTX за пределами виртуальной машины PTX. Эти регистры инициализируются драйвером перед запуском ядра и могут содержать значения cta или сетки.

Все, что сверх этого, должно быть:

  1. обнаружен с помощью обратного инжиниринга или раскрыт кем-то с авторитетными / неопубликованными знаниями
  2. могут быть изменены (не документированы)
  3. очевидно, находится под контролем драйвера, что означает, что для другого драйвера (например, CUDA или OpenCL) содержимое и / или интерпретация могут отличаться.

Если вы считаете, что документация NVIDIA должна быть улучшена каким-либо образом, я предлагаю сообщить об ошибке.

person Robert Crovella    schedule 20.05.2021
comment
О (2.): Жизнь полна изменений, и CUDA тоже. В следующей версии все может измениться ... так что не проблема. Я говорю о последних версиях CUDA и драйвера NVIDIA. (3.): Почему это должно быть под контролем водителя? Драйвер может иметь какое-то общее сквозное поведение с управлением через libOpenCL. (1.) Что ж, некоторые люди на сайте могут иметь соответствующий опыт изучения этих PTX, а другие являются сотрудниками NVIDIA. - person einpoklum; 20.05.2021
comment
Я мог бы сообщить об ошибке - хотя NVIDIA печально известна своей поддержкой OpenCL с искусственно пронизанной частицами и отверстиями. - person einpoklum; 20.05.2021