Как устройства CUDA обрабатывают непосредственные операнды? - PullRequest
0 голосов
/ 20 апреля 2010

Компиляция кода CUDA с непосредственными (целочисленными) операндами, хранятся ли они в потоке команд или помещаются в память?В частности, я думаю о 24- или 32-битных целочисленных операндах без знака.

Я не смог найти информацию об этом ни в одной из документов CUDA, которые я до сих пор изучал.Так что ссылки на любые документы по конкретным деталям uarch были бы идеальными, поскольку в настоящее время у меня нет хорошей модели того, как CUDA работает на этом уровне.

Ответы [ 2 ]

3 голосов
/ 22 апреля 2010

NVIDIA не предоставляет никакой информации о том, как устройства работают на этом уровне. Существует инструмент под названием decuda, который может декомпилировать кубины, чтобы вы могли видеть машинный код. Насколько я помню, немедленные переходят в поток инструкций, по крайней мере, насколько способен выводить декуда. Проблема с decuda заключается в том, что он работает только для CUDA 2.3 или ниже. Они изменили формат исполняемого файла на elf в CUDA 3.0, и decuda не поддерживалась долгое время.

Лучшей официальной документацией является документация PTX , но она документирует виртуальную машину, а не реальное устройство.

0 голосов
/ 14 мая 2010

Если я правильно помню, целочисленное деление (например) очень дорого, тогда как некоторые операции с плавающей запятой (например, sinf (..)) полностью реализованы в аппаратном обеспечении и, следовательно, быстро.

Этот доклад дал мне немногопонимание: "Трюки CUDA для вычислительной физики" http://physics.bu.edu/~kbarros/talks/

...