Spec-Zone.ru › CMake 3.19

FindCUDAToolkit

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

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

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

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

  1. Если язык CUDA включен, каталог с компилятором используется в качестве первого места поиска для nvcc.
  2. Если переменная конфигурации CMake CUDAToolkit_ROOT (например, -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

Если указано, описывает версию CUDA Toolkit, которую нужно искать.

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
  • 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::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 Management Library. Это только библиотека динамической загрузки.

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

  • CUDA::nvml

nvToolsExt

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

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

  • CUDA::nvToolsExt

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).

CUDAToolkit_VERSION_MAJOR

Главная версия CUDA Toolkit.

CUDAToolkit_VERSION_MAJOR

Дополнительная версия CUDA Toolkit.

CUDAToolkit_VERSION_PATCH

Версия исправления CUDA Toolkit.

CUDAToolkit_BIN_DIR

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

CUDAToolkit_INCLUDE_DIRS

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

CUDAToolkit_LIBRARY_DIR

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

CUDAToolkit_LIBRARY_ROOT

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

CUDAToolkit_TARGET_DIR

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

CUDAToolkit_NVCC_EXECUTABLE

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

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

Spec-Zone.ru

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