Spec-Zone.ru › CMake

FindCUDAToolkit

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

Этот скрипт находит комплект NVIDIA CUDA и связанные библиотеки, но не требует, чтобы язык CUDA был включен для данного проекта. Этот модуль не ищет образцы NVIDIA CUDA.

Добавлен в версии 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(). Если найдено, дальнейшие попытки поиска не выполняются. Пользователь отвечает за обеспечение того, чтобы первый nvcc в пути был нужным путем в случае установки нескольких CUDA Toolkit.
  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.

Этот модуль определяет IMPORTED цели для каждой из следующих библиотек, являющихся частью 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

Библиотека времени выполнения CUDA

Библиотека времени выполнения CUDA (cudart) — это то, что большинству приложений обычно нужно для линковки, чтобы выполнять такие вызовы, как cudaMalloc, и cudaFree.

Созданные цели:

  • CUDA::cudart
  • CUDA::cudart_static

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

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

Созданные цели:

  • CUDA::cuda_driver

cuBLAS

Библиотека cuBLAS.

Созданные цели:

  • CUDA::cublas
  • CUDA::cublas_static
  • CUDA::cublasLt начиная с CUDA 10.1
  • CUDA::cublasLt_static начиная с CUDA 10.1

cuDLA

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

Библиотека NVIDIA Tegra Deep Learning Accelerator cuDLA.

Созданные цели:

  • 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

Библиотека cuFFT.

Созданные цели:

  • CUDA::cufft
  • CUDA::cufftw
  • CUDA::cufft_static
  • CUDA::cufft_static_nocallback начиная с CUDA 9.2, требуется CMake 3.23+
  • CUDA::cufftw_static

cuRAND

Библиотека cuRAND.

Созданные цели:

  • CUDA::curand
  • CUDA::curand_static

cuSOLVER

Библиотека cuSOLVER.

Созданные цели:

  • CUDA::cusolver
  • CUDA::cusolver_static

cuSPARSE

Библиотека cuSPARSE.

Созданные цели:

  • CUDA::cusparse
  • CUDA::cusparse_static

cupti

Интерфейс средств профилирования NVIDIA CUDA Profiling Tools. Ссылка.

Созданные цели:

  • 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

Библиотеки NPP.

Созданные целевые компоненты:

  • 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

Библиотеки nvBLAS. Это только библиотека динамической загрузки.

Созданные целевые компоненты:

  • CUDA::nvblas

nvGRAPH

Библиотека nvGRAPH. Удалено начиная с CUDA 11.0

Созданные целевые компоненты:

  • CUDA::nvgraph
  • CUDA::nvgraph_static

nvJPEG

Библиотека nvJPEG. Введена в CUDA 10.

Созданные целевые компоненты:

  • CUDA::nvjpeg
  • CUDA::nvjpeg_static

nvPTX Компилятор

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

Библиотека nvPTX (PTX Компиляция). API компилятора PTX — это набор API, которые могут быть использованы для компиляции программы PTX в ассемблерный код GPU. Введено в CUDA 11.1. Это только статическая библиотека.

Созданные целевые компоненты:

  • CUDA::nvptxcompiler_static начиная с CUDA 11.1

nvRTC

Библиотека nvRTC (Компиляция во время выполнения).

Созданные целевые компоненты:

  • CUDA::nvrtc

Добавлено в версии 3.26:

  • CUDA::nvrtc_builtins
  • CUDA::nvrtc_static начиная с CUDA 11.5
  • CUDA::nvrtc_builtins_static начиная с CUDA 11.5

nvJitLink

Библиотека nvJItLink (LTO-связывание во время выполнения).

Созданные целевые компоненты:

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

nvFatBin

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

Библиотека nvFatBin (создание исполняемых файлов fatbin во время выполнения).

Созданные целевые компоненты:

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

nvidia-ML

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

Созданные целевые компоненты:

  • CUDA::nvml
  • CUDA::nvml_static начиная с CUDA 12.4

Добавлено в версии 3.31: Добавлен CUDA::nvml_static.

nvToolsExt

Устарело начиная с версии 3.25: С CUDA 10.0+, используйте nvtx3.

Расширения инструментов NVIDIA. Это только библиотека динамической загрузки.

Созданные целевые компоненты:

  • CUDA::nvToolsExt

nvtx3

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

Библиотека-заголовок NVIDIA Tools Extension Library. Введена в CUDA 10.0.

Созданные целевые компоненты:

  • CUDA::nvtx3

OpenCL

Библиотека NVIDIA OpenCL. Это только библиотека динамической загрузки.

Созданные целевые компоненты:

  • CUDA::OpenCL

cuLIBOS

Библиотека cuLIBOS — это библиотека уровня абстракции потоков заднего плана, которая только статическая. Библиотеки CUDA::cublas_static, CUDA::cusparse_static, CUDA::cufft_static, CUDA::curand_static, и (при реализации) библиотеки NPP автоматически имеют эту зависимость, связанную с ними.

Созданный целевой компонент:

  • CUDA::culibos

Примечание: прямое использование этого целевого компонента потребителями не требуется.

Переменные результатов

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 Runtime 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. Необходимо найти nvcc, чтобы определить версию CUDA Toolkit, а также другие характеристики Toolkit. Эта переменная установлена для удобства модулей, зависящих от этой переменной.

© 2000–2024 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