Articulo de referencia

Compilador Nvidia CUDA

El compilador Nvidia CUDA ( NVCC ) es un compilador de Nvidia diseñado para usarse con CUDA . Es un software propietario . Compilador El código CUDA se ejecuta tanto en la unida...

El compilador Nvidia CUDA ( NVCC ) es un compilador de Nvidia diseñado para usarse con CUDA . Es un software propietario .

Compilador

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), Intel C++ Compiler (ICC) o Microsoft Visual C++ Compiler (MVCC), y envía el código del dispositivo llamado "kernels" (la parte que se ejecutará en la GPU) a la GPU. El código del dispositivo es compilado posteriormente 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 añaden 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 CPU), que luego debe compilarse con el resto de la aplicación mediante otra herramienta, o bien, código PTX ( ejecución de subprocesos paralelos ) 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:

  • CUBLAS: Implementación de BLAS
  • CUFFT: Implementación de la FFT
  • CUDPP (Primitivas de Paralelismo de Datos): Reducción, Escaneo, Ordenación.
  • Empuje: Reducción, escaneo, clasificación.

Véase también

Referencias

  1. "Compilador CUDA LLVM" . Desarrollador de Nvidia . Consultado el 6 de abril de 2016 .
  2. "Guía de programación CUDA C++" . Centro de documentación de NVIDIA . Consultado el 28 de junio de 2019 .

General

  1. David B. Kirk y Wen-mei W. Hwu. Programación de procesadores masivamente paralelos: un enfoque práctico. Morgan Kaufmann, 2010.
  2. "Controlador del compilador Nvidia CUDA NVCC" . Centro de documentación de Nvidia . Archivado del original el 13 de octubre de 2023.
  3. "CUDPP" . GPGPU . Archivado del original el 17 de noviembre de 2018.
  • Sitio web oficial