Отдельная компиляция NVCC с выходом PTX
Просто чтобы посмотреть, какой код генерирует CUDA, мне нравится компилировать в ptx в дополнение к объектному файлу. Поскольку некоторые из моих циклов развертывания могут занять довольно много времени, я хотел бы иметь возможность компилировать *.cu
→ *.ptx
→ *.o
вместо того, чтобы тратить время с обоими *.cu
→ *.ptx
а также *.cu
→ *.o
, что я сейчас и делаю.
Просто добавив -ptx
к nvcc *.cu
линия дает желаемый вывод ptx.
С помощью ptxas -c
Скомпилировать *.ptx
в *.o
работает, но вызывает ошибку в моей исполняемой ссылки: Relocations in generic ELF (EM: 190)
,
Попытка скомпилировать *.ptx
с nvcc
молча терпит неудачу, ничего не выводя.
это изображение весьма полезно:
Есть ли какой-то вариант, на который мне нужно перейти ptxas
? Как правильно компилировать через ptx с отдельной компиляцией? Или я могу просто сказать nvcc
сохранить PTX?
1 ответ
В качестве альтернативы, я могу просто сказать nvcc оставить PTX?
Да, вы можете указать nvcc сохранить все промежуточные файлы, один из которых будет .ptx
файл.
nvcc -keep ...
Хранить все промежуточные файлы немного грязно, но я уверен, что вы можете придумать сценарий, чтобы привести в порядок вещи и сохранить только те файлы, которые вы хотите.