Вычислительно- и memory-bound задачи
Читайте модель «крыша — пол», чтобы планировать исправления.
«Вычислительно- и memory-bound задачи» — бесплатный урок CUDA Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CUDA Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CUDA Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Two Kinds of Limit
Every kernel hits one of two walls. It is either compute-bound, limited by math, or memory-bound, limited by data movement. ⚖️
Compute-Bound, Defined
A compute-bound kernel keeps the math units busy and rarely waits on memory. Its limit is raw arithmetic throughput.
Memory-Bound, Defined
A memory-bound kernel spends its time waiting for data. The cores sit idle while bytes crawl in from global memory.
Arithmetic Intensity
The key ratio is arithmetic intensity: math operations done per byte loaded. High intensity leans compute, low leans memory.
The Roofline Picture
On a roofline plot, low-intensity kernels hit the sloped memory ceiling, while high-intensity ones hit the flat compute ceiling.
Why Diagnosis Matters
Fixing the wrong wall wastes effort. Adding math to a memory-bound kernel changes nothing; you must cut data traffic instead.
Fixing Memory-Bound Kernels
To speed a memory-bound kernel, coalesce accesses, reuse data in shared memory, and cache values to read less.
Fixing Compute-Bound Kernels
For compute-bound work, raise parallelism, use faster math, or reach for tensor cores to push past the math ceiling.
Most Kernels Are Memory-Bound
In practice, the majority of CUDA kernels are memory-bound. Bandwidth, not arithmetic, is usually the scarce resource.
Let the Profiler Decide
Do not guess the wall. The roofline in Nsight Compute places your kernel under the correct ceiling for you.
A Simple Mental Test
Ask one question: are the cores or the memory pipes closer to peak? Whichever is saturated names your bound.
Quick Check
A kernel has very low arithmetic intensity.
Recap
Diagnose the wall first: memory-bound kernels need less traffic, compute-bound ones need more math. The roofline tells you which. 👏
Часто задаваемые вопросы
Урок «Вычислительно- и memory-bound задачи» бесплатный?
Да — полный текст урока «Вычислительно- и memory-bound задачи» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CUDA Academy, подпишись на CoddyKit PRO. Курс CUDA Academy содержит 4 уроков всего.
Чему я научусь в уроке «Вычислительно- и memory-bound задачи»?
Читайте модель «крыша — пол», чтобы планировать исправления. Ты практикуешь CUDA Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CUDA Academy?
Предыдущий опыт не требуется. CUDA Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Вычислительно- и memory-bound задачи»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CUDA Academy?
Да. Каждый урок CUDA Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Представление временной шкалы в Nsight Systems
- Метрики ядер в Nsight Compute
- Вычислительно- и memory-bound задачи
- Аннотирование кода с помощью NVTX