Компилятор NVIDIA CUDA - Википедия - NVIDIA CUDA Compiler

Компилятор NVIDIA CUDA
Оригинальный автор (ы)Nvidia
Типкомпилятор
Лицензияпроприетарное программное обеспечение
Интернет сайтдокументы.nvidia.com/ cuda/ cuda-компилятор-драйвер-nvcc/#вступление

Компилятор Nvidia CUDA (NVCC) это проприетарный компилятор к Nvidia предназначен для использования с CUDA. Код CUDA работает как на ЦПУ и GPU. NVCC разделяет эти две части и отправляет код хоста (часть кода, которая будет запущена на ЦПУ ) к C компилятор как GCC или же Компилятор Intel C ++ (ICC) или Microsoft Visual C Компилятор и отправляет код устройства (часть, которая будет работать на графическом процессоре) на графический процессор. Код устройства дополнительно компилируется NVCC. NVCC основан на LLVM.[1] Согласно предоставленной Nvidia документации, nvcc в версии 7.0 поддерживает множество языковых конструкций, которые определены C ++ 11 стандарт и несколько C99 особенности тоже. В версии 9.0 еще несколько конструкций из C ++ 14 стандартные поддерживаются.[2]

Любой исходный файл, содержащий расширения языка CUDA (.cu), должен быть скомпилирован с помощью nvcc. NVCC - это драйвер компилятора, который работает, вызывая все необходимые инструменты и компиляторы, такие как cudacc, g ++, cl и т. Д. NVCC может выводить либо код C (код процессора), который затем должен быть скомпилирован с остальной частью приложения с помощью другого инструмента, либо PTX или объектный код напрямую. Для исполняемого файла с кодом CUDA требуются: основная библиотека CUDA (cuda) и библиотека времени выполнения CUDA (cudart).

Другие широко используемые библиотеки:

  • CUBLAS: реализация BLAS
  • CUFFT: реализация БПФ
  • CUDPP (параллельные примитивы данных): сокращение, сканирование, сортировка.
  • Тяга: уменьшение, сканирование, сортировка.

Смотрите также

Рекомендации

  1. ^ "Компилятор CUDA LLVM". Корпорация NVIDIA. 7 мая 2012. Получено 6 апреля, 2016.
  2. ^ "Руководство по программированию CUDA C". docs.nvidia.com. Получено 2019-06-28.
  1. Дэвид Б. Кирк и Вэньмэй В. Хву. Программирование процессоров с массовым параллелизмом: практический подход. Морган Кауфманн, 2010.
  2. Документация Nvidia по nvcc. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/
  3. CUDPP. https://web.archive.org/web/20181117222643/http://gpgpu.org/developer/cudpp