Ua lomia se galuega faatino tatala NBD-VRAM, lea e mafai ai ona e faʻaaogaina se vaega o le manatua vitio a le NVIDIA GPU e fai ma avanoa fesuiaʻi i totonu LinuxO le galuega faatino e fa'atatau tonu lava i komepiuta feavea'i e iai le RAM ua fa'apipi'iina, lea e le mafai ai ona fa'alauteleina le RAM, ae o lo'o iai i le masini se kata ata NVIDIA RTX/GTX fa'apitoa ma se VRAM e le'i fa'aaogaina. O le code ua tusia i le C ma le shell ma ua tufatufaina atu i lalo o se laisene. MIT.
O le manatu i tua atu o le NBD-VRAM e faigofie lava: afai ua amata ona sui le masini i le SSD, e mafai ona e faŹ»aopoopoina se isi vaega vaeluagaāle manatua o le vitioāi luma o le SSD. Ua tuŹ»uina mai e le tusitala le faŹ»ataŹ»itaŹ»iga o se komepiuta feaveaŹ»i Laptop RTX 3070Mai le 8 GB o le VRAM, e 7 GB na vaevaeina mo le swap, ma faatasi ai ma le RAM, zRAM, ma le SSD swap, e tusa ma le 46 GB le aofaŹ»i o le manatua e mafai ona faŹ»afesoŹ»otaŹ»i i le masini. O le faŹ»asologa faŹ»amoemoeina o le overflow e faŹ»apea: E faŹ»aaoga muamua le RAM, ona faŹ»aaoga lea o le VRAM o le fast swap, ona sosoo ai lea ma le zRAM, ona sosoo ai lea ma le SSD.
I se tulaga fa'atekinolosi, e le fa'aopoopoina e le NBD-VRAM se aveta'avale kernel fou. O se tama'i daemon e vaevaeina le manatua o le kata vitio e ala i API Avetaavale CUDA, ona tuŹ»uina atu lea i le totonugalemu Linux e pei o se masini poloka e ala i NBD ā Network Block Device ā i luga o le Unix socket. A maeŹ»a ona fesoŹ»otaŹ»i ma le nbd-client masani, e aliali mai le /dev/nbdX i le system, lea e mafai ona faŹ»afanua o se swap drive masani e faŹ»aaoga ai le mkswap ma faŹ»agaoioia e faŹ»aaoga ai le swapon.
Ua fa'amamafa e le tusitala o lenei auala na filifilia ona o tapula'a o kata ata NVIDIA mo tagata fa'atau. O se auala e sili atu ona tuusa'o e ala i le NVIDIA P2P API i luga o le GeForce, na ia ta'ua, e fetaui ma le EINVAL, aua o agava'a talafeagai e na'o avanoa mo fa'ata'ita'iga fa'apolofesa ma fa'ata'ita'iga 'au'aunaga. O le ulufale sa'o atu i le BAR1 na le manuia fo'i: na'o se vaega la'ititi o lo'o fa'afanua e mafai ona maua, ma o le faitau mai isi e toe fo'i mai ai ni zero. O le auala a le NBD e fa'ata'amilo i lenei tapula'a e ala i le fa'aogaina o galuega fa'atino kopi masani a le CUDA cuMemcpyHtoD ma le cuMemcpyDtoH.
Faʻapitoa
Fa'aaogaina o le VRAM e pei ona masani ai Linux fesuia'i. O le taimi lava e amata ai, e faʻaalia e le daemon le manatua o le vitio o le /dev/nbd0 poʻo se isi masini NBD, lea e foliga mai i le kernel o se masini poloka masani.
E galue e aunoa ma lana lava kernel module. E lÄ manaŹ»omia e le galuega faatino le tusiaina, fausiaina, ma le tausia o se isi vaega o le kernel, e lÄ faŹ»aaogaina ai faŹ»ailoga i totonu o le avetaŹ»avale a le NVIDIA, ma e tatau ona tumau pea i faŹ»afouga o le kernel ma le avetaŹ»avale e aunoa ma le toe fausiaina.
Taula'i i GPU NVIDIA a tagata fa'atau. O mea e manaʻomia e aofia ai se NVIDIA GPU e mafai ona faʻaaogaina e le CUDA, e aofia ai kata RTX/GTX a le tagata faʻatau, se avetaʻavale aloaia a le NVIDIA ma le libcuda.so.1, ma le nbd kernel module. Linux, nbd-client, gcc, ma le make. E le mana'omia le CUDA Toolkit.
feso'ota'iga fa'anatura. O le fa'apipi'iina e ala i le install.sh e fa'aopoopoina ai le tautua vram-swap-nbd, lea e mafai ona amata e ala i le systemctl; a mae'a le fa'apipi'iina, e mafai ona amata otometi le tautua i le taimi e amata ai.
Setiina o le tele o le fesuiaiga ma le faamuamua. I le systemd-unit, e mafai ona e setiina le VRAM_SETUP_SIZE_MB, o le tapulaʻa pito i luga lea o le VRAM ua atofaina, ma le VRAM_SWAP_PRIORITY, o le faamuamua lea o le masini fesuiaʻi. O le maualuga o le faamuamua, o le vave foi lea Linux o le a faʻaaogaina lenei vaega fesuiaʻi.
Fa'aitiitia otometi le tele o lo'o talosagaina. Afai e le maua le aofaʻi manaʻomia o le VRAM, e taumafai le daemon e faʻaitiitia le tele i poloka 512 MiB ina ia vaevae pea le aofaʻi o loʻo avanoa, mo se faʻataʻitaʻiga pe afai o nisi o le manatua ua uma ona faʻaaogaina e le compositor poʻo le graphics session.
Tulaga o suega. O le teuina o oloa o loʻo i ai le test-nbd.sh mo se suega asu ma le 1 MiB faitau/tusi ma le test-fill.sh mo le tofotofoina o le mamafa o le vaega atoa o le VRAM.
O le faʻatinoga ua folafolaina e tusa ma le 1,3 GB/s. I luga o se komepiuta feaveaʻi RTX 3070, na fuaina ai e le tusitala le saoasaoa o tusitusiga faasolosolo o le 7GB i poloka 4MB i le tusa ma le 1,3GB/s.
Tusitusiga
Laptops ma RAM ua fa'apipi'iina i le solder. O le tulaga autū o komepiuta feaveaʻi faʻaonaponei, lea e le lava ai le 16 poʻo le 32 GB o le RAM, ae e le mafai ona faʻalauteleina. Afai o sea masini e iai se kata ata RTX tuʻueseese, o nisi o le VRAM e mafai ona faʻaaogaina o se vaega faʻaopoopo o le swap. O lenei mea e le liua ai le VRAM i le RAM atoa, ae e mafai ona taofia ai le faiga mai le suia faʻafuaseʻi i le swap SSD lemu poʻo mai faʻalavelave faʻafuaseʻi o le OOM i lalo o avega maualuga.
Siosiomaga mamafa mo galuega a le au atina'e. E mafai e IDE, browsers e tele tabs, Docker containers, databases i le lotoifale, galuega tetele na fausia, ma siosiomaga fa'ata'ita'i ona fa'atupuina ni si'itia o le fa'aaogaina o manatua i se taimi pu'upu'u. I se tulaga fa'apenei, e mafai e le NBD-VRAM ona galue o se buffer: e le fa'avavevaveina galuega masani, ae fa'amalūlūina le taimi e uma ai le RAM.
Fa'aitiitia le avega i le fesuia'iga o le SSD. O le fa'aaogÄ soo o le swap i luga o se SSD e lÄ gata ina fa'agesegese ai le faiga ae fa'atupuina ai fo'i ni tusitusiga e lÄ mana'omia i le ta'avale. E mafai ona setiina le VRAM swap i se fa'amuamua maualuga ina ia a tumu le RAM, e muamua ona fufulu e le faiga itulau i le manatua o le vitio ona maua lea o le SSD. E tÄua tele lenei mea mo komepiuta feavea'i, lea e masani ona lÄ mafai ona aveese le SSD pe taugata fo'i ona sui.
Fa'atasiga ma le zram. Ua fa'amatala manino mai e le tusitala se fuafuaga lea e maua ai e le VRAM swap le fa'amuamua maualuga ma maua ai le "masaa" muamua o le manatua, ona fa'aaogaina lea o le zRAM, ma o le SSD o lo'o tumau pea le puipuiga mulimuli. E mafai ona aoga lenei fuafuaga mo nofoaga faigaluega ma komepiuta feavea'i, lea e sili atu ona taua ai le tausia o le tali atu o le polokalama i lalo o le mamafa o le manatua nai lo le ausia o le maualuga o le latency e mafai ona vavaloina.
Galuega fa'alotoifale a le AI/LLM e fa'atatau i le GPU, ae le o le sui o le VRAM mo le fa'ata'ita'iga. E lÄ faāateleina e le NBD-VRAM le manatua o vitio o loāo avanoa i se talosaga CUDA e fai ma VRAM mo le faāataāitaāiga. O le tulaga faāafeagai lea: nai lo le faāaaogaina o le RAM e fai ma VRAM, e faāaaogaina le VRAM e fai ma avanoa fesuiaāi mo le manatua masani. LinuxO le mea lea, o le a le fa'atagaina e le poloketi le uta sa'o o se fa'ata'ita'iga tele i luga o le GPU. Peita'i, e mafai ona aoga i se masini o lo'o fa'agaoioia se browser, IDE, indexers, Python environments, ma containers fa'atasi ai ma le LLM inference, ma le mea ua amata ona le lava le RAM o le system.
Fale ma nofoaga faigaluega fa'ata'ita'i. O le galuega faatino e fiafia i ai tagata faŹ»aoga o latou kata ata e masani ona le faŹ»aogaina i tua atu o taŹ»aloga, faŹ»aliliuina, poŹ»o galuega ML. Mo se faŹ»ataŹ»itaŹ»iga, 8ā12 GB o le VRAM i luga o le desktop GeForce e mafai ona liua mo sina taimi i se isi vaega fesuiaŹ»i mo galuega mamafa e pei o le tuŹ»ufaŹ»atasiga, faŹ»agasologaina o faŹ»amaumauga, poŹ»o le faŹ»agaoioia o masini faŹ»apitoa.
Tapulaa
E lÄ o se sui o le RAM le NBD-VRAM. O le avanoa i lenei avanoa fesuia'i e mulimuli i le faasologa: kernel swap ā /dev/nbdX ā nbd driver ā Unix socket ā daemon ā CUDA copy ā VRAM, o lea o le latency ma le amioga o le a ese mai le RAM moni. E sili atu ona pei o se vaega fallback po'o se vaega vaeluaga i le va o le RAM ma le SSD nai lo se auala e "fa'aopoopo ai le manatua" e aunoa ma ni taunuuga.
E faʻalagolago foʻi le poloketi i le CUDA stack aloaia a le NVIDIA. E le fetaui Nouveau/Nova mo lenei mea, aua e manaʻomia le libcuda.so.1. Phoronix fa'amatalaga fo'io le NBD-VRAM ua mamanuina faapitoa mo NVIDIA GPU a tagata faʻatau, lea e le aoga ai isi auala e ala i le NVIDIA P2P API.
I le iuga, o le NBD-VRAM o se tama'i fa'aletonu o le faiga ae manaia mo LinuxE lÄ faia ni vavega ma e lÄ suia ai se fa'aleleia atili o le RAM, ae e mafai ai ona e fa'aogaina le manatua vitio e le'i fa'aogaina e fai ma avanoa fa'aopoopo mo fesuia'iga a'o le'i fa'aaogaina le SSD. Mo komepiuta feavea'i e iai le manatua ua fa'apipi'iina ma se kata RTX fa'apitoa, e mafai ona avea lea ma se auala aoga e taulima ai avega maualuluga e aunoa ma le vave fa'aletonu o talosaga po'o le leiloa tiga o le manatua ona o se ta'avale e telegese.
puna: linux.org.ru
