Поиск
- wikiCUDA graphs
# CUDA graphs ## Определение Техника записи последовательности CUDA операций в граф, который затем может быть запущен одним вызовом, устраняя накладные расходы…
- answerКак работают CUDA streams и как они помогают оверлапить compute и communication?
…Избегайте синхронизаций между [[Вики/CUDA streams\|streams]] без необходимости (`cudaStreamSynchronize`, `cudaDeviceSynchronize`). 4. Используйте `cudaStreamWaitEvent` для создания зависимостей между [[Вики/CUDA…
- wikiCUDA API calls latency
# CUDA API calls latency ## Определение Задержка, возникающая при вызове функций CUDA API, например cudaLaunchKernel, которая может составлять десятки микросекунд. Эта…
- wikicudaLaunchCooperativeKernel
# cudaLaunchCooperativeKernel ## Определение Функция CUDA для запуска кооперативных ядер, работающих в рамках grid_group. Требуется для синхронизации между блоками в некоторых…
- wikiCUDA streams
…Как работают CUDA streams и как они помогают оверлапить compute и communication|308. Как работают CUDA streams и как они…
- wikiCUDA API
…Вызовы CUDA API могут создавать накладные расходы из-за необходимости передачи команд драйверу. ## Где встречается - [[845. Как работают CUDA graphs…
- practiceТЕХНИЧЕСКОЕ ЗАДАНИЕ: Написать pinned memory аллокатор
…Связанные вопросы из базы знаний | Вопрос | Тема | |--------|------| | 12 | CUDA memory hierarchy (global, shared, pinned) | | 45 | `cudaMallocHost` vs `cudaHostAlloc` — флаги и…
- wikiCUDA events
…Как работают CUDA streams и как они помогают оверлапить compute и communication|308. Как работают CUDA streams и как они…
- wikiPYTORCH_CUDA_ALLOC_CONF
# PYTORCH_CUDA_ALLOC_CONF ## Определение Переменная окружения для настройки аллокатора CUDA в PyTorch. Позволяет управлять стратегией выделения памяти, фрагментацией и…
- practiceТЕХНИЧЕСКОЕ ЗАДАНИЕ: Настроить CUDA graphs для коротких запросов
…Реализация CUDA graphs (2–3 часа) [[Вики/Действия\|Действия]] 1. [[Вики/Понимание ограничений CUDA graphs\|Понимание ограничений CUDA graphs]] - Граф…
- wikiCUDA kernel
…Написание эффективных CUDA kernels является ключевым для оптимизации производительности моделей, например, для реализации selective scan в Mamba. ## Где встречается - [[Практика…
- wikiCUDA 11.8
# CUDA 11.8 ## Определение CUDA 11.8 — версия платформы CUDA, рекомендуемая для совместимости библиотек flash-attn и PyTorch. ## Где встречается…
- answerКак дебажить memory fragmentation в LLM сервере?
…before = torch.cuda.memory_allocated() torch.cuda.empty_cache() print(f"Freed {before - torch.cuda.memory_allocated()} bytes") ``` ### 6.4…
- answerКак работают CUDA graphs и когда их использовать?
…Как работают CUDA graphs и когда их использовать? ## Краткий тезис **[[Вики/CUDA\|CUDA]] [[Вики/Graphs\|graphs]]** — это механизм записи последовательности…
- wikicudaMallocAsync
# cudaMallocAsync ## Определение Асинхронный аллокатор CUDA (доступен с версии 11.4), который автоматически дефрагментирует память и позволяет выделять до 99% видеопамяти…
- wikiCUDA cores
…В отличие от Tensor Cores, которые специализируются на матричных операциях, CUDA cores используются для общих вычислений, включая деквантование и загрузку…
- wikiCUDA Samples simpleP2P
# CUDA Samples simpleP2P ## Определение Пример из набора CUDA Samples, демонстрирующий проверку peer-to-peer доступа между GPU. Позволяет протестировать возможность…
- wikiCUDA event
…Позволяет засечь время с помощью torch.cuda.Event. ## Где встречается - [[707. Как работает asynchronous execution на Hopper (copy engine vs…
- answerКак вы читаете профиль Nsight Systems для поиска bottlenecks в vLLM?
…частые вызовы CUDA API из CPU (например, `cudaSetDevice`, `cudaStreamSynchronize`). - Признаки: на дорожке CUDA API много вызовов с заметной длительностью (десятки…
- wikiCustom CUDA kernel
# Custom CUDA kernel ## Определение Пользовательское ядро CUDA, реализующее attention для работы с разрозненными физическими блоками памяти, оптимизированное для paged attention…
- wikiCUDA API peer access
# CUDA API peer access ## Определение API для проверки и включения прямого доступа между GPU (peer-to-peer), позволяющий GPU напрямую…
- wikinvcc
# nvcc ## Определение nvcc — компилятор CUDA C++ из состава CUDA Toolkit, используемый для компиляции .cu файлов в исполняемый код для GPU…
- wikicudaFree
# cudaFree ## Определение Системный вызов CUDA для освобождения памяти на GPU. Трассируется профилировщиками для анализа фрагментации памяти. ## Где встречается - [[846. Как…
- practiceТЕХНИЧЕСКОЕ ЗАДАНИЕ: Реализовать selective scan (Mamba)
…Научиться запускать кастомный [[Вики/CUDA kernel\|CUDA kernel]] через [[Вики/PyTorch\|PyTorch]], верифицировать [[Вики/Faithfulness\|корректность]] на синтетических данных и…
- wikicudaMalloc
# cudaMalloc ## Определение Системный вызов CUDA для выделения памяти на GPU. Частые вызовы из-за фрагментации увеличивают latency инференса. ## Где встречается…
- wikicuda-memcheck
# cuda-memcheck ## Определение Инструмент для проверки ошибок доступа к памяти в CUDA-программах. Помогает выявлять выходы за границы массивов и…
- answerКак вы управляете memory fragmentation при длительном раннинге LLM сервера?
…В контексте [[Вики/GPU\|GPU]] ([[Вики/CUDA\|CUDA]]) аллокатор по умолчанию ([[Вики/cudaMalloc\|cudaMalloc]]) выделяет [[Вики/Memory\|память]] большими пулами…
- wikigrid_group
# grid_group ## Определение Группа всех потоков в гриде CUDA, создаваемая через cudaLaunchCooperativeKernel. ## Где встречается - [[712. Что такое Cooperative Groups в…
- answerЧто такое CUDA graphs и как они ускоряют LLM инференс?
…обычный инференс vs CUDA graphs | Характеристика | Без CUDA graphs | С CUDA graphs | |----------------|-----------------|---------------| | Запуск ядер | Каждое ядро запускается отдельно через CPU…
- wikicuda_malloc_count
# cuda_malloc_count ## Определение Метрика количества вызовов cudaMalloc в минуту. Рост значения свидетельствует о фрагментации памяти на GPU, что увеличивает…
- wikiasync CUDA
# async CUDA ## Определение Асинхронные CUDA-операции, позволяющие перекрывать выполнение на CPU и GPU для повышения утилизации. ## Где встречается - [[305. Как…
- wikiGraph instantiation
# Graph instantiation ## Определение Фаза оптимизации захваченного CUDA-графа, в ходе которой выполняется компиляция и создание готового к многократному запуску объекта…
- wikiGraph replay
# Graph replay ## Определение Многократный запуск ранее захваченного и оптимизированного CUDA-графа с минимальными накладными расходами CPU, что даёт прирост производительности…
- wikiCUDA context
# CUDA context ## Определение Контекст выполнения CUDA, который содержит состояние драйвера, таблицы страниц и другие ресурсы, необходимые для работы с GPU…
- wikiGraph caching
# Graph caching ## Определение Предварительная запись CUDA-графов для различных длин последовательностей с возможностью быстрого переключения между ними, что ускоряет выполнение…
- wikitorch.cuda.memory_snapshot
# torch.cuda.memory_snapshot ## Определение Метод PyTorch, возвращающий снимок всех текущих выделенных блоков CUDA-памяти в виде списка словарей. Позволяет…
- wikiCUDA Execution Provider
# CUDA Execution Provider ## Определение Бэкенд для ONNX Runtime, обеспечивающий выполнение моделей на NVIDIA GPU с использованием cuBLAS и Tensor Cores…
- wikiCooperative Groups
# Cooperative Groups ## Определение Расширение CUDA, предоставляющее гибкие механизмы синхронизации и группировки потоков на уровнях thread, warp, block и grid; используется…
- wikibank conflicts
# bank conflicts ## Определение Ситуация в CUDA shared memory, когда несколько потоков одного warp одновременно обращаются к разным адресам, принадлежащим одному…
- answerКак работает asynchronous execution на Hopper (copy engine vs compute)?
…Пример кода: ```cpp cudaStream_t stream1, stream2; cudaStreamCreate(&stream1); cudaStreamCreate(&stream2); // Асинхронное копирование H2D в stream1 cudaMemcpyAsync(d_data, h…
- practiceТЕХНИЧЕСКОЕ ЗАДАНИЕ: Профилировать memory fragmentation на GPU
…Цель задачи Научиться программно измерять фрагментацию памяти CUDA в PyTorch с помощью `torch.cuda.memory_stats()`. Выявить источники фрагментации в…
- wikiCUDA
# CUDA ## Определение CUDA (Compute Unified Device Architecture) — платформа параллельных вычислений NVIDIA для программирования GPU, применяемая для ускорения инференса LLM и…
- wikiPinned memory
# Pinned memory ## Определение Закреплённая память на хосте с фиксированными физическими адресами, необходимая для асинхронного копирования через DMA; без неё cudaMemcpyAsync…
- wikicuda_memtest
# cuda_memtest ## Определение Инструмент для стресс-тестирования GPU памяти. Используется для проверки стабильности и выявления дефектов памяти. ## Где встречается - [[205…
- wikiMemory pool
# Memory pool ## Определение Заранее выделенная область памяти для переиспользования тензоров, снижающая накладные расходы на аллокацию в CUDA graphs. ## Где встречается…
- wikincu
# ncu ## Определение Инструмент NVIDIA Nsight Compute для детального анализа производительности CUDA-ядер: occupancy, warp stall, инструкции. Позволяет профилировать отдельные ядра…
- wikicoalesced_group
# coalesced_group ## Определение В CUDA — группа активных потоков, выполняющихся последовательно в пределах варпа; используется для эффективной синхронизации в Cooperative Groups…
- wikiwarp_group
…Что такое Cooperative Groups в CUDA и как использовать для attention|712. Что такое Cooperative Groups в CUDA и как…
- wikithread_block
# thread_block ## Определение Объект в CUDA Cooperative Groups, представляющий все потоки блока, используемый для синхронизации и коллективных операций внутри блока…
- wikitiled_partition
# tiled_partition ## Определение В CUDA Cooperative Groups — механизм динамического разбиения блока потоков на подгруппы, позволяющий гибко управлять синхронизацией и взаимодействием…