Разница между cuda.h, cuda_runtime.h, cuda_runtime_api.h - PullRequest
30 голосов
/ 10 июня 2011

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

1 Ответ

42 голосов
/ 10 июня 2011

В очень широком смысле:

  • cuda.h определяет функции и типы общедоступного хоста для API драйвера CUDA.
  • 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 позаботится о автоматическом включении всех необходимых заголовков без вмешательства программиста.

...