FindCUDAToolkit
Новое в версии 3.17.
Этот скрипт находит набор инструментов NVIDIA CUDA и связанные библиотеки, но не требует, чтобы язык CUDA был включён для данного проекта. Этот модуль не ищет примеры NVIDIA CUDA.
Новое в версии 3.19: Поддержка QNX.
Поведение поиска
Поиск CUDA Toolkit использует следующий порядок:
- Если язык
CUDAвключен, мы будем использовать директорию, содержащую компилятор, как первую точку поиска дляnvcc. -
Если переменная конфигурации
CUDAToolkit_ROOTCMake (например,-DCUDAToolkit_ROOT=/some/path) или переменная среды определена, она будет проверена. Если определены и переменная среды, и переменная конфигурации, будет использована переменная конфигурации.Указанная директория должна быть такой, чтобы исполняемый файл
nvccили соответствующий файлversion.txtможно было найти внутри указанной директории. - Если переменная среды CUDA_PATH определена, она будет проверена для поиска
nvcc. - Путь пользователя проверяется на наличие
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>] -
Аргумент
[<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::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.
Созданные целевые объекты:
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 Compilation). Это только библиотека динамической компоновки.
Созданные целевые компоненты:
CUDA::nvrtc
nvidia-ML
Библиотека NVIDIA Management Library. Это только библиотека динамической компоновки.
Созданные целевые компоненты:
CUDA::nvml
nvToolsExt
Расширение инструментов NVIDIA. Это только библиотека динамической компоновки.
Созданные целевые компоненты:
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или %%%CODE_BLOCK_121%%). -
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
include, содержащей заголовочные файлы, необходимые для компиляции проекта, связанного с CUDA. -
CUDAToolkit_LIBRARY_DIR -
Путь к каталогу библиотеки CUDA Toolkit, содержащему библиотеку времени выполнения CUDA
cudart. -
CUDAToolkit_LIBRARY_ROOT -
Новое в версии 3.18.
Путь к каталогу 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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/module/FindCUDAToolkit.html