{"id":181858,"date":"2026-06-02T14:48:21","date_gmt":"2026-06-02T12:48:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/opublikovan-nbd-vram"},"modified":"2026-06-02T14:48:21","modified_gmt":"2026-06-02T12:48:22","slug":"opublikovan-nbd-vram","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/news\/opublikovan-nbd-vram","title":{"rendered":"Objavljen NBD-VRAM","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Objavljen je otvoreni projekt <strong>NBD-VRAM<\/strong>, koji omogu\u0107ava kori\u0161\u0107enje dela VRAM memorije NVIDIA GPU-a kao swap prostora u Linuxu. Projekt je prvenstveno usmeren na laptopove sa integrisanom RAM memorijom, gde se RAM ne mo\u017ee pro\u0161iriti, ali se u sistemu nalazi diskretna NVIDIA RTX\/GTX grafi\u010dka kartica sa neiskori\u0161\u0107enom VRAM-om. Kod je napisan u C-u i shell-u, i distribuira se pod licencom <strong>MIT<\/strong>.<\/p>\n<p>Ideja NBD-VRAM-a je jednostavna: ako sistem ve\u0107 po\u010dinje da koristi swap na SSD-u, mo\u017ee da postavi jo\u0161 jedan me\u0111usloj ispred SSD-a \u2014 VRAM. Autor daje primer laptopa sa <strong>RTX 3070 Laptop<\/strong>: od 8 GB VRAM-a, 7 GB je dodeljeno za swap, a ukupno sa RAM-om, zram-om i SSD swap-om, sistem je dobio oko 46 GB adresibilne memorije. Predlo\u017eeni redosled preoptere\u0107enja je slede\u0107i: prvo se koristi RAM, zatim VRAM kao brzi swap, zatim zram, i samo nakon toga SSD.<\/p>\n<p>Tehni\u010dki gledano, NBD-VRAM ne dodaje novi drajver jezgra. Mali demon dodeljuje memoriju grafi\u010dke kartice preko <strong>CUDA Driver API<\/strong>, i zatim je vra\u0107a jezgru Linuxa kao blok ure\u0111aj preko <strong>NBD<\/strong> \u2014 Network Block Device \u2014 preko Unix socketa. Nakon povezivanja sa standardnim nbd-clientom, u sistemu se pojavljuje \/dev\/nbdX, koji se mo\u017ee formatirati kao obi\u010dan swap putem mkswap i aktivirati preko swapon.<\/p>\n<p>Autor posebno nagla\u0161ava da je ovakav pristup odabran zbog ograni\u010denja potro\u0161a\u010dkih NVIDIA grafi\u010dkih kartica. Direktniji put preko NVIDIA P2P API-ja na GeForce, prema njegovim re\u010dima, nailazi na EINVAL, jer su odgovaraju\u0107e mogu\u0107nosti zapravo dostupne samo za profesionalne i serverske modele. Opcija sa direktnim pristupom BAR1 tako\u0111e nije uspela: dostupno je samo malo mapirano podru\u010dje, a \u010ditanje iz preostalog dela vra\u0107a nuli. NBD pristup zaobilazi ovo ograni\u010denje, jer koristi obi\u010dne CUDA kopije cuMemcpyHtoD i cuMemcpyDtoH.<\/p>\n<h2>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438<\/h2>\n<ul>\n<li>\n<p><strong>Kori\u0161\u0107enje VRAM-a kao obi\u010dnog Linux swap-a.<\/strong> Nakon pokretanja, demon pru\u017ea VRAM kao \/dev\/nbd0 ili drugi NBD ure\u0111aj, koji za jezgro izgleda kao standardni blok ure\u0111aj.<\/p>\n<\/li>\n<li>\n<p><strong>Rad bez sopstvenog modula jezgra.<\/strong> Projekt ne zahteva pisanje, kompilaciju i odr\u017eavanje posebnog kernel modula, ne koristi unutra\u0161nje simbole NVIDIA drajvera i trebao bi da pre\u017eivi a\u017euriranja jezgra i drajvera bez ponovne kompilacije.<\/p>\n<\/li>\n<li>\n<p><strong>Usmerenje na potro\u0161a\u010dke NVIDIA GPU-ove.<\/strong> V zahtevah so navedeni NVIDIA GPU z CUDA podporo, vklju\u010dno s potro\u0161ni\u0161kimi RTX\\\/GTX karticami, uradni NVIDIA gonilnik z libcuda.so.1, modul nbd v jedru Linux, nbd-client, gcc in make. CUDA Toolkit v tem primeru ni potreben.<\/p>\n<\/li>\n<li>\n<p><strong>systemd-integracija.<\/strong> Namestitev preko install.sh doda storitev vram-swap-nbd, ki jo lahko zagnate preko systemctl; po namestitvi se storitev vklju\u010di za samodejni zagon ob bootanju.<\/p>\n<\/li>\n<li>\n<p><strong>Nastavitev velikosti in prioritete swap-a.<\/strong> V enoti systemd lahko nastavite VRAM_SETUP_SIZE_MB, torej zgornjo mejo dodeljene VRAM, in VRAM_SWAP_PRIORITY, torej prioriteto swap naprave. Vi\u0161ja prioriteta pomeni, da bo Linux prej uporabil to swap plast.<\/p>\n<\/li>\n<li>\n<p><strong>Samodejno zmanj\u0161anje zahtevane velikosti.<\/strong> \u010ce zahtevan obseg VRAM ni na voljo, demon posku\u0161a zmanj\u0161ati velikost v blokih po 512 MiB, da kljub temu dodeli na voljo obseg, na primer, \u010de je del pomnilnika \u017ee zaseden s kompozitorjem ali grafi\u010dno sejo.<\/p>\n<\/li>\n<li>\n<p><strong>Preveritveni scenariji.<\/strong> V repozitoriju je test-nbd.sh za smoke-test z zapisovanjem\\\/branjem 1 MiB in test-fill.sh za stresno testiranje celotnega VRAM razdelka.<\/p>\n<\/li>\n<li>\n<p><strong>Navedena zmogljivost pribli\u017eno 1,3 GB\\\/s.<\/strong> Na RTX 3070 Laptop je avtor izmeril sekvencno pisanje 7 GB v blokih po 4 MB pribli\u017eno na ravni 1,3 GB\\\/s.<\/p>\n<\/li>\n<\/ul>\n<h2>Scenariji uporabe<\/h2>\n<p><strong>Prenosniki z vgrajeno RAM.<\/strong> Glavni scenarij so moderna prenosna ra\u010dunalnika, kjer 16 ali 32 GB pomnilnika \u017ee ni dovolj, vendar ga ni mogo\u010de raz\u0161iriti. \u010ce ima tak\u0161no napravo diskreten RTX grafi\u010dni procesor, lahko del VRAM uporabite kot dodatno swap plast. To ne spremeni VRAM v polnopravno RAM, vendar lahko re\u0161i sistem pred nenadnim preklopom na po\u010dasen SSD swap ali pred OOM-ubijalcem ob vrhuncu obremenitev.<\/p>\n<p><strong>Te\u017eka delovna okolja razvijalca.<\/strong> IDE, brskalnik z desetinami zavihkov, Docker kontejnerji, lokalne zbirke podatkov, gradnje velikih projektov in testna okolja enostavno ustvarjajo kratkotrajne vrhove porabe pomnilnika. V tem scenariju NBD-VRAM lahko deluje kot bla\u017eilec: ne pospe\u0161i obi\u010dajnega dela, temve\u010d omili trenutek, ko RAM po\u010di.<\/p>\n<p><strong>Zmanj\u0161anje obremenitve na SSD swap.<\/strong> \u010ce se swap na SSD pogosto uporablja, je to ne le po\u010dasneje, ampak tudi povzro\u010da dodatno pisanje na napravo. VRAM swap lahko postavite z vi\u0161jim prioritetom, tako da sistem najprej odrine strani v video pomnilnik in \u0161ele nato dostopa do SSD, kadar pride do prenapolnjenosti RAM. To je \u0161e posebej pomembno za prenosnike, kjer je SSD pogosto tudi te\u017eko zamenjati ali drag.<\/p>\n<p><strong>Kombinacija z zram.<\/strong> Avtor neposredno opisuje shemo, kjer VRAM swap pridobi vi\u0161ji prioritet in sprejme prvo 'prelivanje' pomnilnika, zram se uporablja kot naslednja raven, SSD pa ostaja zadnja obrambna linija. Ta shema je lahko koristna za delovne postaje in prenosnike, kjer je pomembneje ohraniti odzivnost sistema pri pomanjkanju pomnilnika, kot pa dose\u010di najve\u010djo predvidljivost zakasnitev.<\/p>\n<p><strong>Lokalne AI\/LLM naloge okoli GPU, vendar ne namesto VRAM za model.<\/strong> NBD-VRAM ne pove\u010duje video pomnilnika, dostopnega CUDA aplikaciji kot VRAM za model. To je obratni scenarij: ne RAM se uporablja kot VRAM, ampak VRAM se uporablja kot swap za obi\u010dajno Linux pomnilnik. Zato projekt ne bo omogo\u010dil neposrednega nalaganja ve\u010djega modela v GPU. Lahko pa je koristen na napravi, kjer poleg LLM inference delujejo brskalniki, IDE, indeksatorji, Python okolja in vsebniki, medtem ko se sistemski RAM za\u010dne iz\u010drpavati.<\/p>\n<p><strong>Doma\u010de in eksperimentalne delovne postaje.<\/strong> Projekt je zanimiv za uporabnike, ki pogosto pustijo grafi\u010dno kartico neizkori\u0161\u010deno zunaj iger, renderiranja ali ML nalog. Na primer, 8-12 GB VRAM na namizni GeForce lahko za\u010dasno pretvorite v dodatno plast swap za te\u017eke naloge kompilacije, obdelave podatkov ali zagon. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sl\/vps\/\" title=\"virtualnih naprav\" data-wpil-keyword-link=\"linked\">virtualnih naprav<\/a>.<\/p>\n<h2>Omejitve<\/h2>\n<p>NBD-VRAM ni nadomestilo za sistemski pomnilnik. Dostop do takega swap poteka po verigi kernel swap \u2192 \/dev\/nbdX \u2192 nbd gonilnik \u2192 Unix socket \u2192 demon \u2192 CUDA kopiranje \u2192 VRAM, zato bodo zakasnitve in vedenje druga\u010dni od pravega RAM. To je bolj nujna ali prehodna plast med RAM in SSD, kot pa na\u010din 'dodajanja pomnilnika' brez posledic.<\/p>\n<p>Projekt je tudi povezan z uradnim NVIDIA skladom s CUDA. Nouveau\/Nova za to nista primerna, saj zahteva libcuda.so.1. Phoronix <a rel=\"nofollow\" href=\"https:\/\/www.phoronix.com\/news\/NVIDIA-NBD-VRAM\">tudi opa\u017ea<\/a>, da je NBD-VRAM zasnovan prav za potro\u0161ni\u0161ke NVIDIA GPU, kjer alternativni pristopi preko NVIDIA P2P API ne delujejo.<\/p>\n<p>V suhem ostanku, NBD-VRAM je manj\u0161i, a zanimiv sistemski hack za Linux: ne dela \u010dude\u017eev in ne nadome\u0161\u010da nadgradnje RAM-a, ampak omogo\u010da uporabo neizkori\u0161\u010dene video pomnilnosti kot dodatne stopnje swap pred SSD. Za prenosnike z vgrajenim pomnilnikom in diskretno RTX grafi\u010dno kartico je to lahko prakti\u010den na\u010din za obvladovanje vrhunskih obremenitev brez takoj\u0161njega padca aplikacij ali bole\u010dega zmanj\u0161anja hitrosti shranjevanja.<\/p>\n<p>Izvor: <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/hardware\/18308769\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 NBD-VRAM, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 NVIDIA GPU \u043a\u0430\u043a swap-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0432 Linux. \u041f\u0440\u043e\u0435\u043a\u0442 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0438 \u0441 \u0440\u0430\u0441\u043f\u0430\u044f\u043d\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u0433\u0434\u0435 RAM \u043d\u0435\u043b\u044c\u0437\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0435\u0441\u0442\u044c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430 NVIDIA RTX\/GTX \u0441 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 VRAM. \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 C \u0438 shell, \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. \u0418\u0434\u0435\u044f NBD-VRAM \u043f\u0440\u043e\u0441\u0442\u0430: \u0435\u0441\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-181858","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 NBD-VRAM, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 NVIDIA GPU \u043a\u0430\u043a swap-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0432 Linux.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sl\/blog\/news\/opublikovan-nbd-vram\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d NBD-VRAM | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 NBD-VRAM, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 NVIDIA GPU \u043a\u0430\u043a swap-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0432 Linux.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/news\/opublikovan-nbd-vram\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-06-02T12:48:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-02T12:48:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Objavljen NBD-VRAM | ProHoster","description":"Objavljen je odprt projekt NBD-VRAM, ki omogo\u010da izkori\u0161\u010danje dela video pomnilnosti NVIDIA GPU kot swap prostora v Linuxu.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/news\/opublikovan-nbd-vram","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d NBD-VRAM | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 NBD-VRAM, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u043e\u043f\u0430\u043c\u044f\u0442\u0438 NVIDIA GPU \u043a\u0430\u043a swap-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0432 Linux.","og:url":"https:\/\/prohoster.info\/sl\/blog\/news\/opublikovan-nbd-vram","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-06-02T12:48:22+00:00","article:modified_time":"2026-06-02T12:48:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/181858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=181858"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/181858\/revisions"}],"predecessor-version":[{"id":182088,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/181858\/revisions\/182088"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=181858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=181858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=181858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}