Spec-Zone.ru › CMake 3.26

FindCUDAToolkit

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

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

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

Поведение поиска

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

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

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

  3. Если определена переменная среды CUDA_PATH, то она будет проверена на наличие nvcc.
  4. Проверяется путь пользователя на наличие nvcc с помощью find_program(). Если найдено, то дальнейшие попытки поиска не выполняются. Пользователь отвечает за то, чтобы первым в пути был нужный путь в случае установки нескольких 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
  • 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

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

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 (компиляция во время выполнения). Это библиотека только для совместного использования.

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

  • 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 Tools Extension. Это библиотека только для совместного использования.

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

  • CUDA::nvToolsExt

nvtx3

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

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

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

  • CUDA::nvtx3

OpenCL

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

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

  • CUDA::OpenCL

cuLIBOS

Библиотека cuLIBOS — это библиотека абстракции потоков на уровне back-end, которая предназначена только для статического использования. 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).

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 Runtime 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–2023 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.26/module/FindCUDAToolkit.html

Spec-Zone.ru

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