Saltar al contenido

Diferencia entre cuda.h, cuda_runtime.h, cuda_runtime_api.h

Hacemos una verificación profunda cada secciones de nuestra página web con el objetivo de mostrarte en todo momento información con la mayor veracidad y actual.

Solución:

En términos muy amplios:

  • cuda.h define las funciones y los tipos de host público para CUDA
    conductor API.
  • cuda_runtime_api.h define las funciones y los tipos de host público para CUDA tiempo de ejecución API
  • cuda_runtime.h define todo cuda_runtime_api.h hace, así como definiciones de tipo incorporadas y superposiciones de funciones para las extensiones de lenguaje CUDA y funciones intrínsecas del dispositivo.

Si estuviera escribiendo código de host para compilarlo con el compilador de host que incluye llamadas API, incluiría cuda.h o cuda_runtime_api.h. Si necesitara otras funciones integradas del lenguaje CUDA, como tipos, y estuviera usando la API de tiempo de ejecución y compilando con el compilador host, incluiría cuda_runtime.h. Si está escribiendo código que se compilará usando nvcc, todo es irrelevante, porque nvcc se encarga de incluir automáticamente todos los encabezados requeridos sin la intervención del programador.

Algunas observaciones además de la respuesta de @talonmies:

  • cuda_runtime.h incluye cuda_runtime_api.h internamente, pero no al revés. Entonces: “el tiempo de ejecución incluye todo runtime_api” es un mnemotécnico para recordar.
  • cuda_runtime_api.h no tiene todas las funciones API de tiempo de ejecución que encontrará en la documentación oficial, mientras que cuda_runtime.hvoluntad tenerlo todo (ejemplo: cudaEventCreate()). Sin embargo, todas las llamadas API definidas cuda_runtime.h en realidad se implementan, en el propio archivo de encabezado, utilizando llamadas a funciones en cuda_runtime_api.h. Estas son las “superposiciones de funciones” que mencionó @talonmies.
  • cuda_runtime_api.h es un encabezado en lenguaje C (IIANM) con solo declaraciones de funciones en lenguaje C; cuda_runtime.h es un archivo de encabezado de C++, con algunas funciones de plantilla implementadas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *