<НА ГЛАВНУЮ

Интервью: Стивен Джонс из NVIDIA о программировании на основе тайлов

Мнения Стивена Джонса из NVIDIA о развитии ИИ и изменениях в CUDA.

Переход к абстракции на основе тайлов

В течение многих лет программирование на CUDA вращалось вокруг иерархии сеток, блоков и потоков. С последними обновлениями NVIDIA представляет уровень абстракции: CUDA Tile.

По словам Джонса, этот новый подход позволяет разработчикам программировать непосредственно под массивы и тензоры, а не управлять отдельными потоками. "Это расширяет существующий CUDA," объяснил Джонс. "Что мы сделали, так это добавили способ говорить о и программировать непосредственно под массивы, тензоры, векторы данных… позволяя языку и компилятору видеть, с какими высокоуровневыми данными вы работаете, открывает целую область новых оптимизаций".

Этот переход частично является реакцией на быстрое развитие аппаратного обеспечения. По мере того как Tensor Cores становятся больше и плотнее в борьбе со снижением закона Мура, сопоставление кода с силиконовой структурой становится все более сложным.

  • Защита от будущего: Джонс отметил, что, выражая программы в виде векторных операций (например, Тензор A умножить на Тензор B), компилятор берет на себя сложную задачу сопоставления данных с конкретным поколением оборудования.
  • Стабильность: Это гарантирует, что структура программы остается стабильной даже при изменениях в архитектуре GPU от Ampere к Hopper и Blackwell.

Python в первую очередь, но не только Python

Признавая, что Python стал лингва франка Искусственного Интеллекта, NVIDIA запустила поддержку CUDA Tile с приоритетом для Python. "Python — это язык ИИ," отметил Джонс, добавляя, что представление на основе массивов "намного естественнее для программистов на Python", привыкших к NumPy.

Тем не менее, приверженцы производительности могут не переживать. Поддержка C++ появится в следующем году, что подтверждает философию NVIDIA о том, что разработчики должны иметь возможность ускорять свой код независимо от выбранного языка.

"Зеленые контексты" и снижение задержки

Для инженеров, развертывающих большие языковые модели (LLM) в production, задержка и джиттер являются критическими проблемами. Джонс выделил новую функцию, называемую Зелеными контекстами, которая позволяет точно разделять GPU.

"Зеленые контексты позволяют вам разделить GPU... на разные секции," сказал Джонс. Это позволяет разработчикам выделить конкретные доли GPU для разных задач, таких как одновременное выполнение операций предварительного заполнения и декодирования, избегая конкуренции за ресурсы. Этот микровыбор в рамках одного GPU напоминает дисагрегацию, наблюдаемую на уровне дата-центров.

Никаких черных ящиков: важность инструментов

Одна из распространенных тревог касательно высокоуровневых абстракций — это потеря контроля. Джонс, основываясь на своем опыте использования CUDA в аэрокосмической отрасли, подчеркнул, что инструменты NVIDIA никогда не будут черными ящиками.

"Я действительно считаю, что самой важной частью CUDA являются инструменты для разработчиков," подтвердил Джонс. Он заверил разработчиков, что даже при использовании абстракций на основе тайлов инструменты, такие как Nsight Compute, позволят инспектировать до отдельных машинных инструкций и регистров. "Вы должны иметь возможность настраивать, отлаживать и оптимизировать... это не может быть черным ящиком," добавил он.

Ускорение времени до результата

В конечном счете, цель этих обновлений — продуктивность. Джонс описал задачу как "смещение влево" графика производительности, позволяя разработчикам достигать 80% потенциальной производительности за короткое время.

"Если вы можете выйти на рынок [с] 80% производительности за неделю вместо месяца… тогда вы тратите остальное время на оптимизацию," объяснил Джонс. Важно, что эта простота использования не приводит к потере мощности; новая модель все еще предоставляет путь к 100% пиковой производительности, которую может предложить кремний.

Согласно тому, как алгоритмы ИИ и научные вычисления сближаются, NVIDIA позиционирует CUDA как гибкую платформу, адаптирующуюся как к потребностям разработчиков на Python, так и к HPC-исследователям. С поддержкой от Ampere до предстоящих архитектур Blackwell и Rubin, эти обновления обещают упростить разработку по всей экосистеме GPU.

🇬🇧

Switch Language

Read this article in English

Switch to English