Об этом проекте

NVIDIA CUDA Samples — это официальный репозиторий примеров программ, демонстрирующих функции и возможности CUDA Toolkit. Примеры служат учебным и справочным материалом для разработчиков, работающих с GPU NVIDIA, и охватывают широкий спектр тем — от базовых концепций CUDA до продвинутых методов GPU-программирования. Репозиторий организован в два основных раздела: примеры на C++ и примеры на Python. Примеры на C++ разделены на десять групп: Introduction (базовые концепции CUDA и runtime API), Utilities (запросы возможностей устройств и измерения пропускной способности), Concepts and Techniques (распространённые подходы к решению задач), CUDA Features (Cooperative Groups, Dynamic Parallelism, CUDA Graphs), CUDA Libraries (NPP, NVJPEG, cuBLAS, cuFFT, cuSPARSE, cuSOLVER, cuRAND), Domain Specific (графика, финансы, обработка изображений), Performance (методы оптимизации), libNVVM (использование NVVM IR), Platform Specific (Tegra, cuDLA, NvMedia, NvSci, OpenGL ES) и CUDA Tile (CUDA Tile C++). Примеры на Python используют CUDA Python с cuda.core для управления устройствами, программами, запусками и памятью, а также взаимодействие с NumPy, CuPy или фреймворками. Они организованы в разделы Getting Started, Core Concepts, Framework Interop (PyTorch и TensorFlow), Distributed Computing и Utilities. Система сборки использует CMake и поддерживает Linux, Windows, кросс-компиляцию для Tegra, QNX и QNX Safety. Примеры могут быть собраны для всех поддерживаемых архитектур GPU или для конкретных архитектур. Репозиторий включает скрипт запуска тестов (run_tests.py), который может выполнять все примеры в качестве проверки работоспособности, с настраиваемыми аргументами, параллельным выполнением и опциями пропуска примеров, требующих графического отображения. Некоторые примеры имеют сторонние зависимости, включая FreeImage, MPI, DirectX и DirectX 12. Система установки организует собранные примеры в структурированную структуру каталогов на основе целевой архитектуры, ОС и типа сборки. Примеры не предназначены для проверки CUDA, а служат практическими демонстрациями паттернов и методов GPU-программирования.