У меня есть некоторый код C-CUDA, который содержит встроенную сборку PTX , которая компилирует нормально в Linux с бэкэндом g ++.
Мне нужно собрать его под Windows, и, очевидно, бэкэнд MSVC делаетне распознает inline asm должным образом - выдает ошибки типа "не строка asm".Я предполагаю, что это связано с синтаксисом, в котором написана эта сборка PTX, например:
asm volatile ("subc.cc.u32 %0, %0, "q2_s";": "+r"(c[2]));
asm volatile ("subc.cc.u32 %0, %0, "q3_s";": "+r"(c[3]));
Я не очень разбираюсь в сборке, и мне интересно - есть ли какой-то переводчик из стиля GAS (at & t) вСинтаксис Intel?
Или есть какой-то обходной путь для сборки ядер CUDA для PTX в Linux, а затем для сборки PTX и ссылки на оставшийся код в Windows?Я пробовал это, но PTX-компилятор в linux дает функциям ядра некоторые неузнаваемые _Z-начальные имена, а компоновщик не знает, как связать материал.