0

Как я понимаю, основное преимущество PTX - предоставить вам пару конкретных инструкций. Это также язык программирования промежуточного уровня. Это означает, что компилятор nvidia не выполняет прямой код PTX. Он перекомпилирует коды PTX в сборку с аппаратным обеспечением.Насколько важно планирование инструкций для PTX?

Когда мы рассматриваем эти все термины, Короче говоря, мне интересно, есть ли какие-либо эффекты планирования инструкций PTX? Также, если мы перепланируем код PTX, можем ли мы получить производительность или увидеть какие-либо эффекты?

Заранее спасибо

+2

«никто не может видеть окончательный код сборки» Неверно. Существуют [бинарные утилиты cuda] (http://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#axzz3G9iREsxb), которые позволяют сбрасывать сборку. Инструкции PTX не запланированы. Планы SASS запланированы. PTX - это промежуточный код. Таким образом, неясно, что вы подразумеваете под «инструкцией по планированию для PTX». –

+0

@RobertCrovella спасибо. Я немного изменил текст. Но мой вопрос в том, планируем ли мы текущий код PTX, можно ли получить ускорение или какой-либо эффект? Поскольку у нас нет разрешения на изменение кода сборки cuda, правильно? – grypp

ответ

3

Окончательный арбитр планирования команд является драйвером CUDA, который содержит оптимизирующий компилятор, который транслирует PTX в микрокод для GPU. Если планирование команд является единственным преимуществом, которое вы ожидаете от использования PTX, вы не получите большую отдачу от своих инвестиций. Это может быть даже контрпродуктивным, запутывая эвристику, используемую компилятором в драйвере CUDA.

+1

Было бы полезно пояснить, что компонент PTXAS компилятора, который компилирует PTX в машинный код, может быть вызван как часть автономной компиляции, и в этом случае драйвер CUDA просто загружает сгенерированный двоичный машинный код или как часть онлайн-кода (JIT), и в этом случае компонент PTXAS внутри драйвера выполняет компиляцию из PTX в SASS, как вы описали. – njuffa

+0

Спасибо всем. Я понял ситуацию с PTX для планирования. Но для меня PTX все еще странно. Если я не могу делать много вещей, которые я могу сделать в сборке, почему мне нужно учиться/использовать этот язык для будущего? Лучше ждать постоянно развивающегося компилятора CUDA. Кстати, этот документ недавно опубликован. Планирование работы PTX, http://www.ece.ubc.ca/~aamodt/papers/tgrogers.micro2013.pdf – grypp

Смежные вопросы