Отдельная компиляция NVCC с выводом PTX

Просто чтобы посмотреть, какой код генерирует CUDA, мне нравится компилировать в ptx в дополнение к объектному файлу. Поскольку развертывание некоторых циклов может занять довольно много времени, я хотел бы иметь возможность компилировать *.cu*.ptx*.o вместо того, чтобы тратить время как на *.cu*.ptx, так и на strong>*.cu*.o, что я сейчас и делаю.

Простое добавление -ptx к строке nvcc *.cu дает желаемый результат ptx.

Использование ptxas -c для компиляции *.ptx в *.o работает, но вызывает ошибку в моей исполняемой компоновке: Relocations in generic ELF (EM: 190).

Попытка скомпилировать *.ptx с nvcc терпит неудачу молча, ничего не выводя.

это изображение весьма полезно: < img src="https://i.stack.imgur.com/qfgXw.png" alt="введите здесь описание изображения">

Есть ли какой-то вариант, который мне нужно передать ptxas? Как мне правильно скомпилировать через ptx с отдельной компиляцией? В качестве альтернативы, могу ли я просто сказать nvcc оставить ptx?


person jozxyqk    schedule 21.01.2014    source источник


Ответы (1)


В качестве альтернативы, могу ли я просто попросить nvcc сохранить ptx?

Да, вы можете указать nvcc сохранить все промежуточные файлы, одним из которых будет файл .ptx.

nvcc -keep ...

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

person Robert Crovella    schedule 21.01.2014