GPGPU Russia


Гео и язык канала: Весь мир, Русский
Категория: Технологии


Канал по GPGPU

Связанные каналы

Гео и язык канала
Весь мир, Русский
Категория
Технологии
Статистика
Фильтр публикаций




Репост из: Записки CPU designer'a
Уже влезли в долги, чтобы наскрести на подписку ChatGPT за 500$?

Пока убеждаете друзей занять вам денег, чтобы за две недели навайбить убийцу Nvidia, самое время разобраться, что же такое Cerebras и почему именно их железо внезапно оказалось настолько интересным для LLM-инференса.

Забавно, что изначально Cerebras в первую очередь пытались решить задачу обучения нейросетей.

И, если верить довольно жёсткому разбору Irrational Analysis, именно с training всё получилось не очень хорошо. Архитектура получилась сильно перекошенной: внутри самого WSE пропускная способность огромная, но канал обмена с внешней памятью и другими устройствами относительно узкий. Поэтому для обучения Cerebras приходилось дополнять WSE внешними системами MemoryX и SwarmX, а ограниченный внешний I/O становился одним из главных bottleneck'ов.

А что вообще такое WSE, MemoryX и SwarmX и как всё это устроено, читайте в отчёте Irrational Analysis.

А вот с инференсом всё оказалось гораздо интереснее.

Cerebras довольно самобытная архитектура. Вместо относительно классической связки GPU с расположенной рядом HBM они буквально делают процессор размером почти с целую кремниевую пластину, Wafer-Scale Engine. WSE-3 содержит около 900 тысяч маленьких ядер, у каждого из которых есть локальный SRAM и простые SIMD-блоки. В сумме получается примерно 44 GB SRAM прямо на wafer.

И вот для inference это оказалось очень интересной комбинацией. Обычный GPU при генерации токенов во многом упирается в необходимость постоянно читать веса модели из HBM.

У Cerebras веса и KV-cache можно держать прямо в SRAM рядом с вычислительными ядрами, а слои модели распределять по WSE. Если одного WSE не хватает, модель распределяется между несколькими. Каждый хранит свою часть модели и передаёт следующему только промежуточный результат вычислений, а не сами веса. Благодаря этому веса остаются в быстром локальном SRAM, а между WSE нужно передавать сравнительно небольшой объём данных. Отсюда и очень высокая скорость генерации.

То есть архитектура, которая довольно странно выглядела как конкурент Nvidia в training, неожиданно нашла свою сильную сторону именно там, где сегодня особенно ценится latency: ультрабыстрый LLM inference.

Но silver bullet из Cerebras всё равно не получился. Вопрос, как оптимальнее всего строить железо для LLM inference, сегодня всё ещё открыт. Одна из главных проблем Cerebras в том, что объём SRAM нельзя наращивать так же легко, как внешнюю память, а большие модели и длинный контекст требуют всё больше памяти. В итоге приходится использовать больше WSE, и впечатляющая скорость начинает обходиться всё дороже с точки зрения масштабирования всей системы. Сам отчёт отдельно отмечает, что KV-cache и веса конкурируют за один и тот же ограниченный SRAM, а с ростом размера модели экономика такого подхода становится всё сложнее.

Но сам инженерный подход всё равно совершенно безумный и очень интересный.

Кстати, если вы забыли, какого размера «чип» у Cerebras, приложу фотку в комментариях.

P.S. Пост чуть больше чем полностью построен на отчёте Irrational Analysis. Обязательно ознакомьтесь с ним, невероятно увлекательный и познавательный разбор.


Для тех, кто не едет в Москву вкусно покушать и выиграть подарки послушать крутые доклады, 24 сентября в 19:00 в ПОМИ будет крутая лекция (кстати, бесплатно, но зато без шашлыка): Автоматическое построение PBR текстур для фотограмметрических моделей. Приходите, будет интересно. Я бы тоже пришёл, но уже задействован в SmartData. А кто потом захочет посмотреть записи, приходите сюда в комменты и задавайте вопросы!


23 и 24 сентября в Москве и онлайн будет проходить конференция SmartData. В этом году это не оффтоп для нашего канала, потому что SmartData фактически объединилась с конференцией IML, и там будут прикольные доклады про инференс нейросетей на GPU, например, такие:
* LLM под нагрузкой: как измерять производительность self-hosted моделей;
* LLM Ops: оптимизация инференса и ML-serving в реальном production-кластере.

PS: Как обычно, на конференциях JUG кормят не хуже, чем в all inclusive отелях Турции, что является дополнительным стимулом выпросить у работодателя оффлайн-билет на конфу.

PPS: На правах участника ПК мне, как обычно, выдали промо-код на скидку, но его нельзя публиковать, а в личке его опять никто не попросит, так что всё тлён.

#GPU #симпозиум




Теперь это и для меня самое запоминающееся место.

Исходник драйвера

#Linux #offtopic


Поздравляем всех программистов с Днём Программиста! 🎉

А всех непрограммистов с Днём Танкиста 🎉


Коллеги из YADRO запускают email-проект о работе с легаси-кодом на C++. Среди авторов — Константин Владимиров, Андрей Карпов, Антон Полухин. Расскажут про классы управления ресурсами, настройку аллокатора общей памяти в PostgreSQL, модернизацию билд-систем и языка в целом.

За верные ответы на задачи от разработчиков дарят подарки: карьерную консультацию, книги от авторов писем с их автографами и мерч. Первое письмо придет 15 сентября, затем — по одному письму в неделю. Всего получите семь материалов. Оставляйте email-адрес на лендинге проекта, чтобы не пропустить начало.

#мненезаплатили


Очередной сезон курса по вычислениям на видеокартах от Николая Полярного. Бесплатно, без регистрации и смс (нет, если хотите не в записи, а очно, то с регистрацией).
Для тех, кто в этом году решил научиться эффективно программировать видеокарты, я думаю, это лучшее, что есть.

Занятия будут проходить по вторникам с 18:00 в Мраморном зале, ПОМИ РАН, наб. реки Фонтанки, 27, Санкт-Петербург. Для тех, кто не в Питере, должны быть записи, по идее.

889 0 14 1 16

Сегодня, в день знаний, по традиции, публикуем обучающие материалы — введение в технологию.

Для изучения основ графики предлагаем серию статей A trip through the Graphics Pipeline 2011
Несмотря на то, что прошло уже много лет, основные фундаментальные принципы почти не изменились: базовая модель конвейера, базовая архитектура работы памяти GPU, базовые принципы работы с текстурами и введение в оптимизацию. Это можно читать смело.

А для изучения современных технологий рекомендуем регулярно обновляемый портал Vulkan Tutorial.


Nvidia выпустила CUDA MCP Server: https://api.copilot.nsight.ngc.nvidia.com/mcp/cuda-docs , по которому агент может получить документацию и примеры кода из первых рук.


Nvidia опубликовала подробную документацию к своему центральному процессору для ИИ-датацентров.
88 ядер (их назвали NVIDIA Custom Olympus) на базе архитектуры ARM v 9.2
Пропускная способность памяти до 1.2 ТБ/с, это больше, чем на любой потребительской видеокарты, кроме 5090.
Потребление до 450 Вт, как на 4090.
Само собой, наличие NVLink, через который идёт связь с GPU.
https://nvdam.widen.net/s/nmw5vblpqd/nvidia_vera_cpu_architecture_whitepaper


presentation-self-hosted-agents.pdf
330.0Кб
Запись и презентация моего выступления с AI Dev Meetup:
Youtube

VK


В комментах к этому посту можно задавать вопросы после митапа.


Меня внезапно зазвали на AI Dev Meetup 'https://t.me/c/3967452700/1/598' rel='nofollow'>поговорить про локальных ИИ-агентов и потыкать их на практике. Поговорим, кому и зачем это может быть нужно, посмотрим бесплатные альтернативы и попробуем их на живой задаче из нашего декомпилятора.

Пойду куплю себе микрофон по такому случаю.

PS: Интересно, что телега не хочет показывать preview ссылки с таймпада, а мах показывает.

PPS: Если вы уже опытный, так сказать, вайб-кодер, то вряд ли услышите что-то новое для себя. Встреча ориентирована на новичков.




Пост о том, что такое CUDA Tile, который зарелизили в CUDA 13.3:
https://developer.nvidia.com/blog/develop-high-performance-gpu-kernels-in-cpp-with-nvidia-cuda-tile/

Если кратко, то они ввели новый вид кернелов: __tile_global__, в которых вообще не указываешь работу для отдельных потоков, а пишешь кода для обработки на уровне тайлов, а компилятор уже сам определяет, как там потоки работают между собой.
Для этого есть пространство имён cuda::tiles.
В нём живут:
tensor_span (аналог std::mdspan), его растаскивают на весь буфер при помощи extents{m, n},
и обёртка partition_view, которая нарезает буфер на те самые тайлы при помощи функции load().

Получается, примерно, такой кернел для сложения массивов:
#include "cuda_tile.h"
__tile_global__ void vectorAdd(float* a, float* b, float* out, size_t n) {
 
/* set up the namespace */
  namespace ct = cuda::tiles;
  using namespace ct::literals;
 
/* attach shape to raw pointers */
  auto aSpan = ct::tensor_span{a,   ct::extents{n}};
  auto bSpan = ct::tensor_span{b,   ct::extents{n}};
  auto oSpan = ct::tensor_span{out, ct::extents{n}};
 
/* partition each span into tiles of size 8 */
  auto aView = ct::partition_view{aSpan, ct::shape{8_ic}};
  auto bView = ct::partition_view{bSpan, ct::shape{8_ic}};
  auto oView = ct::partition_view{oSpan, ct::shape{8_ic}};
 
/* load the a and b tiles from global memory */
  int bx = ct::bid().x;
  auto aTile = aView.load(bx);          // load bx-th tile
  auto bTile = bView.load(bx);
 
/* add the two tiles together, elementwise */
  auto oTile = aTile + bTile;
 
/* store the result tile to the output partition. */
  oView.store(oTile, bx);
}

Конкретно для такой задачи он намного сложнее обычного кода, но в нём не надо думать о переполнении памяти, гонках и так далее.


В CUDA 13.3 Добавили нативную поддержку питона. Надеюсь, теперь, наконец, не будет отваливаться Nsight как это обычно бывает с pycuda 🎮

CUDA 13.3 получился очень насыщенным:
* Поддержка Python;
* Релиз CUDA Tile C++;
* CompileIQ — фреймворк автотюна кернелов, обещают, что ускорили некоторые аж на 15%;
* Полная поддержка С++ 23.

https://developer.nvidia.com/blog/nvidia-cuda-13-3-enhances-gpu-development-with-tile-programming-in-c-compiler-autotuning-and-python-updates/

#CUDA #GPGPU #Python




Alibaba выпустила пост про новую модель Qwen 3.7-Max: https://qwen.ai/blog?id=qwen3.7

Интересно посмотреть на раздел "Self-Evolving in the Wild". В нём они хвастаются, что с помощью этой модели ускорили референсную реализацию multi-head attention в SGLang в десять раз. Там же перечислены основные оптимизации, до которых додумалась нейронка.

Показано 20 последних публикаций.