Отдельная компиляция 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 ...

Хранить все промежуточные файлы немного грязно, но я уверен, что вы можете придумать сценарий, чтобы привести в порядок вещи и сохранить только те файлы, которые вы хотите.

Другие вопросы по тегам