Spec-Zone.ru › CMake 3.30

FindCUDAToolkit

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

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

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

Поиск

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

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

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

  4. Если переменная окружения CUDA_PATH определена, она будет проверена на наличие nvcc.
  5. Проверяется путь пользователя на наличие nvcc с помощью find_program(). Если он найден, дальнейшие проверки не проводятся. Пользователь несет ответственность за обеспечение того, чтобы первым в пути был нужный путь, если установлено несколько CUDA Toolkit.
  6. В системах Unix, если существует символическая ссылка /usr/local/cuda, она используется. Дальнейшие проверки не проводятся. Для платформы Windows нет стандартного расположения символической ссылки.
  7. Проверяются платформенно-зависимые стандартные места установки. Если найдено ровно один кандидат, он используется. Проверяются следующие стандартные места установки 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
  • nvJitLink
  • nvFatBin
  • 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 (компиляция во время выполнения).

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

  • 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. Это только библиотека общего доступа.

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

  • CUDA::nvml

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

Spec-Zone.ru

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