Nvidia CUDA Compiler ( NVCC ) es un compilador de Nvidia diseñado para usarse con CUDA . Es un software propietario .
El código CUDA se ejecuta tanto en la unidad central de procesamiento (CPU) como en la unidad de procesamiento gráfico (GPU). NVCC separa estas dos partes y envía el código del host (la parte del código que se ejecutará en la CPU ) a un compilador de C como GNU Compiler Collection (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. El código del dispositivo es compilado por NVCC. 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 algunas de C99 . En la versión 9.0, se agregan 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 de compilador que funciona invocando todas las herramientas y compiladores necesarios, como cudacc, g++, cl, etc. NVCC puede generar código C (código de CPU) que luego debe compilarse con el resto de la aplicación mediante otra herramienta o ejecución de subprocesos paralelos (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: