Nvidia CUDA Compiler ( NVCC ) es un compilador propietario de Nvidia diseñado para usarse con CUDA . El código CUDA se ejecuta tanto en la CPU como en la GPU . NVCC separa estas dos partes y envía el código de host (la parte del código que se ejecutará en la CPU ) a un compilador de C como GCC o Intel C++ Compiler (ICC) o Microsoft Visual C++ Compiler, y envía el código del dispositivo (la parte que se ejecutará en la GPU) a la GPU. NVCC compila aún más el código del dispositivo. NVCC se basa en LLVM . [1] Según la documentación proporcionada por Nvidia, nvcc en la versión 7.0 admite muchas construcciones de lenguaje definidas por el estándar C++ 11 y también algunas características de C99 . En la versión 9.0 se admiten varias construcciones más del estándar C++14 . [2]
Cualquier archivo fuente que contenga extensiones de lenguaje CUDA (.cu) debe compilarse con nvcc. NVCC es un controlador compilador que funciona invocando todas las herramientas y compiladores necesarios como cudacc, g++, cl, etc. NVCC puede generar código C (Código CPU) que luego debe compilarse con el resto de la aplicación utilizando otra herramienta o PTX. o código objeto directamente. Un ejecutable con código CUDA requiere: la biblioteca principal de CUDA (cuda) y la biblioteca de tiempo de ejecución de CUDA (cudart).
Otras bibliotecas ampliamente utilizadas: