добавление функций в программу CUDA - PullRequest
0 голосов
/ 24 августа 2011

Итак, я думаю, у меня очень странный вопрос.

Итак, допустим, что на моем GPU уже установлена ​​программа, и в этой программе я вызываю функцию X. Но эта функция X еще не объявлена.

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

Чтобы сравнить это с чем-то, что большинство из нас знает, я хочу быть в состоянии сделать то же самое, что и шейдеры в OpenGL. В середине выполнения я могу изменить код одного шейдера, перекомпилировать только этот шейдер, активировать программу, и теперь я использовал этот.

Итак, возможно ли это. Или мне нужно все время перекомпилировать? И если мне придется перекомпилировать, я потеряю различные массивы, которые я создал в глобальной памяти?

Спасибо

W

1 Ответ

1 голос
/ 25 августа 2011

Если вы скомпилируете флаг -cuda с помощью nvcc, вы можете получить промежуточный источник C ++, который передает PTX на процессор. Теоретически, вы могли бы постобработать этот промежуточный вывод, чтобы динамически генерировать PTX на лету и отправить его поверх. Возможно, вам даже удастся изменить PTX, но это далеко от моей лиги.

...