2011-06-10 4 views

risposta

32

In termini molto generali:

  • cuda.h definisce l'host pubblico funzioni e tipi per il driver CUDA API.
  • cuda_runtime_api.h definisce le comuni funzioni host e tipi per l'API CUDA runtime
  • cuda_runtime.h definisce tutto cuda_runtime_api.h fa, così come built-in caratteri definizioni sovrapposizioni funzionali degli estensioni di linguaggio CUDA e funzioni intrinseche dispositivo.

Se si stesse scrivendo codice host per essere compilato con il compilatore di accoglienza che comprende chiamate API, si dovrebbe includere sia cuda.h o cuda_runtime_api.h. Se avevi bisogno di altri built-in di linguaggio CUDA, come i tipi, e stavi usando l'API di runtime e compilassi con il compilatore host, dovresti includere cuda_runtime.h. Se stai scrivendo un codice che verrà compilato usando nvcc, è irrilevante, perché nvcc si occupa di includere automaticamente tutte le intestazioni richieste senza l'intervento del programmatore.

+0

Cosa! Quindi non è necessario inserire include nei file .cu se si compila con 'nvcc'? –

+2

Non per quei file include particolare, no. – talonmies

+0

Solo curioso (posso aprire una nuova domanda se necessario): solo per quelli? Esattamente quelli? –