Welcome Banner

Pavel Bahdanau

← Back to list

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.

Ból

Karty GeForce cierpią na niedobór VRAM i nie mają oficjalnego spilloveru jak Hopper.

Cel

Zaprezentować PyTorchowi "wirtualną" kartę 25-30 GB bez patchowania frameworka.

Rozwiązanie

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ę

© Pavel. All rights reserved.

Made with simple HTML, CSS and JavaScript

Last update: