Sto iniziando a programmare con CUDA, e in alcuni esempi trovo i file di inclusione cuda.h
, cuda_runtime.h
e cuda_runtime_api.h
inclusi nel codice. Qualcuno può spiegarmi la differenza tra questi file?Differenza tra cuda.h, cuda_runtime.h, cuda_runtime_api.h
24
A
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 runtimecuda_runtime.h
definisce tuttocuda_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.
Cosa! Quindi non è necessario inserire include nei file .cu se si compila con 'nvcc'? –
Non per quei file include particolare, no. – talonmies
Solo curioso (posso aprire una nuova domanda se necessario): solo per quelli? Esattamente quelli? –