Spec-Zone.ru › CMake 3.29

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 компиляция). API PTX компилятора — это набор API, которые могут использоваться для компиляции программы PTX в код ассемблера GPU. Введена в CUDA 11.1. Только статическая библиотека.

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

  • CUDA::nvptxcompiler_static начиная с CUDA 11.1

nvRTC

Библиотека nvRTC (Компиляция в runtime).

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

  • CUDA::nvrtc

Новая в версии 3.26:

  • CUDA::nvrtc_builtins
  • CUDA::nvrtc_static начиная с CUDA 11.5
  • CUDA::nvrtc_builtins_static начиная с CUDA 11.5

nvJitLink

Библиотека nvJItLink (Runtime LTO Linking).

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

  • 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 — это библиотека абстракции потоков backend, которая доступна только в виде статической библиотеки. Библиотеки 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 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.29/module/FindCUDAToolkit.html

Spec-Zone.ru

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