Языковые моделиdivagr1925
QwenPU
RISC-V-компьютер, скомпилированный в веса LLM
2 мин чтения
QwenPU — это Qwen3.5-4B, в веса которого скомпилированы 32-битный RISC-V CPU и векторный блок. Внутри forward passes модели как программа работает stories260K — 260K-параметровая Llama из llama2.c (автор — Andrej Karpathy) — и пишет истории. Проект является частью Qwenputer: добавлены 13 скомпилированных слоёв перед 32 слоями Qwen, исходные веса Qwen не менялись.
➕ Ключевые особенности
- ▶ 32-битный RISC-V CPU и векторный блок живут в весах Qwen3.5-4B; 13 слоёв компьютера идут перед 32 слоями Qwen.
- ➖ stories260K запускается внутри forward passes: её int4-веса лежат в памяти векторного блока, а матричные строки, residual add, softmax и attention — векторные операции.
- ✖ Векторный блок включает VMAT, VQ, VEW, VMATR, VEXP, VRED и VGET/VPUT; его памяти организованы как головы DeltaNet.
- 🟰 Тот же текст истории получается токен в токен: 53 000 trace tokens на токен истории против 225 000 у Qwenputer-npu и 2 430 000 у plain C.
- 🔜 Архитектура — stock
Qwen3_5ForCausalLM(только текст), hidden size 5120, словарь Qwen плюс 394 164 trace tokens; лицензия Apache-2.0.
🔤 Пример
git clone https://github.com/divagr18/QwenPU && cd QwenPU && uv sync --extra hf
uv run python guests/stories260k/storyrun.py guests/stories260k/stories_vx.elf --vx
hf download divagr1925/QwenPU --local-dir qwenpu
uv run python -m chipformer.rv.vxcheck qwenpu guests/stories260k/stories_vx.elf
Подробнее
Точность: exact в bf16; проверки векторных операций и первые 30 000 шагов story-программы — без расхождений, весь прогон из 3 184 920 шагов — exact.Скорость: ~3 300 trace tokens/с на L4, около 16 секунд на токен истории; у Qwenputer-npu — 41 секунда.
Железо: весь checkpoint весит 26.7 ГБ и требует GPU от 40 ГБ; демо и проверки помещаются в 24 ГБ, режим --chip-only — около 13 ГБ.
Ограничение: work in progress; 26.7 ГБ в основном состоят из zero padding, дальше автор планирует уменьшать hidden size.








Комментарии
Без регистрации: достаточно имени.