Почему API драйвера позволяет нам обрабатывать PTX так же, как fatbin и cubin через "модули"?

Часть API драйвера CUDA - это обработка "модулей": вы можете, например, загрузить модуль из файла; получить функцию (ядра) из этого модуля, а затем просто запустить ядро. См., Например, пример CUDA "matrixMul_nvrtc".

Хотя это кажется вполне разумным для кода, ранее скомпилированного в двоичный объект, я не понимаю, почему это должно быть возможно сделать с теми же вызовами для кода PTX. Он не скомпилирован! Я предполагаю, что в какой-то момент он компилируется молча. Но где? и каково обоснование такой обработки исходного кода PTX, как если бы он уже был скомпилирован?

0 ответов

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