FindCUDAToolkit
Этот скрипт находит инструментарий NVIDIA CUDA и связанные библиотеки, но не требует, чтобы CUDA язык был включён для данного проекта. Этот модуль не ищет NVIDIA CUDA Samples.
Поведение поиска
Для поиска CUDA Toolkit необходимо найти исполняемый файл nvcc, который ищется в следующем порядке:
- Если
CUDAязык был включён, мы будем использовать каталог, содержащий компилятор, в качестве первой точки поиска дляnvcc. -
Если переменная конфигурации CMake
CUDAToolkit_ROOT(например,-DCUDAToolkit_ROOT=/some/path) или переменная среды определена, она будет проверена. Если определены как переменная среды, так и переменная конфигурации, переменная конфигурации имеет приоритет.Указанный каталог должен быть таким, чтобы исполняемый файл
nvccмог быть найден в каталоге, указанномCUDAToolkit_ROOT. ЕслиCUDAToolkit_ROOTуказана, ноnvccне найдено в подкаталоге, этот пакет помечается как не найденный. Дальнейшие попытки поиска не выполняются. - Если переменная среды CUDA_PATH определена, она будет проверена.
- Путь пользователя проверяется на наличие
nvccс помощьюfind_program(). Если найдено, дальнейшие попытки поиска не выполняются. Пользователь несёт ответственность за обеспечение того, что первыйnvccв пути — это нужный путь, в случае установки нескольких CUDA Toolkit. - В системах Unix, если символическая ссылка
/usr/local/cudaсуществует, она используется. Дальнейшие попытки поиска не выполняются. По умолчанию символическая ссылка для платформы Windows не существует. -
Проверяются платформенные места установки по умолчанию. Если найдено ровно один кандидат, он используется. Проверяются следующие места установки CUDA Toolkit по умолчанию:
Платформа
Шаблон поиска
macOS
/Developer/NVIDIA/CUDA-X.YДругие Unix
/usr/local/cuda-X.YWindows
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::cudartCUDA::cudart_static
Библиотека CUDA Driver
Библиотека CUDA Driver (cuda) используется приложениями, использующими вызовы, такие как cuMemAlloc, и cuMemFree. Обычно используется продвинутыми
Созданные цели:
CUDA::cuda_driverCUDA::cuda_driver
cuBLAS
Библиотека cuBLAS.
Созданные цели:
CUDA::cublasCUDA::cublas_static
cuFFT
Библиотека cuFFT.
Созданные цели:
CUDA::cufftCUDA::cufftwCUDA::cufft_staticCUDA::cufftw_static
cuRAND
Библиотека cuRAND.
Созданные цели:
CUDA::curandCUDA::curand_static
cuSOLVER
Библиотека cuSOLVER.
Созданные цели:
CUDA::cusolverCUDA::cusolver_static
cuSPARSE
Библиотека cuSPARSE.
Созданные цели:
CUDA::cusparseCUDA::cusparse_static
cupti
Интерфейс NVIDIA CUDA Profiling Tools Interface.
Созданные цели:
CUDA::cuptiCUDA::cupti_static
NPP
Библиотеки NPP.
Созданные цели:
-
nppc:CUDA::nppcCUDA::nppc_static
-
nppial: Функции арифметических и логических операций вnppi_arithmetic_and_logical_operations.hCUDA::nppialCUDA::nppial_static
-
nppicc: Функции преобразования и выборки цвета вnppi_color_conversion.hCUDA::nppiccCUDA::nppicc_static
-
nppicom: Функции сжатия и распаковки JPEG вnppi_compression_functions.hCUDA::nppicomCUDA::nppicom_static
-
nppidei: Функции обмена и инициализации данных вnppi_data_exchange_and_initialization.hCUDA::nppideiCUDA::nppidei_static
-
nppif: Функции фильтрации и компьютерного зрения вnppi_filter_functions.hCUDA::nppifCUDA::nppif_static
-
nppig: Функции геометрических преобразований вnppi_geometry_transforms.hCUDA::nppigCUDA::nppig_static
-
nppim: Функции морфологических операций вnppi_morphological_operations.hCUDA::nppimCUDA::nppim_static
-
nppist: Статистические и линейные преобразования вnppi_statistics_functions.hиnppi_linear_transforms.hCUDA::nppistCUDA::nppist_static
-
nppisu: Функции поддержки памяти вnppi_support_functions.hCUDA::nppisuCUDA::nppisu_static
-
nppitc: Функции порогового сравнения вnppi_threshold_and_compare_operations.hCUDA::nppitcCUDA::nppitc_static
-
npps:CUDA::nppsCUDA::npps_static
nvBLAS
Библиотеки nvBLAS. Это только общая библиотека.
Созданные цели:
CUDA::nvblas
nvGRAPH
Библиотека nvGRAPH.
Созданные целевые платформы:
CUDA::nvgraphCUDA::nvgraph_static
nvJPEG
Библиотека nvJPEG. Введена в CUDA 10.
Созданные целевые платформы:
CUDA::nvjpegCUDA::nvjpeg_static
nvRTC
Библиотека nvRTC (Runtime Compilation). Это только библиотека общего использования.
Созданные целевые платформы:
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). -
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_TARGET_DIR -
Путь к каталогу CUDA Toolkit, включая целевую архитектуру при кросс-компиляции. При отсутствии кросс-компиляции, это эквивалентно
CUDAToolkit_ROOT_DIR. -
CUDAToolkit_NVCC_EXECUTABLE -
Путь к компилятору NVIDIA CUDA
nvcc. Обратите внимание, что этот путь может не совпадать сCMAKE_CUDA_COMPILER.nvccдолжен быть найден, чтобы определить версию CUDA Toolkit, а также другие характеристики набора инструментов. Эта переменная задается для удобства модулей, которые зависят от этой.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.17/module/FindCUDAToolkit.html