Что такое StreamTensor?
StreamTensor — это компилятор, который преобразует графики PyTorch (GPT-2, Llama, Qwen, Gemma) в потоковые планировщики данных на FPGA Alveo U55C от AMD. Система вводит итеративный тип тензора (itensor) для кодирования плитки/порядка потоков, обеспечивая корректную потоковую передачу между ядрами и автоматическую вставку/настройку размеров DMA-движков, FIFO и преобразователей формата.
Компилятор StreamTensor преобразует графики PyTorch в потоковую структуру данных, позволяя избежать лишних обращений к DRAM за счёт потоковой передачи и слияния данных на кристалле. DMAs вставляются только при необходимости; они пересылаются через FIFO на кристалле к последующим ядрам.
Что нового?
* Иерархический DSE. Компилятор исследует три пространства проектирования: (i) тайлинг/развёртка/векторизация/перестановка на уровне Linalg, (ii) слияние при ограничениях памяти/ресурсов и (iii) распределение ресурсов/ширины потоков.
* Сквозной поток PyTorch → устройство. Модели поступают через Torch-MLIR, преобразуются в MLIR Linalg, а затем в IR потока данных, узлы которого становятся аппаратными ядрами с явными потоками и связующим ПО хоста/времени выполнения.
* Система итеративного тензорного (itensor) типирования. Первый класс тензорного типа выражает порядок итераций, тайлинг и аффинные карты. Это делает порядок потоков явным, позволяет безопасно объединять ядра и позволяет компилятору синтезировать минимальные преобразователи буфера/формата, когда производители/потребители не согласны.
* Формальный расчёт размеров FIFO. Буферизация между ядрами решается с помощью линейной формулировки, чтобы избежать остановок/блокировок при минимизации использования памяти на кристалле (BRAM/URAM).
Результаты
* Задержка: до 0,76× по сравнению с предыдущими FPGA-ускорителями LLM и 0,64× по сравнению с базовым уровнем GPU на GPT-2.
* Энергоэффективность: до 1,99× по сравнению с A100 на новых LLM (в зависимости от модели).
Комментарии
Полезный вклад здесь — это компилятор PyTorch → Torch-MLIR → dataflow, который выдаёт ядра, запланированные по потокам, и хост/время выполнения для AMD Alveo U55C. Итеративный тип тензора плюс расчёт размеров FIFO на основе линейного программирования обеспечивают безопасную потоковую передачу между ядрами, а не обращения к DRAM.
В отчётах по декодированию LLM на GPT-2, Llama, Qwen и Gemma исследовательская группа демонстрирует среднее геометрическое значение задержки, достигающее 0,64× по сравнению с базовым уровнем GPU, и энергоэффективность до 1,99×. Контекст аппаратного обеспечения ясен: Alveo U55C обеспечивает 16 ГБ HBM2 на скорости 460 ГБ/с с двумя QSFP28 и PCIe Gen3×16 или двумя Gen4×8, что соответствует потоковой структуре данных.
Источники:
* [Статья](https://arxiv.org/pdf/2509.13694)
1. Какие новые подходы в компиляции моделей LLM предлагает StreamTensor?
Ответ: StreamTensor предлагает несколько новых подходов в компиляции моделей LLM, включая иерархический DSE, сквозной поток PyTorch → устройство и систему итеративного тензорного (itensor) типирования.
2. Какие преимущества даёт использование StreamTensor по сравнению с предыдущими FPGA-ускорителями LLM?
Ответ: использование StreamTensor позволяет достичь задержки до 0,76× по сравнению с предыдущими FPGA-ускорителями LLM и до 0,64× по сравнению с базовым уровнем GPU на GPT-2, а также обеспечивает энергоэффективность до 1,99× по сравнению с A100 на новых LLM.
3. Какие типы данных используются в StreamTensor для обеспечения корректной потоковой передачи между ядрами?
Ответ: в StreamTensor используется итеративный тип тензора (itensor) для кодирования плитки/порядка потоков, что обеспечивает корректную потоковую передачу между ядрами и автоматическую вставку/настройку размеров DMA-движков, FIFO и преобразователей формата.
4. Какие результаты были достигнуты при использовании StreamTensor на модели GPT-2?
Ответ: при использовании StreamTensor на модели GPT-2 было достигнуто среднее геометрическое значение задержки, достигающее 0,64× по сравнению с базовым уровнем GPU, и энергоэффективность до 1,99×.
5. Какие аппаратные требования необходимы для работы с StreamTensor?
Ответ: для работы с StreamTensor необходимо аппаратное обеспечение, соответствующее потоковой структуре данных, например, Alveo U55C от AMD, которое обеспечивает 16 ГБ HBM2 на скорости 460 ГБ/с с двумя QSFP28 и PCIe Gen3×16 или двумя Gen4×8.