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