FindCUDAToolkit
Добавлен в версии 3.17.
Этот скрипт определяет расположение набора инструментов NVIDIA CUDA и связанных библиотек, но не требует, чтобы язык CUDA был включён в данный проект. Этот модуль не ищет образцы NVIDIA CUDA.
Добавлен в версии 3.19: Поддержка QNX.
Поведение поиска
Поиск CUDA Toolkit происходит в следующем порядке:
- Если язык
CUDAвключен, каталог с компилятором будет первой точкой поиска дляnvcc. - Если переменная
CMAKE_CUDA_COMPILERили переменная средыCUDACXXопределена, она будет использована как путь к исполняемому файлуnvcc. -
Если переменная конфигурации CMake
CUDAToolkit_ROOT(например,-DCUDAToolkit_ROOT=/some/path) или переменная среды определена, она будет проверена. Если заданы и переменная среды, и переменная конфигурации, то используется переменная конфигурации.Указанный каталог должен содержать исполняемый файл
nvccили соответствующий файлversion.txtилиversion.json. - Если переменная среды 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
- cuDLA
- cuFile
- cuFFT
- cuRAND
- cuSOLVER
- cuSPARSE
- cuPTI
- NPP
- nvBLAS
- nvGRAPH
- nvJPEG
- nvidia-ML
- Компилятор nvPTX
- nvRTC
- nvJitLink
- nvFatBin
- nvToolsExt
- nvtx3
- OpenCL
- cuLIBOS
Библиотека CUDA Runtime
Библиотека CUDA Runtime (cudart) обычно требуется для большинства приложений, делающих вызовы, такие как cudaMalloc, и cudaFree.
Созданные цели:
CUDA::cudartCUDA::cudart_static
Библиотека CUDA Driver
Библиотека CUDA Driver (cuda) используется приложениями, которые используют вызовы, такие как cuMemAlloc, и cuMemFree.
Созданные цели:
CUDA::cuda_driver
cuBLAS
Библиотека cuBLAS.
Созданные цели:
CUDA::cublasCUDA::cublas_static-
CUDA::cublasLtначиная с CUDA 10.1 -
CUDA::cublasLt_staticначиная с CUDA 10.1
cuDLA
Добавлен в версии 3.27.
Библиотека NVIDIA Tegra Deep Learning Accelerator cuDLA.
Созданные цели:
-
CUDA::cudlaначиная с CUDA 11.6
cuFile
Добавлен в версии 3.25.
Библиотека NVIDIA GPUDirect Storage cuFile.
Созданные цели:
-
CUDA::cuFileначиная с CUDA 11.4 -
CUDA::cuFile_staticначиная с CUDA 11.4 -
CUDA::cuFile_rdmaначиная с CUDA 11.4 -
CUDA::cuFile_rdma_staticначиная с CUDA 11.4
cuFFT
Библиотека cuFFT.
Созданные цели:
CUDA::cufftCUDA::cufftwCUDA::cufft_static-
CUDA::cufft_static_nocallbackначиная с CUDA 9.2, требует CMake 3.23+ CUDA::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. https://developer.nvidia.com/cupti
Созданные цели:
CUDA::cuptiCUDA::cupti_static
Добавлен в версии 3.27:
-
CUDA::nvperf_hostначиная с CUDA 10.2 -
CUDA::nvperf_host_staticначиная с CUDA 10.2 -
CUDA::nvperf_targetначиная с CUDA 10.2 -
CUDA::pcsamplingutilначиная с CUDA 11.3
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
nvPTX Компилятор
Добавлен в версии 3.25.
Библиотека nvPTX (PTX компиляция). API-интерфейсы PTX-компилятора — это набор API, которые могут быть использованы для компиляции программы PTX в ассемблерный код GPU. Введена в CUDA 11.1. Это только статическая библиотека.
Созданные целевые элементы:
-
CUDA::nvptxcompiler_staticначиная с CUDA 11.1
nvRTC
Библиотека nvRTC (Компиляция в процессе выполнения).
Созданные целевые элементы:
CUDA::nvrtc
Добавлен в версии 3.26:
CUDA::nvrtc_builtins-
CUDA::nvrtc_staticначиная с CUDA 11.5 -
CUDA::nvrtc_builtins_staticначиная с CUDA 11.5
nvJitLink
Библиотека nvJItLink (Связывание LTO в процессе выполнения).
Созданные целевые элементы:
-
CUDA::nvJitLinkначиная с CUDA 12.0 -
CUDA::nvJitLink_staticначиная с CUDA 12.0
nvFatBin
Добавлен в версии 3.30.
Библиотека nvFatBin (Создание fatbin в процессе выполнения).
Созданные целевые элементы:
-
CUDA::nvfatbinначиная с CUDA 12.4 -
CUDA::nvfatbin_staticначиная с CUDA 12.4
nvidia-ML
Библиотека управления NVIDIA NVIDIA Management Library.
Созданные целевые элементы:
CUDA::nvml-
CUDA::nvml_staticначиная с CUDA 12.4
Добавлен в версии 3.31: Добавлен CUDA::nvml_static.
nvToolsExt
Устарело начиная с версии 3.25: Для CUDA 10.0+ используйте nvtx3.
Расширение инструментов NVIDIA. Это только библиотека общего использования.
Созданные целевые элементы:
CUDA::nvToolsExt
nvtx3
Добавлен в версии 3.25.
Библиотека расширений инструментов NVIDIA (только заголовки). Введена в CUDA 10.0.
Созданные целевые элементы:
CUDA::nvtx3
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, илиversion.json). -
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, содержащим заголовочные файлы, необходимые для компиляции проекта, ссылаясь на CUDA.
-
CUDAToolkit_LIBRARY_DIR -
Путь к каталогу библиотек CUDA Toolkit, который содержит библиотеку CUDA Runtime
cudart. -
CUDAToolkit_LIBRARY_ROOT -
Добавлен в версии 3.18.
Путь к каталогу CUDA Toolkit, содержащему директорию nvvm и файл version.txt или version.json.
-
CUDAToolkit_TARGET_DIR -
Путь к каталогу CUDA Toolkit, включая архитектуру целевого устройства при кросс-компиляции. При отсутствии кросс-компиляции он будет эквивалентен родительскому каталогу
CUDAToolkit_BIN_DIR. -
CUDAToolkit_NVCC_EXECUTABLE -
Путь к компилятору NVIDIA CUDA
nvcc. Обратите внимание, что этот путь может не совпадать сCMAKE_CUDA_COMPILER. Необходимо найтиnvcc, чтобы определить версию CUDA Toolkit, а также другие особенности Toolkit. Эта переменная задаётся для удобства модулей, зависящих от данной переменной.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/module/FindCUDAToolkit.html