Компилятор NVIDIA CUDA
Разработчик(и) | Нвидиа |
---|---|
Первоначальный выпуск | июнь 2007 г |
Стабильная версия | 12.6.0
/ август 2024 г |
Доступно в | Английский |
Тип | Компилятор |
Лицензия | Собственный |
Веб-сайт | документы |
Nvidia CUDA Compiler ( NVCC ) — компилятор компании Nvidia, предназначенный для использования с CUDA . Это фирменное программное обеспечение .
Компилятор
[ редактировать ]Код CUDA выполняется как на центральном процессоре (ЦП), так и на графическом процессоре (ГП). NVCC разделяет эти две части и отправляет хост-код (часть кода, которая будет выполняться на ЦП ) компилятору C , такому как GNU Compiler Collection (GCC), Intel C++ Compiler (ICC) или Microsoft Visual C++ Compiler, и отправляет устройство код (часть, которая будет выполняться на графическом процессоре) на графический процессор. Код устройства дополнительно компилируется NVCC. NVCC основан на LLVM . [1] Согласно документации, предоставленной Nvidia, nvcc в версии 7.0 поддерживает множество языковых конструкций, определенных стандартом C++11 , а также некоторые из C99 . еще несколько конструкций из стандарта C++14 . В версии 9.0 добавлено [2]
Любой исходный файл, содержащий расширения языка CUDA (.cu), должен быть скомпилирован с помощью nvcc. NVCC — это драйвер компилятора, который работает, вызывая все необходимые инструменты и компиляторы, такие как cudacc, g++, cl и т. д. NVCC может выводить либо код C (код ЦП), который затем необходимо скомпилировать с остальной частью приложения, используя другой инструмент, либо Parallel. Выполнение потока (PTX) или непосредственно объектный код. Для исполняемого файла с кодом CUDA требуются: основная библиотека CUDA (cuda) и библиотека времени выполнения CUDA (cudart).
Другие широко используемые библиотеки:
- CUBLAS: реализация BLAS
- CFFFT: реализация БПФ
- CUDPP (примитивы параллельных данных): сокращение, сканирование, сортировка.
- Упор: уменьшение, сканирование, сортировка.
См. также
[ редактировать ]- OpenCL
- Гетерогенная системная архитектура
- Бинарный файл CUDA (кубин) – разновидность жирного бинарного файла.
Ссылки
[ редактировать ]- ^ «CUDA LLVM-компилятор» . Разработчик Нвидиа . Проверено 6 апреля 2016 г.
- ^ «Руководство по программированию CUDA C++» . Центр документации NVIDIA . Проверено 28 июня 2019 г.
Общий
[ редактировать ]- Дэвид Б. Кирк и Вэньмэй В. Хву. Программирование процессоров с массовым параллелизмом: практический подход. Морган Кауфманн, 2010.
- «Драйвер компилятора Nvidia CUDA NVCC» . Центр документации NVIDIA . Архивировано из оригинала 13 октября 2023 года.
- «КУДПП» . ГПГПУ . Архивировано из оригинала 17 ноября 2018 года.