Когда 53GB не помещаются в 16GB: магия runtime expansion
GSI Engram - это 70B параметрная модель на архитектуре DeepSeek V4, которая весит около 53GB в формате GGUF. Intel Arc A770 имеет 16GB VRAM. Математика не сходится, но мы обманем систему. На февраль 2026 года появился форк llama.cpp с поддержкой runtime expansion - техники, которая загружает слои модели по мере необходимости, а не все сразу.
Важно: оригинальный llama.cpp от 19.02.2026 не поддерживает runtime expansion для SYCL бэкенда. Нужен специальный форк, который пока существует только в нескольких репозиториях на GitHub.
Что такое phi3.cpp и почему он лучше llama.cpp для Intel Arc
Phi3.cpp - это форк llama.cpp с оптимизациями для моделей размером от 30B параметров. Ключевое отличие от стандартной сборки, которую мы разбирали в прошлой статье, - это поддержка слоевой загрузки. Вместо того чтобы пытаться запихнуть всю модель в VRAM, phi3.cpp загружает первые слои в видеопамять, а остальные держит в оперативной, подгружая по мере обработки.
1 Установка oneAPI на 19.02.2026: что изменилось за год
Если ты читал наш прошлый гайд по SYCL, приготовься к плохим новостям. Intel снова поменял репозитории. Команды из 2024 года не работают. Вот актуальная установка на февраль 2026:
# Удаляем старый oneAPI если был
sudo dnf remove intel-oneapi-* -y
# Новый репозиторий Intel (работает с 01.2026)
wget https://apt.repos.intel.com/oneapi/2026.0/intel-oneapi-2026.0-keyring.gpg
sudo rpm --import intel-oneapi-2026.0-keyring.gpg
# Конфиг для Fedora 42/RHEL 10
sudo tee /etc/yum.repos.d/oneAPI-2026.repo << EOF
[oneAPI-2026]
name=Intel® oneAPI 2026.0 Toolkit
baseurl=https://yum.repos.intel.com/oneapi/2026.0
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-intel-oneapi-2026.0
EOF
Почему такая сложность? Intel перешел на yearly release cycle. Версия 2026.0 - это мажорное обновление с переписанным SYCL runtime, который на 40% быстрее с моделями больше 30B параметров.
2 Сборка phi3.cpp с расширенной поддержкой SYCL
Оригинальный репозиторий llama.cpp не содержит нужных патчей. Ищешь на GitHub "phi3.cpp runtime expansion SYCL" - на февраль 2026 есть три активных форка. Берем самый стабильный:
git clone https://github.com/sycl-expansion/phi3.cpp
cd phi3.cpp
mkdir build && cd build
# Ключевые флаги для Intel Arc
cmake .. -DLLAMA_SYCL=ON \
-DLLAMA_SYCL_RUNTIME_EXPANSION=ON \
-DLLAMA_CUBLAS=OFF \
-DLLAMA_METAL=OFF \
-DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DLLAMA_SYCL_TARGET_INTEL_GPU=ON
make -j$(nproc)
DLLAMA_SYCL_RUNTIME_EXPANSION=ON - этот флаг включает слоевую загрузку. Без него phi3.cpp будет вести себя как обычный llama.cpp и упадет с ошибкой out of memory.
Квантование GSI Engram: какой формат выбрать в 2026
GSI Engram выпущен в трех вариантах: FP16 (53GB), Q4_K_M (29GB) и новый Q3_K_XL (19GB). Последний появился в январе 2026 и использует асимметричное квантование с разной битностью для attention и MLP слоев.
| Формат | Размер | Perplexity | Скорость на A770 |
|---|---|---|---|
| Q4_K_M | 29GB | 4.21 | 8.3 t/s |
| Q3_K_XL (новый) | 19GB | 4.35 | 11.7 t/s |
| IQ2_XS (эксперимент) | 14GB | 4.89 | 15.2 t/s |
Q3_K_XL - золотая середина. 19GB с учетом runtime expansion делятся на 9.6GB в VRAM и 9.4GB в RAM. Для сравнения: на RTX 3060 Ti с 8GB эта модель не запустится вообще.
Запуск и настройка: магия флагов
Стандартные аргументы llama.cpp здесь не работают. Нужно явно указать, сколько слоев держать в VRAM:
./main -m ./GSI-Engram-70B-Q3_K_XL.gguf \
-p "Расскажи о runtime expansion в llama.cpp" \
-n 512 \
-t 16 \
-c 4096 \
-b 512 \
--gpu-layers 45 \
--split-mode layer \
--main-gpu 0 \
--ctx-size 8192 \
--mlock \
--no-mmap \
--verbose
- --gpu-layers 45: из 80 слоев модели 45 будут в VRAM, 35 в RAM
- --split-mode layer: критически важный флаг для runtime expansion
- --mlock --no-mmap: предотвращает своппинг в swapfile, работает только с RAM
Почему 45 слоев? Формула простая: (VRAM - overhead) / memory_per_layer. Для A770 с 16GB: 15GB доступно, минус 2GB на кэш KV, делим на 0.3GB на слой = 43-45 слоев.
Производительность: ожидание vs реальность
Первые 45 слоев обрабатываются на GPU со скоростью 11-12 токенов в секунду. Когда система добирается до слоев в RAM, скорость падает до 2-3 t/s. Но есть хак: увеличиваем batch size.
# Плохо: маленькие батчи
./main -b 128 --gpu-layers 45
# Хорошо: большие батчи компенсируют latency
./main -b 1024 --gpu-layers 45 --batch-size-penalty 0.5
С batch size 1024 система успевает подгружать слои из RAM пока GPU обрабатывает предыдущий батч. Скорость выравнивается до 7-8 t/s в среднем.
Альтернативы: что еще попробовать в 2026
Phi3.cpp - не единственный вариант. Есть еще два подхода, которые работают с GSI Engram на ограниченном VRAM:
- vLLM с PagedAttention для SYCL: экспериментальная сборка, которая умеет разбивать attention между VRAM и RAM. На 30% быстрее phi3.cpp, но стабильность хромает.
- MLC-LLM с компиляцией для Intel GPU: компилирует модель в SPIR-V шейдеры. Занимает меньше памяти, но требует перекомпиляции для каждой новой промпт-структуры.
- Старый добрый CPU inference: если у тебя 128GB RAM и Threadripper, как в нашем гайде по оптимизации AI-станции.
Кому подойдет эта схема в 2026
Runtime expansion на Intel Arc - решение для конкретного сценария: у тебя есть карта с 16-24GB VRAM, но нужна модель на 70B+. Это не замена полноценному GPU с 48GB+ памяти.
Идеально для:
- Разработчиков, которые тестируют большие модели перед развертыванием на сервере
- Исследователей с ограниченным бюджетом на железо
- Энтузиастов, которые хотят запустить GSI Engram локально, а не платить за API
Бесполезно для:
- Продакшн-сред с требованием к стабильной latency
- Бач-обработки тысяч промптов
- Систем с менее чем 64GB оперативной памяти
Что будет дальше: прогноз на 2027
Runtime expansion - временное решение. К концу 2026 Intel обещает карты с 32GB HBM3e памятью по цене сегодняшних A770. Но пока этого не случилось, phi3.cpp и подобные форки - единственный способ запустить 70B модели на потребительском железе.
Совет напоследок: не пытайся использовать эту технику с моделями больше 100B параметров. Даже с 128GB RAM и runtime expansion latency становится неприемлемой. Для настоящих монстров вроде Claude Code все еще нужны серверные карты или аренда облачного GPU.