Spec-Zone.ru › CMake 3.31

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 Runtime
  • Библиотека CUDA Driver
  • cuBLAS
  • cuDLA
  • cuFile
  • cuFFT
  • cuRAND
  • cuSOLVER
  • cuSPARSE
  • cuPTI
  • NPP
  • nvBLAS
  • nvGRAPH
  • nvJPEG
  • nvidia-ML
  • Компилятор nvPTX
  • nvRTC
  • nvJitLink
  • nvFatBin
  • nvToolsExt
  • nvtx3
  • OpenCL
  • cuLIBOS

Библиотека CUDA Runtime

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

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

  • CUDA::cudart
  • CUDA::cudart_static

Библиотека CUDA Driver

Библиотека CUDA Driver (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. https://developer.nvidia.com/cupti

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

  • 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 (только заголовки). Введена в 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/v3.31/module/FindCUDAToolkit.html

Spec-Zone.ru

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