В мире LLM-инференса появился новый эксперимент, стирающий грань между нейросетью и процессором. Проект qwenGPU, опубликованный на GitHub под лицензией MIT, внедряет 4-канальный SIMT-процессор непосредственно в архитектуру модели Qwen3.5-2B. Вместо того чтобы вызывать внешние вычислительные модули, модель сама «пишет» и выполняет CUDA-код внутри своих весов.
Как это работает: GPU внутри трансформера
Архитектура qwenGPU состоит из 69 слоев: 24 оригинальных слоя Qwen3.5 и 45 скомпилированных GPU-слоев, которые не обучались, а были вычислены компилятором. Ключевая инновация — использование рекуррентного состояния Gated DeltaNet в качестве аппаратных ресурсов:
- Регистры и память: Состояние Gated DeltaNet используется как программная ROM, регистры и глобальная память. Каждая строка состояния работает как ячейка памяти.
- Исполнение: Хост-система компилирует CUDA в PTX, а модель получает токены
EXECиVAL, которые инициируют запуск блоков и возвращают результаты вычислений. - Точность: В тестах на Apple Silicon (MPS) модель показала точность, сопоставимую с реальным NVIDIA Tesla T4, совпав по 49 из 49 тестовых ядер.
Сравнение с аналогами: Qwenputer и Percepta
qwenGPU не является первым проектом по внедрению вычислительных машин в веса LLM, но он выделяется поддержкой CUDA и использованием Gated DeltaNet. Ниже приведено сравнение с другими известными экспериментальными проектами:
| Характеристика | qwenGPU | Qwenputer (RISC-V) | Percepta |
|---|---|---|---|
| Базовая модель | Qwen3.5-2B (24 слоя) | Qwen3.5-4B | Кастомный трансформер |
| Компилируемая машина | 4-канальный SIMT GPU | 32-битный RISC-V | Интерпретатор WebAssembly |
| Поддерживаемые языки | CUDA (через PTX) | C, MicroPython | C (через WASM) |
| Скомпилированные слои | 45 | 11 | Не раскрывается |
| Скорость (ориентировочно) | 10–15 ток/с (Apple MPS) | ~3200 ток/с (L4) | 30 000+ ток/с (CPU) |
| Дрейф текста (KL) | ~7e-4 | 6e-4 | N/A |
Практическая ценность и ограничения
На данный момент qwenGPU — это исследовательский демо-проект, а не готовый runtime. Скорость генерации составляет всего 10–15 токенов в секунду на Apple Silicon, что делает его непригодным для продакшена. Однако проект демонстрирует принципиальную возможность выполнения детерминированных вычислений внутри весов LLM без потери качества генерации текста (дрейф KL-дивергенции составляет всего ~7e-4).
Для запуска требуется Python 3.11+, ~16 ГБ свободной памяти и компилятор clang с NVPTX-бэкендом для продвинутого режима, где модель сама пишет CUDA-ядра. В базовом режиме модель использует готовые ядра для простых операций, таких как скалярное произведение.
Источник: MarkTechPost ↗
