Hacker News Digest

Тег: #high-performance-computing

Постов: 5

Cache-friendly, low-memory Lanczos algorithm in Rust (lukefleed.xyz)

Стандартный алгоритм Ланцоса для вычисления матричных функций требует значительных ресурсов памяти: хранение n×k базисной матрицы, которая растёт с каждой итерацией. Для задачи с 500 000 переменными и 1000 итерациями это около 4 ГБ только для базиса. В статье представлен двухпроходной вариант алгоритма, требующий всего O(n) памяти ценой удвоения числа матрично-векторных произведений. При грамотной реализации этот подход не только экономит память, но и может работать быстрее для определённых задач.

Автор подробно описывает реализацию на Rust, включая шаги рекуррентного вычисления, итератор для управления состоянием, первый проход (вычисление разложения) и второй проход (восстановление решения). Интересно, что теоретические ожидания производительности не всегда подтверждаются на практике, особенно для средних по размеру матриц. Весь код доступен на GitHub, а технический отчёт с доказательствами и дополнительными экспериментами можно скачать отдельно.

by lukefleed • 11 ноября 2025 г. в 17:08 • 115 points

ОригиналHN

#rust#lanczos-algorithm#linear-algebra#matrix-computations#high-performance-computing#memory-optimization#caching

Комментарии (18)

  • Обсуждение охватывает редкий случай, когда матрица и векторы помещаются в кэш, но базис не помещается, и показывает, что алгоритм Ланцоша может быть реализован без реортогонализации, что экономит O(n²) памяти и O(n²) FLOP в обмен на O(n) дополнительных итераций.
  • Участники обсуждают точность двухпроходного подхода, влияние потери ортогональности на точность и применимость метода, а также то, что влияние на точность может быть меньше, чем погрешность самого алгоритма Ланцоша.
  • Также обсуждается выбор языка для реализации алгоритма, причем участники делятся опытом и мнением о том, какие языки лучше всего подходят для высокопроизводительной численной линейной алгебры.
  • В конце обсуждение сдвигается к тому, что автор может в будущем опубликовать расширенную версию статьи, и что читатели могут ожидать увидеть ее в будущем.

Diamond Thermal Conductivity: A New Era in Chip Cooling (spectrum.ieee.org)

Алмазные покрытия обещают революцию в охлаждении микрочипов, решая проблему перегрева при увеличении плотности транзисторов. Исследователи разработали технологию нанесения тонких алмазных пленок на процессоры, которые отводят тепло в 5 раз эффективнее меди. Эти "алмазные одеяла" могут стать ключевым элементом для будущих чипов с тысячами ядер и сверхвысокими тактовыми частотами, где традиционные методы охлаждения уже неэффективны.

Технология основана на химическом осаждении алмазных пленок непосредственно на поверхности процессоров, создавая идеальный контакт для отвода тепла. По словам экспертов, алмазы обладают теплопроводностью до 2000 Вт/м·К, что в 5 раз превышает показатели меди. Это позволит создавать более мощные и компактные электронные устройства без риска перегрева. Первые коммерческие применения могут появиться уже в течение ближайших двух лет в высокопроизводительных серверах и специализированных вычислительных системах.

by rbanffy • 21 октября 2025 г. в 11:16 • 178 points

ОригиналHN

#thermal-conductivity#chip-cooling#3d-chips#high-performance-computing#stanford

Комментарии (59)

  • Исследователи из Стэнфорда показали, что внутри кристалла можно встроить слой алмаза для распределения тепла, что может позволить стекать 3D-чипы без перегрева.
  • Технически это означает, что можно будет строить многослойные чипы, которые не будут ограничены тепловыми проблемами, как это было раньше.
  • Однако, пока что не ясно, насколько это будет стоить и будет ли это доступно в течение жизни читателей.
  • Пока что это только лабораторная технология, и никто не знает, когда она станет промышленной.

We reverse-engineered Flash Attention 4 (modal.com)

Новая версия Flash Attention 4 оптимизирована под архитектуру Blackwell от Nvidia и обещает ~20% прирост скорости по сравнению с предыдущим рекордсменом — закрытыми ядрами внимания в библиотеке cudnn. Хотя официального отчёта нет, исходный код уже доступен, что позволило разобрать его устройство. Главное изменение — не математические трюки (вроде быстрых приближённых экспонент или эффективного онлайн-softmax), а сложная асинхронная конвейеризация операций, напоминающая принципы параллельного программирования из высокопроизводительных систем вроде баз данных или веб-серверов.

Архитектура FA4 построена вокруг обработки «тайлов» — блоков данных, которые потоково считываются из глобальной памяти GPU. Один экземпляр ядра обрабатывает два тайла запросов, последовательно сканируя все ключи и значения, чтобы вычислить взвешенные выходные данные. Это напоминает векторized-сканирование в СУБД. Масштабирование достигается за счёт массового параллельного запуска таких программ по модели «одна программа — много данных». Подход требует глубокой асинхронности и эффективного использования warp-ов, но остаётся интуитивно понятным для инженеров, работавших с конкурентными системами.

by birdculture • 27 сентября 2025 г. в 21:50 • 112 points

ОригиналHN

#flash-attention#gpu#parallel-programming#nvidia#cudnn#high-performance-computing#database-systems#asynchronous-programming#vectorized-scanning

Комментарии (40)

  • Обсуждение термина "reverse engineering" применительно к анализу исходного кода и его пониманию.
  • Критика стиля и структуры блог-поста за избыточные отсылки к исследованиям и недостаток конкретики.
  • Замечания о сложности написания эффективных GPU-кернелов для современного железа и упоминание тренда на "мегакернелы".
  • Запрос рекомендаций по обучающим материалам для начинающих в GPU-программировании.
  • Положительные отзывы о содержании поста и его развлекательном, доступном стиле.

Novel hollow-core optical fiber transmits data faster with record low loss (phys.org)

  • Новое волокно с полым сердечником (DNANF) показало рекордное затухание 0,091 дБ/км на 1550 нм — в 1,5 раза лучше кремниевых волокон (0,14 дБ/км).
  • Скорость передачи выше на 45 %; низкие потери (<0,2 дБ/км) сохраняются в диапазоне 66 ТГц (700–2400 нм).
  • Удалось подавить три механизма потерь: утечку, рассеяние на границе и микроизгиб; испытано на 15 км.
  • Технология обещает увеличить дальность без усилителей, снизить стоимость бита и открыть новые длины волн для связи, лидаров и высокомощной лазерной доставки.

by Wingy • 03 сентября 2025 г. в 23:37 • 123 points

ОригиналHN

#optical-fiber#hollow-core-fiber#telecommunications#data-transmission#high-performance-computing#latency#splicing

Комментарии (57)

  • Hollow-core fiber (HCF) передаёт свет почти со скоростью света в вакууме (~c), в отличие от обычного стекловолокна (~2/3 c), снижая задержку на 30–45 %.
  • Ключевое преимущество — не пропускная способность, а латентность: важно для HPC, AI-кластеров, онлайн-игр и трансконтинентальных линий.
  • Потери 0,2 дБ/км и полоса 66 ТГц уже достигнуты, но сплайсинг и механическая надёжность пока требуют спецоборудования и персонала.
  • Существующее стекловолокно не устарело: для большинства «последней мили» и домашних 1–10 Гбит/с оно всё ещё в десятки раз недогружено.
  • Массовое развертывание HCF начнётся с сверхдлинных магистралей и HPC-центров, а до FTTH доберётся не раньше чем через десятилетия, если вообще доберётся.

Writing Speed-of-Light Flash Attention for 5090 in CUDA C++ (gau-nernst.github.io)

Flash Attention на 5090 в CUDA C++

Цель — научиться писать attention-ядро на CUDA C++, чтобы использовать MXFP8/NVFP4 MMA для sm120, чего нет в Triton.
Код: learn-cuda/07_attention.

Бенчмарк (bs=1, heads=8, q=4096, kv=8192, BF16, 5090@400 W, CUDA 12.9, SOL 209.5 TFLOPS):

ядро TFLOPS %SOL
F.sdpa (Flash) 186.73 89.13
F.sdpa (CuDNN) 203.61 97.19
flash-attn 190.58 90.97
v1 (basic) 142.87 68.20
v2 (swizzle) 181.11 86.45
v3 (2-stage) 189.84 90.62
v4 (ldmatrix.x4) 194.33 92.76
v5 (pipe) 197.74 94.39

Алгоритм Flash Attention 2

Псевдокод:

scale = DIM**-0.5
for b, tile_Q:
    tile_O = 0
    tile_Q = load(Q[b, tile_Q])
    for tile_KV:
        tile_K = load(K[b, tile_KV])
        tile_S = tile_Q @ tile_K.T * scale
        online_softmax(tile_S)  # in-place
        tile_V = load(V[b, tile_KV])
        tile_O += tile_S @ tile_V
    store(O[b, tile_Q])

head_dim=128 помещается в регистры.


v1 — базовая версия

  1. G2S: cp.async.ca.shared.global 128-битными транзакциями.
  2. S2R: ldmatrix для Q, K, V → 8×8 фрагменты.
  3. Softmax online:
    • m = max(m_prev, m_curr)
    • d = d_prev * exp(m_prev - m) + Σ exp(S - m)
    • O = O_prev * (d_prev/d) * exp(m_prev - m) + (exp(S - m)/d) @ V

v2 — swizzled shared memory

  • 128-битные банки → конфликты при 8×8 tile.
  • Swizzle K и V по 32-битным строкам; Q оставляем линейно.
  • +40 % пропускной способности.

v3 — 2-stage pipeline

  • Двойной буфер: пока вычисляем S/P@V, асинхронно грузим следующий KV.
  • cp.async.commit_group() + cp.async.wait_group(1).
  • +5 % к SOL.

v4 — ldmatrix.x4

  • Одна инструкция ldmatrix.x4 загружает 4×8×8 фрагмента K/V за раз.
  • Снижает инструкций на 25 %.
  • +2 % к SOL.

v5 — улучшенный pipeline

  • 3-4 стадии:
    1. prefetch KV
    2. compute S
    3. compute P@V
    4. write-back O
  • __pipeline_wait_prior(N) + __pipeline_commit().
  • +2 % к SOL.

Что дальше

  • Использовать TMA (cp.async.bulk) и NVFP4/MXFP8 MMA.
  • Поддержка head_dim > 128 (FlashMLA).

by dsr12 • 23 августа 2025 г. в 12:29 • 145 points

ОригиналHN

#cuda#c++#nvidia#flash-attention#machine-learning#gpu-computing#high-performance-computing

Комментарии (32)

  • Пользователи удивлены, что RTX 5090 даёт всего 209 TFLOPS BF16 — менее 10 % от серверного Blackwell B200 (2250 TFLOPS), но при цене ~$30-40 k за B200 соотношение цена/производительность почти сравнялось.
  • Обсуждают, что NVIDIA с 4090 и далее искусственно ограничивает тензорные ядра игровых карт для ML-операций FP8/FP16.
  • У 5090 выше TDP, чем у 4090, и можно ограничить мощность лишь до 70 % (4090 — до 50 %), что мешает апгрейду для ML-станций.
  • Появились вопросы о поддержке Flash Attention на 5090/5080 и о нативной компиляции под Blackwell в PyTorch 2.7.
  • Участники спорят, стоит ли вкладываться в Triton, если нужны фирменные типы NVFP4/MXFP8, которых там пока нет.