FindCUDAToolkit
Добавлено в версии 3.17.
Находит инструментарий NVIDIA CUDA и связанные с ним библиотеки, но не требует включения языка CUDA для проекта:
find_package(CUDAToolkit [<version>] [QUIET] [REQUIRED] [EXACT] [...])
Этот модуль не выполняет поиск примеров NVIDIA CUDA Samples.
Добавлено в версии 3.19: поддержка QNX.
Поведение поиска
При поиске CUDA Toolkit используется следующий порядок:
- Если включен язык
CUDA, каталог, содержащий компилятор, будет использоваться как первое место поиска дляnvcc. - Если определена переменная
CMAKE_CUDA_COMPILERили переменная средыCUDACXX, она будет использоваться как путь к исполняемому файлуnvcc. -
Если задана переменная конфигурации cmake
CUDAToolkit_ROOT(например,-DCUDAToolkit_ROOT=/some/path) или переменная среды, будет выполнен поиск по ней. Если заданы и переменная среды, и переменная конфигурации, приоритет имеет переменная конфигурации.Указанный здесь каталог должен быть таким, чтобы исполняемый файл
nvccили соответствующий файлversion.txtлибоversion.jsonнаходился внутри указанного каталога. - Если задана переменная среды CUDA_PATH, в ней будет выполнен поиск
nvcc. - В пути пользователя выполняется поиск
nvccс помощьюfind_program(). Если элемент найден, последующие попытки поиска не выполняются. Если установлено несколько CUDA Toolkit, пользователи должны убедиться, что первым в пути указан нужныйnvcc. - В системах Unix используется символическая ссылка
/usr/local/cuda, если она существует. Последующие попытки поиска не выполняются. Для платформы Windows расположение символической ссылки по умолчанию не предусмотрено. -
Выполняется поиск в расположениях установки по умолчанию, зависящих от платформы. Если найден ровно один подходящий вариант, используется он. Поиск выполняется в следующих расположениях установки CUDA Toolkit по умолчанию:
Платформа
Шаблон поиска
macOS
/Developer/NVIDIA/CUDA-X.YДругие системы Unix
/usr/local/cuda-X.YWindows
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.YЗдесь
X.Y— конкретная версия CUDA Toolkit, например/usr/local/cuda-9.0илиC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0Примечание
Если в расположении по умолчанию в системе установлено несколько CUDA Toolkit (например, существуют и
/usr/local/cuda-9.0, и/usr/local/cuda-10.0, но символическая ссылка/usr/local/cudaне существует), пакет помечается как не найденный.При наличии нескольких установленных CUDA Toolkit автоматический выбор осложняется слишком большим числом факторов. В такой ситуации рекомендуется либо (1) задать
CUDAToolkit_ROOT, либо (2) убедиться, что нужный исполняемый файлnvccуказан в$PATH, откуда его сможет найтиfind_program().
Аргументы
-
[<version>] -
Аргумент
[<version>]задает версию, которой должен соответствовать найденный пакет. Подробнее см. в разделе формат версии find_package.
Параметры
-
REQUIRED -
Если указан, конфигурация завершится с ошибкой, если подходящий CUDA Toolkit не найден.
-
QUIET -
Если указан, поиск подходящего CUDA Toolkit не будет выводить сообщения.
-
EXACT -
Если указан, CUDA Toolkit считается найденным, только если получена точная версия
VERSION.
Импортированные цели
Предоставляется импортированная цель с именем CUDA::toolkit.
Этот модуль предоставляет импортированные цели для следующих библиотек, входящих в состав CUDAToolkit:
- Библиотека среды выполнения CUDA
- Библиотека драйвера CUDA
- cuBLAS
- cuDLA
- cuFile
- cuFFT
- cuRAND
- cuSOLVER
- cuSPARSE
- cuPTI
- NPP
- nvBLAS
- nvGRAPH
- nvJPEG
- nvidia-ML
- Компилятор nvPTX
- nvRTC
- nvJitLink
- nvFatBin
- nvToolsExt
- nvtx3
- OpenCL
- cuLIBOS
- cufilt
Библиотека среды выполнения CUDA
Библиотека среды выполнения CUDA (cudart) обычно требуется большинству приложений для вызова таких функций, как cudaMalloc и cudaFree.
Создаваемые цели:
CUDA::cudartCUDA::cudart_static
Библиотека драйвера CUDA
Библиотека драйвера CUDA (cuda) используется приложениями, вызывающими такие функции, как cuMemAlloc и cuMemFree.
Создаваемые цели:
CUDA::cuda_driver
cuBLAS
Библиотека базовых подпрограмм линейной алгебры CUDA.
Создаваемые цели:
CUDA::cublasCUDA::cublas_static-
CUDA::cublasLtначиная с CUDA 10.1 -
CUDA::cublasLt_staticначиная с CUDA 10.1
cuDLA
Добавлено в версии 3.27.
Библиотека ускорителя глубокого обучения NVIDIA Tegra.
Создаваемые цели:
-
CUDA::cudlaначиная с CUDA 11.6
cuFile
Добавлено в версии 3.25.
Библиотека NVIDIA GPUDirect Storage cuFile.
Создаваемые цели:
-
CUDA::cuFileначиная с CUDA 11.4 -
CUDA::cuFile_staticначиная с CUDA 11.4 -
CUDA::cuFile_rdmaначиная с CUDA 11.4 -
CUDA::cuFile_rdma_staticначиная с CUDA 11.4
cuFFT
Библиотека быстрого преобразования Фурье CUDA.
Создаваемые цели:
CUDA::cufftCUDA::cufftwCUDA::cufft_static-
CUDA::cufft_static_nocallbackначиная с CUDA 9.2, требуется CMake 3.23+ CUDA::cufftw_static
cuRAND
Библиотека генерации случайных чисел CUDA.
Создаваемые цели:
CUDA::curandCUDA::curand_static
cuSOLVER
Библиотека решения систем линейных уравнений с ускорением на GPU.
Создаваемые цели:
CUDA::cusolverCUDA::cusolver_static
cuSPARSE
Библиотека разреженных матриц CUDA.
Создаваемые цели:
CUDA::cusparseCUDA::cusparse_static
cupti
Интерфейс средств профилирования NVIDIA CUDA.
Создаваемые цели:
CUDA::cuptiCUDA::cupti_static
Добавлено в версии 3.27:
-
CUDA::nvperf_hostначиная с CUDA 10.2 -
CUDA::nvperf_host_staticначиная с CUDA 10.2 -
CUDA::nvperf_targetначиная с CUDA 10.2 -
CUDA::pcsamplingutilначиная с CUDA 11.3
NPP
Библиотеки примитивов NVIDIA для обработки 2D-изображений и сигналов с высокой производительностью.
Создаваемые цели:
-
nppc:CUDA::nppcCUDA::nppc_static
-
nppial: арифметические и логические операции вnppi_arithmetic_and_logical_operations.hCUDA::nppialCUDA::nppial_static
-
nppicc: преобразование цвета и функции выборки вnppi_color_conversion.hCUDA::nppiccCUDA::nppicc_static
-
nppicom: функции сжатия и распаковки JPEG вnppi_compression_functions.h. Удалено начиная с CUDA 11.0; вместо этого используйте nvJPEG.CUDA::nppicomCUDA::nppicom_static
-
nppidei: функции обмена данными и инициализации вnppi_data_exchange_and_initialization.hCUDA::nppideiCUDA::nppidei_static
-
nppif: функции фильтрации и компьютерного зрения вnppi_filter_functions.hCUDA::nppifCUDA::nppif_static
-
nppig: функции геометрических преобразований вnppi_geometry_transforms.hCUDA::nppigCUDA::nppig_static
-
nppim: функции морфологических операций вnppi_morphological_operations.hCUDA::nppimCUDA::nppim_static
-
nppist: статистика и линейные преобразования вnppi_statistics_functions.hиnppi_linear_transforms.hCUDA::nppistCUDA::nppist_static
-
nppisu: функции поддержки памяти вnppi_support_functions.hCUDA::nppisuCUDA::nppisu_static
-
nppitc: функции пороговой обработки и сравнения вnppi_threshold_and_compare_operations.hCUDA::nppitcCUDA::nppitc_static
-
npps:CUDA::nppsCUDA::npps_static
nvBLAS
Библиотека BLAS, совместимая с заменой и ускоренная на GPU. Доступна только как динамическая библиотека.
Создаваемые цели:
CUDA::nvblas
nvGRAPH
Библиотека анализа графов с ускорением на GPU. Удалена начиная с CUDA 11.0.
Создаваемые цели:
CUDA::nvgraphCUDA::nvgraph_static
nvJPEG
Библиотека кодирования и декодирования JPEG с ускорением на GPU. Представлена в CUDA 10.
Создаваемые цели:
CUDA::nvjpegCUDA::nvjpeg_static
Компилятор nvPTX
Добавлено в версии 3.25.
API компилятора PTX. Это набор API для компиляции программы PTX в машинный код GPU. Представлен в CUDA 11.1. Доступен только как статическая библиотека.
Создаваемые цели:
-
CUDA::nvptxcompiler_staticначиная с CUDA 11.1
nvRTC
Библиотека JIT-компиляции для CUDA.
Создаваемые цели:
CUDA::nvrtc
Добавлено в версии 3.26:
CUDA::nvrtc_builtins-
CUDA::nvrtc_staticначиная с CUDA 11.5 -
CUDA::nvrtc_builtins_staticначиная с CUDA 11.5
nvJitLink
Создаваемые цели:
-
CUDA::nvJitLinkначиная с CUDA 12.0 -
CUDA::nvJitLink_staticначиная с CUDA 12.0
nvFatBin
Добавлено в версии 3.30.
Создаваемые цели:
-
CUDA::nvfatbinначиная с CUDA 12.4 -
CUDA::nvfatbin_staticначиная с CUDA 12.4
nvidia-ML
Создаваемые цели:
CUDA::nvml-
CUDA::nvml_staticначиная с CUDA 12.4
Добавлено в версии 3.31: добавлен CUDA::nvml_static.
nvToolsExt
Не рекомендуется с версии 3.25: Для CUDA 10.0 и новее используйте nvtx3. Начиная с CUDA 12.9 библиотека nvToolsExt больше не существует.
Устаревшее расширение инструментов NVIDIA. Доступно только как динамическая библиотека.
Создаваемые цели:
CUDA::nvToolsExt
nvtx3
Добавлено в версии 3.25.
Библиотека расширения инструментов NVIDIA, состоящая только из заголовочных файлов. Представлена в CUDA 10.0.
Создаваемые цели:
CUDA::nvtx3-
CUDA::nvtx3_interopДобавлено в версии 4.1.
Предоставляется в CUDA 12.9 и новее для использования языками, которые не могут работать с библиотеками C++, состоящими только из заголовочных файлов, например
Fortran.
OpenCL
Библиотека языка открытых вычислений NVIDIA. Доступна только как динамическая библиотека.
Создаваемые цели:
CUDA::OpenCL
cuLIBOS
Библиотека cuLIBOS — это слой абстракции потоков для серверной части, доступный только как статическая библиотека. Библиотеки CUDA::cublas_static, CUDA::cusparse_static, CUDA::cufft_static, CUDA::curand_static и (при наличии реализации) NPP автоматически связываются с этой зависимостью.
Создаваемая цель:
CUDA::culibos
Примечание: потребителям, как правило, не требуется использовать эту цель напрямую.
bin2c
Добавлено в версии 4.3.
Утилита для преобразования двоичных файлов в файлы C, содержащие массивы байтов.
Создаваемая цель:
CUDA::bin2c
compute-sanitizer
Добавлено в версии 4.4.
Библиотека NVIDIA Compute Sanitizer, позволяющая отслеживать вызовы среды выполнения CUDA и драйвера.
Создаваемая цель:
CUDA::sanitizer
cufilt
Добавлено в версии 4.4.
Двоичная утилита cu++filt также предоставляет статическую библиотеку для деманглинга символов CUDA C++.
Создаваемые цели:
-
CUDA::cufiltначиная с CUDA 11.4
Переменные результата
Этот модуль определяет следующие переменные:
-
CUDAToolkit_FOUND -
Логическое значение, указывающее, найден ли CUDA Toolkit.
-
CUDAToolkit_VERSION -
Точная версия найденного CUDA Toolkit (согласно
nvcc --version,version.txtилиversion.json). -
CUDAToolkit_VERSION_MAJOR -
Основная версия CUDA Toolkit.
-
CUDAToolkit_VERSION_MINOR -
Дополнительная версия CUDA Toolkit.
-
CUDAToolkit_VERSION_PATCH -
Версия исправления CUDA Toolkit.
-
CUDAToolkit_BIN_DIR -
Путь к каталогу библиотек CUDA Toolkit, содержащему исполняемый файл CUDA
nvcc. -
CUDAToolkit_INCLUDE_DIRS -
Список путей ко всем каталогам CUDA Toolkit, содержащим заголовочные файлы, необходимые для компиляции проекта, связанного с CUDA.
-
CUDAToolkit_LIBRARY_DIR -
Путь к каталогу библиотек CUDA Toolkit, содержащему библиотеку среды выполнения CUDA
cudart. -
CUDAToolkit_LIBRARY_ROOT -
Добавлено в версии 3.18.
Путь к каталогу CUDA Toolkit, содержащему каталог nvvm и файл version.txt или version.json.
-
CUDAToolkit_TARGET_DIR -
Путь к каталогу CUDA Toolkit, включающий целевую архитектуру при кросс-компиляции. Без кросс-компиляции значение эквивалентно родительскому каталогу
CUDAToolkit_BIN_DIR. -
CUDAToolkit_NVCC_EXECUTABLE -
Путь к компилятору NVIDIA CUDA
nvcc. Обратите внимание, что этот путь может не совпадать сCMAKE_CUDA_COMPILER. Для определения версии CUDA Toolkit и других его характеристик необходимо найтиnvcc. Эта переменная задается для удобства модулей, зависящих от данного модуля.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/module/FindCUDAToolkit.html