emuV v2.0 - Jądrowy emulator VRAM ze spilloverem dla GeForce
29.11.2025
Polowa opowieść o tym, jak z zwykłej RTX 4060 zrobić konia roboczego dla LLaMA 30B: moduł jądra, automatyczny spillover GPU->RAM, narzędzia monitorujące, prawdziwe testy i roadmapa.
https://github.com/bogdanovby/emuv
Po co kombinować z wirtualną VRAM w 2025 roku
Każdy współczesny eksperyment ML kończy się o barierę VRAM. RTX 4060 ma 8 GB, RTX 4070 Ti tylko 12 GB, a LLaMA 13B w fp16 już wymaga 24 GB. A100 80G nadal kosztuje tyle co używana Tesla, więc poszliśmy w inną stronę: napisaliśmy sterownik, który elegancko skleja VRAM i pamięć RAM.
Karty GeForce cierpią na niedobór VRAM i nie mają oficjalnego spilloveru jak Hopper.
Zaprezentować PyTorchowi "wirtualną" kartę 25-30 GB bez patchowania frameworka.
emuV - moduł jądra, który najpierw wykorzystuje VRAM, a nadmiar automatycznie przelewa do RAM.
Najważniejsze funkcje emuV v2.0
- Automatyczne wykrywanie dowolnej GeForce przez skanowanie PCI (vendor 0x10DE) - zero twardych ID.
- Hierarchia pamięci: VRAM (priorytet 1) -> RAM (priorytet 2) z leniwą alokacją.
- Interfejsy: sysfs + urządzenie znakowe (
/sys/class/emuv/emuv/vram_info). - Narzędzia:
emuv-top, test spillover w Pythonie. - Prawdziwe modele: GPT-2 XL, LLaMA 13B/30B (8-bit/4-bit) na 7.5 GB VRAM + 20 GB RAM.
Spillover GPU -> RAM bez magii
W wersji 2.0 postawiliśmy na przewidywalność: VRAM wykorzystujemy do ostatniego bajtu, PyTorch łapie cudaErrorMemoryAllocation i przerzuca kolejne bloki do RAM. emuV raportuje na żywo oba poziomy.
Co mieści RTX 4060 (7.75 GB)
| Model | VRAM | Spillover RAM |
|---|---|---|
| GPT-2 | ✓ | - |
| LLaMA 13B (8-bit) | 7 GB | 3 GB |
| LLaMA 30B (4-bit) | 7 GB | 8 GB |
Projekty, które współtworzę
- AppLikeWeb - applikeweb.com
- MegaV VPN - megav.app
- PinVPS - pinvps.com