Глоссарий ИИ
Полный словарь искусственного интеллекта
Kernel
Функция CUDA, выполняемая на GPU большим количеством потоков одновременно. Ядро запускается с CPU и выполняется параллельно на устройстве GPU с определённой конфигурацией сетки и блоков.
Thread
Базовая единица выполнения в CUDA, представляющая одну последовательность инструкций, выполняемую на ядре процессора GPU. Потоки организованы в блоки и выполняют один и тот же код на разных данных.
Block
Коллекция потоков, которые могут обмениваться данными через разделяемую память и синхронизировать своё выполнение. Блоки организованы в сетку и выполняются на одном Streaming Multiprocessor (SM).
Grid
Набор блоков потоков, которые составляют полную конфигурацию выполнения ядра CUDA. Сетка представляет собой высшую иерархическую структуру организации потоков в CUDA.
Warp
Группа из 32 потоков, которые выполняются одновременно в режиме SIMT (Single Instruction Multiple Thread) на SM CUDA. Все потоки варпа выполняют одну и ту же инструкцию в одном и том же цикле тактовой частоты.
Shared Memory
Быстрая память небольшого размера, доступная всем потокам одного блока, позволяющая эффективную коммуникацию между потоками. Разделяемая память намного быстрее глобальной памяти, но ограничена в размере на блок.
Global Memory
Основная память, доступная всем потокам и процессору, с большой ёмкостью, но высокой задержкой. Глобальная память сохраняется между запусками ядер и является основной областью хранения данных.
CUDA Runtime API
Интерфейс программирования высокого уровня, упрощающий разработку приложений CUDA путём автоматического управления инициализацией, загрузкой модулей и управлением памятью. Он предоставляет такие функции, как cudaMalloc, cudaMemcpy и cudaLaunchKernel.
Поток
Последовательность операций, выполняемых на GPU в определенном порядке, позволяющая достичь параллелизма между операциями вычислений и передачами памяти. Потоки позволяют одновременное выполнение ядер и перекрытие передач.
Асинхронное выполнение
Режим выполнения CUDA, в котором операции немедленно возвращают управление CPU без ожидания их завершения на GPU. Асинхронное выполнение позволяет перекрывать вычисления и передачи для максимального использования GPU.
Текстурная память
Память, оптимизированная для доступа с 2D или 3D пространственной локальностью, с автоматическим кешированием данных. Текстурная память особенно эффективна для обработки изображений и доступа с низкой когерентностью.
Константная память
Память только для чтения, оптимизированная для широковещательного доступа, где все потоки одновременно читают одно и то же значение. Она особенно эффективна, когда все потоки в варпе обращаются к одному и тому же адресу.
Заполнение
Мера соотношения между количеством активных варпов и максимальным количеством варпов, которые могут резидентно находиться на Streaming Multiprocessor. Высокая заполненность не обязательно гарантирует лучшие показатели производительности, но помогает маскировать латентность.
Атомарные операции
Операции чтения-модификации-записи, выполняемые атомарно в глобальной или разделяемой памяти, гарантирующие отсутствие конфликтов между потоками. Они существенны для редукций и конкурентных обновлений данных.
cuBLAS
Библиотека CUDA Basic Linear Algebra Subroutines, предоставляющая оптимизированные для GPU реализации основных операций линейной алгебры. cuBLAS значительно ускоряет матричные и векторные вычисления на архитектурах NVIDIA.
cuFFT
Библиотека CUDA Fast Fourier Transform, предлагающая высокопроизводительные реализации GPU для дискретных преобразований Фурье. cuFFT поддерживает 1D, 2D и 3D преобразования с различными точностями и размерами.