Spec-Zone.ru › CMake 3.28

FindCUDAToolkit

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

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

Новое в версии 3.19: Поддержка QNX.

Поиск

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

  1. Если язык CUDA включён, то директория, содержащая компилятор, будет первой местом поиска nvcc.
  2. Если определена переменная конфигурации CUDAToolkit_ROOT CMake (например, -DCUDAToolkit_ROOT=/some/path) или переменная окружения, она будет проверена. Если указаны как переменная окружения, так и переменная конфигурации, то переменная конфигурации имеет приоритет.

    Директория, указанная здесь, должна быть такой, чтобы под ней можно было найти исполняемый файл nvcc или соответствующий файл version.txt или version.json.

  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>]

Аргумент [<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
  • nvToolsExt
  • nvtx3
  • OpenCL
  • cuLIBOS

Библиотека CUDA Runtime

Библиотека CUDA Runtime (cudart) — это то, что большинство приложений, обычно, используют для связи с такими вызовами, как cudaMalloc, и cudaFree.

Созданные цели:

  • CUDA::cudart
  • CUDA::cudart_static

Библиотека CUDA Driver

Библиотека CUDA Driver (cuda) используется приложениями, которые используют вызовы, такие как cuMemAlloc, и cuMemFree.

Созданные цели:

  • CUDA::cuda_driver

cuBLAS

Библиотека cuBLAS.

Созданные цели:

  • CUDA::cublas
  • CUDA::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::cufft
  • CUDA::cufftw
  • CUDA::cufft_static
  • CUDA::cufft_static_nocallback начиная с CUDA 9.2, требует CMake 3.23+
  • 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

Новое в версии 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::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

nvPTX Компилятор

Новая версия 3.25.

Библиотека nvPTX (PTX Compilation). 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

nvidia-ML

Библиотека NVIDIA Management Library. Это библиотека общего использования.

Созданные целевые объекты:

  • CUDA::nvml

nvToolsExt

Устарело начиная с версии 3.25: С CUDA 10.0+, используйте nvtx3.

Расширение инструментов NVIDIA. Это библиотека общего использования.

Созданные целевые объекты:

  • CUDA::nvToolsExt

nvtx3

Новая версия 3.25.

Библиотека NVIDIA Tools Extension Library только с заголовками. Введена в CUDA 10.0.

Созданные целевые объекты:

  • CUDA::nvtx3

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, 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.28/module/FindCUDAToolkit.html

Spec-Zone.ru

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