Подтвердить что ты не робот

Разница между cuda.h, cuda_runtime.h, cuda_runtime_api.h

Я начинаю программировать с CUDA, и в некоторых примерах я вижу включенные в него файлы cuda.h, cuda_runtime.h и cuda_runtime_api.h. Может ли кто-нибудь объяснить мне разницу между этими файлами?

4b9b3361

Ответ 1

В очень широких терминах:

  • cuda.h определяет общедоступный хост функций и типов для CUDA API драйвера.
  • cuda_runtime_api.h определяет общественность хост-функции и типы для API времени выполнения CUDA
  • cuda_runtime.h определяет все cuda_runtime_api.h, а также встроенный тип определения и наложения функций для языковых расширений CUDA и встроенные функции устройства.

Если вы пишете код хоста для компиляции с компилятором хоста, который включает вызовы API, вы должны включить либо cuda.h, либо cuda_runtime_api.h. Если вам нужны другие встроенные модули языка CUDA, например типы, и использовали API-интерфейс для выполнения и компилировали с компилятором хоста, вы бы включили cuda_runtime.h. Если вы пишете код, который будет скомпилирован с использованием nvcc, все это не имеет значения, потому что nvcc заботится о включении всех необходимых заголовков автоматически без вмешательства программиста.