{"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\/no\/blog\/news\/opublikovan-nbd-vram","title":{"rendered":"NBD-VRAM er publisert","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Offentliggjort \u00e5pen prosjekt <strong>NBD-VRAM<\/strong>, som lar deg bruke en del av minnet til NVIDIA GPU som swap-plass i Linux. Prosjektet er hovedsakelig rettet mot b\u00e6rbare datamaskiner med loddet RAM, der RAM ikke kan utvides, men systemet har et diskret NVIDIA RTX\/GTX grafikkort med ubrukt VRAM. Koden er skrevet i C og shell, og distribueres under lisensen <strong>MIT<\/strong>.<\/p>\n<p>Ideen bak NBD-VRAM er enkel: hvis systemet allerede begynner \u00e5 bruke swap p\u00e5 SSD, kan du sette et mellomlag f\u00f8r SSD\u2014grafikkminnet. Forfatteren gir et eksempel med en b\u00e6rbar datamaskin med <strong>RTX 3070 Laptop<\/strong>: av 8 GB VRAM ble 7 GB tildelt til swap, og totalt med RAM, zram og SSD swap fikk systemet omtrent 46 GB adresserbart minne. Den foresl\u00e5tte rekkef\u00f8lgen for overflod er som f\u00f8lger: f\u00f8rst brukes RAM, deretter VRAM som rask swap, deretter zram, og f\u00f8rst etter det SSD.<\/p>\n<p>Teknisk sett legger ikke NBD-VRAM til en ny kjerne-driver. En liten daemon tildeler minnet fra grafikkortet via <strong>CUDA Driver API<\/strong>, og deretter gir det til Linux-kjernen som en blokk-enhet via <strong>NBD<\/strong> \u2014 Network Block Device \u2014 over en Unix-socket. Etter tilkobling med standard nbd-client vises \/dev\/nbdX i systemet, som kan partisjoneres som vanlig swap med mkswap og aktiveres med swapon.<\/p>\n<p>Forfatteren understreker spesielt at denne tiln\u00e6rmingen er valgt p\u00e5 grunn av begrensningene til forbrukergrafikkortene fra NVIDIA. En mer direkte vei gjennom NVIDIA P2P API p\u00e5 GeForce, if\u00f8lge ham, m\u00f8ter EINVAL-feil, da de relevante funksjonene i praksis kun er tilgjengelige for profesjonelle og servermodeller. Alternativet med direkte tilgang til BAR1 fungerte heller ikke: det tilgjengelige er bare et lite kartlagt omr\u00e5de, og lesing fra resten returnerer nuller. NBD-tiln\u00e6rmingen omg\u00e5r denne begrensningen, da den bruker vanlige CUDA-kopieringer cuMemcpyHtoD og cuMemcpyDtoH.<\/p>\n<h2>Funksjoner<\/h2>\n<ul>\n<li>\n<p><strong>Bruk av VRAM som vanlig Linux swap.<\/strong> Etter oppstart gir daemonen grafikkminnet som \/dev\/nbd0 eller en annen NBD-enhet, som for kjernen ser ut som en standard blokk-enhet.<\/p>\n<\/li>\n<li>\n<p><strong>Funksjon uten egen kjerne-modul.<\/strong> Prosjektet krever ikke \u00e5 skrive, bygge og vedlikeholde en egen kernel-modul, bruker ikke interne symboler fra NVIDIA-driveren og b\u00f8r overleve kjernens og driverens oppdateringer uten ombygging.<\/p>\n<\/li>\n<li>\n<p><strong>Fokus p\u00e5 forbruker NVIDIA GPU.<\/strong> Kravene inkluderer NVIDIA GPU med st\u00f8tte for CUDA, deriblant forbruker RTX\/GTX-kort, offisiell NVIDIA-driver med libcuda.so.1, nbd-modul i Linux-kjernen, nbd-client, gcc og make. CUDA Toolkit er ikke n\u00f8dvendig.<\/p>\n<\/li>\n<li>\n<p><strong>systemd-integrasjon.<\/strong> Installasjon gjennom install.sh legger til vram-swap-nbd-tjenesten, som kan kj\u00f8res via systemctl; etter installasjonen aktiveres tjenesten for automatisk oppstart ved oppstart.<\/p>\n<\/li>\n<li>\n<p><strong>Konfigurasjon av st\u00f8rrelse og prioritet for swap.<\/strong> I systemd-enheten kan VRAM_SETUP_SIZE_MB, det vil si den \u00f8vre grensen for tildelt VRAM, og VRAM_SWAP_PRIORITY, det vil si prioritet for swap-enheten, defineres. Jo h\u00f8yere prioritet, desto tidligere vil Linux bruke dette swap-laget.<\/p>\n<\/li>\n<li>\n<p><strong>Automatisk reduksjon av forespurt st\u00f8rrelse.<\/strong> Hvis den n\u00f8dvendige VRAM-kapasiteten ikke er tilgjengelig, pr\u00f8ver demon \u00e5 redusere st\u00f8rrelsen i blokker p\u00e5 512 MiB for \u00e5 fortsatt tildele tilgjengelig kapasitet, for eksempel hvis en del av minnet allerede er opptatt av komposisjon eller grafisk \u00f8kt.<\/p>\n<\/li>\n<li>\n<p><strong>Testskripter.<\/strong> I depotet finnes test-nbd.sh for r\u00f8yktesting med lesing\/skriving av 1 MiB og test-fill.sh for stresstesting av hele VRAM-partisjonen.<\/p>\n<\/li>\n<li>\n<p><strong>Utsatt ytelse p\u00e5 omtrent 1,3 GB\/s.<\/strong> P\u00e5 RTX 3070 Laptop m\u00e5lte forfatteren sekvensiell skriving av 7 GB i blokker p\u00e5 4 MB p\u00e5 omtrent 1,3 GB\/s.<\/p>\n<\/li>\n<\/ul>\n<h2>Bruksscenarier<\/h2>\n<p><strong>B\u00e6rbare datamaskiner med loddet RAM.<\/strong> Hovedscenariet er moderne b\u00e6rbare datamaskiner hvor 16 eller 32 GB RAM ikke er tilstrekkelig, men som ikke kan oppgraderes. Hvis en slik maskin har et diskret RTX-kort, kan en del av VRAM brukes som et ekstra swap-lag. Dette gj\u00f8r ikke VRAM til fullverdig RAM, men kan redde systemet fra \u00e5 g\u00e5 br\u00e5tt ned til en treg SSD swap eller OOM-killer ved toppbelastninger.<\/p>\n<p><strong>Tunge utviklerarbeidsmilj\u00f8er.<\/strong> IDE, nettleser med dusinvis av faner, Docker-containere, lokale databaser, bygg av store prosjekter og testmilj\u00f8er skaper lett kortvarige topper i minneforbruket. I et slikt scenario kan NBD-VRAM fungere som en buffer: ikke akselerere den vanlige driften, men dempe \u00f8yeblikket n\u00e5r RAM er tom.<\/p>\n<p><strong>Reduksjon av belastning p\u00e5 SSD swap.<\/strong> Hvis swap p\u00e5 SSD brukes ofte, er det ikke bare tregere, men det skaper ogs\u00e5 un\u00f8dvendig skriving p\u00e5 lagringsenheten. VRAM-swap kan settes med h\u00f8yere prioritet, slik at n\u00e5r RAM er full, vil systemet f\u00f8rst flytte sider til videominne, og deretter g\u00e5 til SSD. Dette er s\u00e6rlig relevant for b\u00e6rbare datamaskiner, der SSD ofte er uavtagbar eller kostbar \u00e5 bytte.<\/p>\n<p><strong>Kombinasjon med zram.<\/strong> Forfatteren beskriver klart et oppsett der VRAM swap f\u00e5r h\u00f8yere prioritet og tar den f\u00f8rste 'utl\u00f8pingen' av minnet, zram brukes som neste niv\u00e5, og SSD forblir den siste forsvarslinjen. Et slikt oppsett kan v\u00e6re nyttig for arbeidsstasjoner og b\u00e6rbare datamaskiner, der det er viktigere \u00e5 opprettholde responsivitet i systemet ved minnemangel enn \u00e5 oppn\u00e5 maksimal forutsigbarhet i forsinkelser.<\/p>\n<p><strong>Lokale AI\/LLM-oppgaver rundt GPU, men ikke i stedet for VRAM for modellen.<\/strong> NBD-VRAM \u00f8ker ikke videominne tilgjengelig for CUDA-applikasjoner som VRAM for modellen. Det er motsatt scenario: ikke RAM brukes som VRAM, men VRAM brukes som swap for vanlig Linux-minne. Derfor vil prosjektet ikke tillate direkte lasting av en st\u00f8rre modell inn i GPU. Men det kan v\u00e6re nyttig p\u00e5 en maskin hvor nettleser, IDE, indekserere, Python-milj\u00f8er og containere jobber ved siden av LLM-inferens, og system-RAM begynner \u00e5 ta slutt.<\/p>\n<p><strong>Hjemme- og eksperimentelle arbeidsstasjoner.<\/strong> Prosjektet er interessant for brukere som har grafikkort som ofte st\u00e5r stille utenfor spill, rendering eller ML-oppgaver. For eksempel kan 8\u201312 GB VRAM p\u00e5 en desktop GeForce midlertidig bli gjort om til et ekstra lag med swap for tunge kompilasjonsoppgaver, databehandling eller oppstart. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/no\/vps\/\" title=\"virtual machines\" data-wpil-keyword-link=\"linked\">virtual machines<\/a>.<\/p>\n<h2>Begrensninger<\/h2>\n<p>NBD-VRAM er ikke en erstatning for RAM. Tilgang til slik swap g\u00e5r gjennom kjede: kernel swap \u2192 \/dev\/nbdX \u2192 nbd-driver \u2192 Unix-socket \u2192 daemon \u2192 CUDA-kopiering \u2192 VRAM, s\u00e5 forsinkelser og oppf\u00f8rsel vil v\u00e6re forskjellige fra ekte RAM. Dette er mer et n\u00f8d- eller mellomlag mellom RAM og SSD, enn en m\u00e5te \u00e5 'legge til minne' uten konsekvenser.<\/p>\n<p>Prosjektet er ogs\u00e5 knyttet til det offisielle NVIDIA-stakken med CUDA. Nouveau\/Nova er ikke egnede for dette, da libcuda.so.1 kreves. Phoronix <a rel=\"nofollow\" href=\"https:\/\/www.phoronix.com\/news\/NVIDIA-NBD-VRAM\">merker ogs\u00e5<\/a>, at NBD-VRAM er laget spesielt for forbruker-NVIDIA GPU-er, hvor alternative tiln\u00e6rminger via NVIDIA P2P API ikke fungerer.<\/p>\n<p>I den endelige sammenhengen er NBD-VRAM en liten, men interessant systemhack for Linux: den gj\u00f8r ikke underverker og erstatter ikke RAM-oppgraderinger, men lar deg bruke ubrukt videominne som et ekstra niv\u00e5 av swap f\u00f8r SSD. For b\u00e6rbare datamaskiner med fastmontert minne og dedikert RTX-kort kan dette v\u00e6re en praktisk m\u00e5te \u00e5 h\u00e5ndtere toppbelastninger p\u00e5 uten at applikasjoner umiddelbart krasjer eller at det blir en plagsom overgang til en treg lagringsenhet.<\/p>\n<p>Kilde: <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.5 - 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\/no\/blog\/news\/opublikovan-nbd-vram\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\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\/no\/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\udd47NBD-VRAM lansert | ProHoster","description":"Det er lansert et \u00e5pent prosjekt NBD-VRAM som gj\u00f8r det mulig \u00e5 bruke en del av NVIDIA GPU-videominne som swap-plass i Linux.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/news\/opublikovan-nbd-vram","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\/no\/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\/no\/wp-json\/wp\/v2\/posts\/181858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=181858"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/181858\/revisions"}],"predecessor-version":[{"id":182088,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/181858\/revisions\/182088"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=181858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=181858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=181858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}