FindCUDAToolkit
Этот скрипт определяет расположение набора инструментов NVIDIA CUDA и связанных библиотек, но не требует, чтобы язык CUDA был включён для данного проекта. Этот модуль не ищет примеры NVIDIA CUDA.
Поведение поиска
Для поиска 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-
CUDA::cublasLtначиная с CUDA 10.1 -
CUDA::cublasLt_staticначиная с CUDA 10.1
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.hУдалено начиная с CUDA 11.0, используйте nvJPEG вместо этого.CUDA::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 11.0.
Созданные целевые объекты:
CUDA::nvgraphCUDA::nvgraph_static
nvJPEG
Библиотека nvJPEG. Введена в CUDA 10.
Созданные целевые объекты:
CUDA::nvjpegCUDA::nvjpeg_static
nvRTC
Библиотека nvRTC (компиляция в runtime). Это только библиотека динамической подгрузки.
Созданные целевые объекты:
CUDA::nvrtc
nvidia-ML
Библиотека NVIDIA Management Library. Это только библиотека динамической подгрузки.
Созданные целевые объекты:
CUDA::nvml
nvToolsExt
Расширение NVIDIA Tools Extension. Это только библиотека динамической подгрузки.
Созданные целевые объекты:
CUDA::nvToolsExt
OpenCL
Библиотека NVIDIA OpenCL Library. Это только библиотека динамической подгрузки.
Созданные целевые объекты:
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). -
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 -
Путь к папке
includeCUDA Toolkit, содержащей заголовочные файлы, необходимые для компиляции проекта, связанного с CUDA. -
CUDAToolkit_LIBRARY_DIR -
Путь к каталогу библиотек CUDA Toolkit, содержащему библиотеку CUDA Runtime
cudart. -
CUDAToolkit_LIBRARY_ROOT -
Путь к каталогу CUDA Toolkit, содержащему директорию nvvm и файл version.txt.
-
CUDAToolkit_TARGET_DIR -
Путь к каталогу CUDA Toolkit, включая целевую архитектуру при кросс-компиляции. При отсутствии кросс-компиляции это будет эквивалентно
CUDAToolkit_ROOT_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.18/module/FindCUDAToolkit.html