Допустим, вы создаете приложение с ИИ и хотите, чтобы локальный вывод работал быстро: вы направляете свое приложение на OpenAI-совместимую конечную точку, и все готово. Теперь предположим, что вам нужно настроить модели для конкретной рабочей нагрузки: вы хотите изменить способ их выполнения. Или, скажем, вам нужен более глубокий доступ к «железу» для оптимизации операторов и ядер, таких как GEMM, attention и RoPE, которые в первую очередь обеспечивают быстродействие вашего оборудования. Разные разработчики, разные отправные точки, но все они пытаются выполнять реальную работу на одном и том же оборудовании.
В чем подвох: большинство инструментов решают только первую задачу. Механизмы вывода типа «подключил и запустил» позволяют быстро создать рабочую демонстрацию, но как только вам нужно адаптировать способ выполнения модели или создать собственный оператор, вы упираетесь в стену. API обслуживания просто не раскрывает того, что происходит под капотом, поэтому вы вынуждены выбирать между простым входом и реальным доступом к оборудованию.
FastFlow-SDK устраняет этот компромисс. Это универсальная платформа от AMD для разработки локального ИИ-программного обеспечения, поэтому вы можете начать с запуска поддерживаемой модели и продолжать погружаться настолько глубоко, насколько требует ваша работа, и все это в рамках одной экосистемы, без смены лицензий, поставщиков или цепочек инструментов.
Этот первый блог в серии представляет FastFlow-SDK и три технологии, которые делают его возможным: FastFlow, IRON и HRX. Первый выпуск ориентирован на Ryzen™ AI NPU (XDNA2).
FastFlow-SDK предоставляет вам единый стек для любых целей:
- Запуск: направьте свое приложение на OpenAI-совместимую конечную точку и получите мгновенный вывод.
- Настройка: адаптируйте выполнение модели и создавайте новые возможности, используя инструменты нижнего уровня.
- Оптимизация: создавайте и настраивайте операторы и ядра непосредственно на низкоуровневом уровне.
Остальная часть этого блога описывает рабочий процесс от FastFlow к IRON и HRX, показывая, как каждый слой погружает вас немного глубже в стек.
FastFlow-SDK предоставляет единую точку входа для разработчиков, ориентированных на Ryzen AI NPU. Он включает поддержку запуска современных моделей GenAI, открывая при этом базовый программный стек для разработчиков, которым необходимо настраивать выполнение моделей, операторов и ядер.
FastFlow-SDK объединяет следующие компоненты:
- FastFlow (ранее FastFlowLM) — прикладной уровень для запуска и обслуживания ИИ-моделей на NPU.
- IRON — низкоуровневый Python API для программирования Ryzen AI NPU, построенный на базе компилятора с открытым исходным кодом на основе MLIR.
- Hip Runtime eXtended (HRX) — легковесный уровень среды выполнения, отвечающий за загрузку и выполнение рабочих нагрузок на оборудовании AMD в Windows и Linux.
FastFlow
FastFlow — это NPU-ориентированный механизм вывода, интегрированный непосредственно в Lemonade, который предоставляет OpenAI-совместимый потоковый API и поддерживает длину контекста обслуживаемых им моделей. FastFlow также поддерживает вызов инструментов и модели рассуждения, обеспечивая агентные и многошаговые ИИ-рабочие процессы на NPU.
FastFlow поддерживает ряд языковых, мультимодальных, речевых и эмбеддинг-моделей:
Тип модели
Семейства моделей
Текстовые LLM
Qwen (2.5 / 3 / 3.5 / 3.6-MoE)
Смесь экспертов (Mixture-of-Experts)
Gemma 3/4, gpt-oss, Llama 3.1/3.2, Phi, LiquidAI/LFM2
Визуально-языковые
Gemma 3/4, Qwen3-VL, Qwen2.5-VL
Речь
Whisper large-v3-turbo
Эмбеддинги / RAG
EmbeddingGemma 300m
Нажмите here для получения полного списка.
Вместе эти модели обеспечивают отправную точку для создания чат-приложений, агентов, мультимодальных интерфейсов, речевых рабочих процессов и RAG-конвейеров, ориентированных на Ryzen AI NPU.
IRON
Под капотом модели, поддерживаемые FastFlow, построены из операторов и ядер, разработанных с помощью IRON. В то время как FastFlow обеспечивает готовый к запуску вывод моделей, IRON — это слой, используемый для создания и настройки программ NPU, которые обеспечивают работу этих моделей.
IRON — это низкоуровневый Python API для программирования AMD Ryzen AI NPU, построенный на базе компилятора с открытым исходным кодом на основе MLIR. Он берет рабочие нагрузки, определенные на Python, и компилирует их в программы, которые работают на массиве AI Engine, предоставляя разработчикам прямой контроль над реализацией ядер и перемещением данных на NPU.
Основные возможности включают:
- Компиляция Python-в-NPU: декоратор @iron.jit компилирует рабочие нагрузки, определенные на Python, в исполняемые программы NPU и кэширует полученные артефакты.
- Низкоуровневое управление оборудованием: разработчики могут размещать тайлы, управлять перемещением данных и писать векторизованные вычисления непосредственно для массива AI Engine.
- Упрощенное перемещение данных: ObjectFifo предоставляет декларативную модель «производитель-потребитель», которая снижает необходимость вручную определять последовательности DMA и шаблоны распределения.
- Общие ИИ-операторы: примеры включают attention, GEMM, softmax, RMSNorm, LayerNorm, RoPE, SwiGLU, GELU, SiLU, Conv2D и строительные блоки ResNet.
Эти операторы формируют многие строительные блоки, используемые в современных трансформерных и визуальных моделях, включая операторы, используемые в прямых проходах таких моделей, как Qwen и Llama. С помощью IRON разработчики могут создавать и оптимизировать эти строительные блоки непосредственно для NPU.
Hip Runtime eXtended (HRX)
HRX находится между скомпилированными программами и базовым оборудованием, выступая в качестве уровня среды выполнения, отвечающего за исполнение. Он загружает скомпилированные программы и выполняет их вместе с драйвером устройства в Linux и Windows, управляя памятью, асинхронной очередью задач, синхронизацией и выполнением команд, являясь, таким образом, слоем, который определяет, насколько быстро работает все, что находится выше него.
HRX поддерживает две операции, которые вы выполняете с NPU:
- Одиночная отправка (Single dispatch): запуск одной программы, проверка результатов и итерация. Полезно при разработке и настройке ядер IRON.
- Цепочечная отправка (Chained dispatch): постановка в очередь последовательности операций для выполнения в виде конвейера, что снижает накладные расходы среды выполнения для всей рабочей нагрузки модели. Это модель выполнения, используемая FastFlow для сквозного вывода.
Начало работы
1. Запуск: Lemonade с бэкендом FastFlow
Самый простой способ начать работу — через Lemonade, который включает FastFlow в качестве поддерживаемого бэкенда. Если ваша цель — создать ИИ-приложение, провести бенчмарк модели или оценить производительность NPU, это самый быстрый путь. Вы можете начать запускать поддерживаемые модели немедленно. Чтобы начать работу с Lemonade, посетите веб-сайт Lemonade.
Для получения дополнительной информации о бэкендах Lemonade см. документацию here.
2. Настройка: создание и модификация с помощью FastFlow-SDK
Как только вы будете готовы выйти за рамки простого запуска моделей, FastFlow-SDK предоставит доступ к инструментам, используемым для их создания и настройки. Разработчики могут экспериментировать с конфигурациями моделей, интегрировать новые возможности и исследовать, как рабочие нагрузки собираются для NPU.
По мере развития требований к вашему приложению FastFlow-SDK служит точкой входа в более широкий стек разработки и документацию. Оттуда вы можете начать работать непосредственно с базовыми проектами и при необходимости погружаться глубже в стек.
Чтобы начать работу, посетите репозиторий FastFlow-SDK для получения инструкций по установке, примеров и ссылок на документацию по базовым проектам.
3. Оптимизация: настройка производительности с помощью IRON и HRX
Настройка производительности происходит на уровнях IRON и HRX. Используйте IRON для разработки и оптимизации операторов и ядер, а затем используйте HRX для управления их выполнением на NPU.
Однократная отправка (single-dispatch) полезна для проверки отдельных ядер IRON, в то время как цепочечная отправка (chained dispatch) снижает накладные расходы при выполнении более крупных рабочих нагрузок за счет запуска нескольких операций в виде конвейера. Это дает вам контроль как над реализацией ядра, так и над выполнением во время выполнения. Именно так были созданы модели, поддерживаемые FastFlow.
Готовы попробовать?
Начните с , чтобы запускать модели на NPU Ryzen AI, а затем изучите FastFlow-SDK по мере того, как ваши потребности в разработке будут расширяться, включая настройку моделей, разработку операторов и оптимизацию среды выполнения.
Посетите репозиторий FastFlow-SDK для получения инструкций по установке, примеров и ссылок на базовые проекты.











