Поиск

  • 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 — механизм динамического разбиения блока потоков на подгруппы, позволяющий гибко управлять синхронизацией и взаимодействием…