Spec-Zone.ru › CMake

FindCUDAToolkit

Добавлено в версии 3.17.

Находит инструментарий NVIDIA CUDA и связанные с ним библиотеки, но не требует включения языка CUDA для проекта:

find_package(CUDAToolkit [<version>] [QUIET] [REQUIRED] [EXACT] [...])

Этот модуль не выполняет поиск примеров NVIDIA CUDA Samples.

Добавлено в версии 3.19: поддержка QNX.

Поведение поиска

При поиске CUDA Toolkit используется следующий порядок:

  1. Если включен язык CUDA, каталог, содержащий компилятор, будет использоваться как первое место поиска для nvcc.
  2. Если определена переменная CMAKE_CUDA_COMPILER или переменная среды CUDACXX, она будет использоваться как путь к исполняемому файлу nvcc.
  3. Если задана переменная конфигурации cmake CUDAToolkit_ROOT (например, -DCUDAToolkit_ROOT=/some/path) или переменная среды, будет выполнен поиск по ней. Если заданы и переменная среды, и переменная конфигурации, приоритет имеет переменная конфигурации.

    Указанный здесь каталог должен быть таким, чтобы исполняемый файл nvcc или соответствующий файл version.txt либо version.json находился внутри указанного каталога.

  4. Если задана переменная среды CUDA_PATH, в ней будет выполнен поиск nvcc.
  5. В пути пользователя выполняется поиск nvcc с помощью find_program(). Если элемент найден, последующие попытки поиска не выполняются. Если установлено несколько CUDA Toolkit, пользователи должны убедиться, что первым в пути указан нужный nvcc.
  6. В системах Unix используется символическая ссылка /usr/local/cuda, если она существует. Последующие попытки поиска не выполняются. Для платформы Windows расположение символической ссылки по умолчанию не предусмотрено.
  7. Выполняется поиск в расположениях установки по умолчанию, зависящих от платформы. Если найден ровно один подходящий вариант, используется он. Поиск выполняется в следующих расположениях установки CUDA Toolkit по умолчанию:

    Платформа

    Шаблон поиска

    macOS

    /Developer/NVIDIA/CUDA-X.Y

    Другие системы Unix

    /usr/local/cuda-X.Y

    Windows

    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::cudart
  • CUDA::cudart_static

Библиотека драйвера CUDA

Библиотека драйвера CUDA (cuda) используется приложениями, вызывающими такие функции, как cuMemAlloc и cuMemFree.

Создаваемые цели:

  • CUDA::cuda_driver

cuBLAS

Библиотека базовых подпрограмм линейной алгебры CUDA.

Создаваемые цели:

  • CUDA::cublas
  • CUDA::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::cufft
  • CUDA::cufftw
  • CUDA::cufft_static
  • CUDA::cufft_static_nocallback начиная с CUDA 9.2, требуется CMake 3.23+
  • CUDA::cufftw_static

cuRAND

Библиотека генерации случайных чисел CUDA.

Создаваемые цели:

  • CUDA::curand
  • CUDA::curand_static

cuSOLVER

Библиотека решения систем линейных уравнений с ускорением на GPU.

Создаваемые цели:

  • CUDA::cusolver
  • CUDA::cusolver_static

cuSPARSE

Библиотека разреженных матриц CUDA.

Создаваемые цели:

  • CUDA::cusparse
  • CUDA::cusparse_static

cupti

Интерфейс средств профилирования NVIDIA CUDA.

Создаваемые цели:

  • CUDA::cupti
  • CUDA::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::nppc
    • CUDA::nppc_static
  • nppial: арифметические и логические операции в nppi_arithmetic_and_logical_operations.h

    • CUDA::nppial
    • CUDA::nppial_static
  • nppicc: преобразование цвета и функции выборки в nppi_color_conversion.h

    • CUDA::nppicc
    • CUDA::nppicc_static
  • nppicom: функции сжатия и распаковки JPEG в nppi_compression_functions.h. Удалено начиная с CUDA 11.0; вместо этого используйте nvJPEG.

    • CUDA::nppicom
    • CUDA::nppicom_static
  • nppidei: функции обмена данными и инициализации в nppi_data_exchange_and_initialization.h

    • CUDA::nppidei
    • CUDA::nppidei_static
  • nppif: функции фильтрации и компьютерного зрения в nppi_filter_functions.h

    • CUDA::nppif
    • CUDA::nppif_static
  • nppig: функции геометрических преобразований в nppi_geometry_transforms.h

    • CUDA::nppig
    • CUDA::nppig_static
  • nppim: функции морфологических операций в nppi_morphological_operations.h

    • CUDA::nppim
    • CUDA::nppim_static
  • nppist: статистика и линейные преобразования в nppi_statistics_functions.h и nppi_linear_transforms.h

    • CUDA::nppist
    • CUDA::nppist_static
  • nppisu: функции поддержки памяти в nppi_support_functions.h

    • CUDA::nppisu
    • CUDA::nppisu_static
  • nppitc: функции пороговой обработки и сравнения в nppi_threshold_and_compare_operations.h

    • CUDA::nppitc
    • CUDA::nppitc_static
  • npps:

    • CUDA::npps
    • CUDA::npps_static

nvBLAS

Библиотека BLAS, совместимая с заменой и ускоренная на GPU. Доступна только как динамическая библиотека.

Создаваемые цели:

  • CUDA::nvblas

nvGRAPH

Библиотека анализа графов с ускорением на GPU. Удалена начиная с CUDA 11.0.

Создаваемые цели:

  • CUDA::nvgraph
  • CUDA::nvgraph_static

nvJPEG

Библиотека кодирования и декодирования JPEG с ускорением на GPU. Представлена в CUDA 10.

Создаваемые цели:

  • CUDA::nvjpeg
  • CUDA::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

API JIT-компоновки.

Создаваемые цели:

  • CUDA::nvJitLink начиная с CUDA 12.0
  • CUDA::nvJitLink_static начиная с CUDA 12.0

nvFatBin

Добавлено в версии 3.30.

API создания Fatbin.

Создаваемые цели:

  • CUDA::nvfatbin начиная с CUDA 12.4
  • CUDA::nvfatbin_static начиная с CUDA 12.4

nvidia-ML

Библиотека управления NVIDIA.

Создаваемые цели:

  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API