Компромиссы глобальной памяти
Большая и медленная память, доступная каждому потоку.
«Компромиссы глобальной памяти» — бесплатный урок CUDA Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CUDA Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CUDA Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
The Biggest Space You Have
Global memory is the GPU's main DRAM, often many gigabytes. It is where your big input and output arrays naturally live during a kernel.
Visible to Everyone
Every thread in every block can read and write global memory. That shared visibility is exactly why you copy your data there before launching. 🌍
You Allocate It with cudaMalloc
You reserve global memory from the host with cudaMalloc, which hands you a device pointer to that DRAM region.
float *d_a;
cudaMalloc(&d_a, n * sizeof(float));Large but Slow
The catch is latency. A single global memory read can cost hundreds of clock cycles, far more than a register access ever would.
Bandwidth Is the Real Limit
Many kernels are bound not by math but by how fast bytes flow from DRAM. We call these memory-bound kernels.
Hiding Latency with Threads
The GPU hides slow reads by switching to other ready warps while one waits. This latency hiding is why having many threads matters so much.
It Persists Across Launches
Data in global memory stays put between kernel launches until you free it. You can run several kernels over the same buffers.
Cached by L2
A unified L2 cache sits in front of global memory for the whole GPU. Reused addresses can be served from it instead of slow DRAM.
Access Pattern Decides Speed
How threads map to addresses hugely affects throughput. Neighboring threads touching neighboring addresses is what later lessons call coalescing.
Minimize the Trips
The core strategy is simple: touch global memory as few times as possible. Read once, reuse on-chip, then write once.
Free What You Allocate
Because global memory is a finite resource, release it with cudaFree when you are done to avoid leaking device memory.
cudaFree(d_a);Quick Check
Which statement best captures the tradeoff of global memory?
Recap: Big, Shared, Slow
You now know global memory is the GPU's large, all-visible DRAM that trades capacity for high latency. Touch it rarely and reuse data on-chip. 🚀
Часто задаваемые вопросы
Урок «Компромиссы глобальной памяти» бесплатный?
Да — полный текст урока «Компромиссы глобальной памяти» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CUDA Academy, подпишись на CoddyKit PRO. Курс CUDA Academy содержит 4 уроков всего.
Чему я научусь в уроке «Компромиссы глобальной памяти»?
Большая и медленная память, доступная каждому потоку. Ты практикуешь CUDA Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CUDA Academy?
Предыдущий опыт не требуется. CUDA Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Компромиссы глобальной памяти»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CUDA Academy?
Да. Каждый урок CUDA Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Регистры и локальная память
- Компромиссы глобальной памяти
- Константная память и её кэш
- Мысленная модель иерархии