Какова цель директивы ".file" в файле PTX CUDA? - PullRequest
1 голос
/ 25 ноября 2011

Насколько я понимаю, PTX-файл CUDA представляет собой виртуальный байт-код, который JIT компилируется во время выполнения устройства.Это означает, что файл является кроссплатформенным, вы можете сгенерировать файл PTX, и он будет работать на любом CUDA-совместимом устройстве.Однако, когда я читаю файл в текстовом редакторе, я вижу эти директивы «.file», которые содержат информацию о файлах на исходном компьютере, для которого я скомпилировал его.Поэтому я не уверен, какова цель этих директив.Кроме того, учитывая, что мои сгенерированные файлы PTX не должны зависеть от этих файлов, можно ли их безопасно удалить?(Например, если бы я хотел начать писать свой собственный генератор PTX).

1 Ответ

6 голосов
/ 27 ноября 2011

Если вы проверите тело своих функций, вы, скорее всего, найдете инструкции вида

.loc fileNum fileLine

Это указывает на то, что следующий код был сгенерирован из строки fileLineиз файла fileNum.fileNum - это целое число индекса, обозначающее файл, предварительно объявленный запрашиваемой директивой .file.

Это может помочь вам соотнести исходный код с полученным выходным сигналом PTX.

Во время JITPTX компиляции преобразуется в машинный код собственного графического процессора.Там эти .loc и .file вообще не появляются.Это никак не влияет на окончательный машинный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...