Spec-Zone.ru › CMake 3.23

FindCUDAToolkit

Новое в версии 3.17.

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

Новое в версии 3.19: Поддержка QNX.

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

Поиск CUDA Toolkit осуществляется в следующем порядке:

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

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

  3. Если переменная окружения CUDA_PATH определена, она будет проверена на наличие nvcc.
  4. Проверяется пользовательский путь на наличие nvcc с помощью find_program(). Если найдено, дальнейшие попытки поиска не выполняются. Пользователь отвечает за обеспечение того, чтобы первый nvcc в пути был желаемым каталогом в случае установки нескольких CUDA Toolkit.
  5. В системах Unix, если существует символическая ссылка /usr/local/cuda, она используется. Дальнейшие попытки поиска не выполняются. Для платформы Windows нет стандартного расположения символической ссылки.
  6. Проверяются платформенные стандартные расположения установки. Если найдено ровно одно соответствие, оно используется. Проверяемые стандартные расположения установки 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
  • cuFFT
  • cuRAND
  • cuSOLVER
  • cuSPARSE
  • cuPTI
  • NPP
  • nvBLAS
  • nvGRAPH
  • nvJPEG
  • nvidia-ML
  • nvRTC
  • nvToolsExt
  • 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

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

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

nvRTC

Библиотека nvRTC (компиляция в реальном времени). Это только библиотека общего использования.

Созданные целевые объекты:

  • CUDA::nvrtc

nvidia-ML

Библиотека управления NVIDIA NVIDIA Management Library. Это только библиотека общего использования.

Созданные целевые объекты:

  • CUDA::nvml

nvToolsExt

Расширение инструментов NVIDIA NVIDIA Tools Extension. Это только библиотека общего использования.

Созданные целевые объекты:

  • CUDA::nvToolsExt

OpenCL

Библиотека NVIDIA OpenCL NVIDIA OpenCL Library. Это только библиотека общего использования.

Созданные целевые объекты:

  • CUDA::OpenCL

cuLIBOS

Библиотека cuLIBOS — это библиотека абстракции потоков на уровне back-end, которая является только статической. 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).

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

Путь к папке include CUDA Toolkit, содержащей заголовочные файлы, необходимые для компиляции проекта, связанного с CUDA.

CUDAToolkit_LIBRARY_DIR

Путь к каталогу библиотеки CUDA Toolkit, содержащему библиотеку CUDA Runtime cudart.

CUDAToolkit_LIBRARY_ROOT

Новое в версии 3.18.

Путь к каталогу CUDA Toolkit, содержащему каталог nvvm и файл version.txt.

CUDAToolkit_TARGET_DIR

Путь к каталогу CUDA Toolkit, включающий целевую архитектуру при кросс-компиляции. При отсутствии кросс-компиляции он будет эквивалентен родительскому каталогу CUDAToolkit_BIN_DIR.

CUDAToolkit_NVCC_EXECUTABLE

Путь к компилятору CUDA NVIDIA nvcc. Обратите внимание, что этот путь может не совпадать с CMAKE_CUDA_COMPILER. nvcc необходим для определения версии CUDA Toolkit, а также других функций Toolkit. Эта переменная устанавливается для удобства модулей, зависящих от данной.

© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/module/FindCUDAToolkit.html

Spec-Zone.ru

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