NVIDIA Desktops and Laptops: VRAM Tiers, CUDA and WSL2
By the end of this lesson you will be able to look at any NVIDIA card and say which tier of this course’s labs it can follow; install the driver and CUDA toolkit on Linux the way NVIDIA documents it; make the Windows decision once, with the one rule about WSL2 that everything else depends on; and predict what happens when a model is slightly too large for the card, which is the most common situation on this track.
This is the Track N lesson, and it is the track most readers are on.
The ladder
Section titled “The ladder”Track N is the only one of the four where the accelerator’s memory is separate from the machine’s, fixed at manufacture, and offered in a ladder of sizes. Knowing where your card sits on that ladder tells you almost everything about which pages of this course you can follow on their primary path.
| Card | Memory as published | Course tier |
|---|---|---|
| RTX PRO 6000 Blackwell | 96 GB GDDR7 with ECC | 96 GB |
| GeForce RTX 5090 | 32 GB GDDR7 | 32 GB |
| GeForce RTX 4090 | 24 GB GDDR6X | 24 GB |
| GeForce RTX 3090 | 24 GB GDDR6X | 24 GB |
| GeForce RTX 5080 / 5070 Ti | 16 GB GDDR7 | 12-16 GB |
| GeForce RTX 4080 / 4080 SUPER / 4070 Ti SUPER | 16 GB GDDR6X | 12-16 GB |
| GeForce RTX 5070 | 12 GB GDDR7 | 12-16 GB |
| GeForce RTX 4070 / 4070 SUPER / 4070 Ti | 12 GB | 12-16 GB |
| GeForce RTX 5060 Ti / 4060 Ti | 16 GB or 8 GB | 8 GB or 12-16 GB |
| GeForce RTX 5060 / 4060 / 5050 | 8 GB | 8 GB |
the cards named in the first column, not applicable · no engine; NVIDIA comparison and product pages retrieved 2026-09-09 · no model loaded, not applicable · 0 tokens of context · 2026-09-09
Memory sizes as published by NVIDIA; the RTX 3090 row comes from the course hardware reference, as the current comparison page covers the 40 and 50 series. Laptop parts sold under these names generally have less memory and lower bandwidth than their desktop namesakes: check the specification for the machine, not for the name. Bandwidth figures for these cards are in the first lesson of this part.
Two things about that ladder shape the rest of Level 2.
Eight gigabytes is a real tier, not a consolation prize. It runs 8B-class models at four-bit quantisation with a useful context, which is enough for every Level 1 and Level 2 lab on its reduced path, and this course states a memory floor on every hands-on page precisely so that an 8 GB reader always knows where they stand.
Twenty-four gigabytes is where the shape of the course changes. At that tier a 32B-class model at four bits becomes possible, QLoRA fine-tuning of an 8B model fits, and the distillation teacher in Level 3 has somewhere to live. The hardware reference lists what each tier unlocks, and every lab states its floor.
Driver and toolkit on Linux
Section titled “Driver and toolkit on Linux”NVIDIA splits this into two documents, and the split confuses people, so here it is plainly: the driver is one installation and the CUDA toolkit is another. Many readers need only the first, because PyTorch wheels and prebuilt engine binaries bring their own CUDA runtime libraries with them. You need the toolkit when you are compiling something, which on this track means building llama.cpp in Part 6 or anything with custom kernels in Level 3.
NVIDIA’s CUDA Installation Guide for Linux documents CUDA 13.3 at the time this lesson was written and lists Ubuntu 22.04 LTS, 24.04 LTS and 26.04 LTS among its supported distributions. Its pre-installation checks are worth running before anything else, because each of them fails in a way that is otherwise mysterious later:
RunnableTrack N · NVIDIA GPU
lspci | grep -i nvidiagcc --versionhostnamectlThe network-repository installation is three steps: install NVIDIA’s keyring package for your
distribution and architecture, refresh the package lists, and install the toolkit metapackage. The
guide’s post-installation step adds the toolkit’s bin directory to your PATH, with the CUDA
version in the directory name.
Fragment — not complete on its own
# The keyring package URL contains your distribution and architecture; take the# exact URL from the installation guide rather than from any tutorial.sudo dpkg -i cuda-keyring_1.1-1_all.debsudo apt updatesudo apt install cuda-toolkitThe guide notes that driver installation instructions now live in a separate driver installation
guide rather than in the toolkit guide. On most distributions the packaged driver is the least
troublesome route, and the only test that matters is whether nvidia-smi reports your card.
RunnableTrack N · NVIDIA GPU
nvidia-smi --query-gpu=name,memory.total,driver_version --format=csvWindows, answered once
Section titled “Windows, answered once”Three arrangements are possible on a Windows machine, and this course picks one.
Linux, natively. Everything in the course works. If the machine can be dedicated to this, it is the least friction overall.
Windows, natively. llama.cpp, Ollama, LM Studio and the desktop tooling of Part 7 all run. Training frameworks and several serving engines do not, or do so awkwardly. This is a good place to be for Level 2 and a poor one for Level 3.
Windows with WSL2. A Linux userspace with GPU access, which is what this course’s Windows path assumes. Almost every Linux instruction then works unchanged.
The CUDA on WSL user guide has one rule that everything else depends on, and it states it twice. Install “NVIDIA GeForce Game Ready or NVIDIA RTX Quadro Windows 11 display driver on your system”, and then: “This is the only driver you need to install. Do not install any Linux display driver in WSL.” Elsewhere the same guide says that “users must not install any NVIDIA GPU Linux driver within WSL 2”. The Windows driver is projected into the Linux environment for you; installing a Linux driver on top of it breaks the projection.
The trap the guide warns about is that the obvious CUDA installation does exactly the forbidden
thing, because the usual metapackages pull a driver in with them. In its words: “DO NOT choose the
cuda, cuda-12-x, or cuda-drivers meta-packages under WSL 2”, and instead “Install the
cuda-toolkit-12-x metapackage only” — that is, the versioned toolkit metapackage matching the
release you want, and nothing that carries a driver.
The guide is also honest about the limits, and two of them matter for this course. Pinned system memory is limited under WSL2, and the guide notes that some deep-learning training workloads can exceed that limit and may not work. And full managed-memory support is not available, so anything relying on CUDA unified memory behaves differently from native Linux. Neither stops Level 2. Both are worth knowing before you conclude that a training script is broken.
Track N, and where WSL2 inserts itself
- Engines, frameworks and the course scriptsInstalled inside WSL2, exactly as on native Linux.yours
- CUDA toolkit, if you are compilingInside WSL2, from the versioned toolkit metapackage only. Never a metapackage that carries a driver.yours
- WSL2 Linux userspaceUbuntu by default. Sees the GPU through the projection, not through a driver of its own.
- The projection layerWhat makes the Windows driver visible to Linux processes. Nothing to install and nothing to configure.do not touch
- NVIDIA Windows display driverInstalled on Windows. The only driver on the machine.
- The graphics card and its VRAMFixed capacity, high bandwidth, on the far side of PCIe from system memory.
When the model does not fit
Section titled “When the model does not fit”This is the situation Track N readers meet most, and it deserves a picture rather than a warning.
Take Qwen3-32B, published by Alibaba under the Apache-2.0 licence according to its model card, at Q4_K_M, with a full 32,768-token context. The model reference gives the weight size and the key-value cache cost per token; multiply the second by the context length and add.
Qwen3-32B at Q4_K_M with 32k of context, on a 24 GB card
- Weights, Q4_K_M
- 19.8 GB
- Key-value cache, 32,768 tokens at FP16
- 8.6 GB
- Requested
- 28.4 GB
- Machine budget
- 24 GB
Every engine offers the same three ways out, and they are not equivalent.
Ask for less context. The cheapest fix and usually the right one. Halving the context roughly halves the cache, and most work does not need the model’s maximum.
Quantise the cache. Storing keys and values at eight bits rather than sixteen roughly halves the same figure, at a quality cost that Part 6 shows you how to measure rather than assume.
Offload layers to system memory. The engine keeps some layers on the card and the rest in system RAM. It works, and it is slow, for the reason the first lesson of this part gave: every offloaded weight crosses PCIe on every token, and PCIe carries a fraction of what the card’s own memory does. The decode rate does not degrade gracefully as you offload; it falls off a cliff at the point where the offloaded fraction starts to dominate the time. Part 6’s challenge page has you find that cliff deliberately, because recognising it in a log is a skill.
More than one card
Section titled “More than one card”Two cards give you more VRAM and, with some engines, more speed. What they do not give you on this track is a fast link between them: the course hardware reference records that the 40 and 50 series have no NVLink, so cards communicate over PCIe.
That matters because the two ways of splitting a model across devices have very different appetites for that link. Pipeline parallel puts different layers on different cards and passes one small activation between them per token, which PCIe handles comfortably. Tensor parallel splits every layer across cards and exchanges data within each layer, which wants a link far faster than PCIe. Part 19 develops both properly. The practical summary for a two-card desktop is that adding a second card reliably buys capacity, and buys throughput only in the arrangements that tolerate a slow link.
Laptops
Section titled “Laptops”A laptop with an NVIDIA GPU is a Track N machine with three qualifications, and they compound.
The memory is smaller than the desktop card of the same name, often by a whole tier. The bandwidth is lower, as the course hardware reference notes for laptop parts. And the power budget moves: a laptop GPU’s sustained clock depends on the power limit the manufacturer chose and on whether the machine is plugged in, so the same script can produce noticeably different numbers on battery and on mains, and again after ten minutes when the chassis is warm.
None of that stops the course. It does mean that a laptop reader should record the power state and the run duration alongside every measurement, which is a field the lab notebook in the next lab has for exactly this reason, and should expect the second and third runs of a benchmark to be slower than the first.
Distinguish device memory, host memory and the power envelope
Section titled “Distinguish device memory, host memory and the power envelope”A discrete GPU has a local memory budget. Host RAM can store offloaded layers or staging buffers, but those bytes cross an interconnect or are computed on the CPU. Adding host RAM can make a larger workload possible while leaving it slower than a smaller fully resident model.
On laptops, repeat the same request under the power conditions in which you will use the machine. Record whether it is plugged in, the power profile and competing graphics work. A brief cold-device result and a sustained thermally limited result answer different questions. Do not compare them as if only the checkpoint changed.
For WSL, distinguish the host GPU driver from userspace libraries installed inside Linux. Follow the platform setup lesson and verify execution inside the environment where the server actually runs. An accelerator visible on the Windows host does not prove the Linux application uses it. Keep one small smoke workload and its startup log; it is the control you rerun after changing a driver, container or Python environment.
Track N is discrete memory: a fixed amount of fast VRAM on the card, with everything else on the far side of PCIe. The card’s memory size decides which tier of the course you can follow, from 8 GB up to 96 GB on the workstation Blackwell part, and laptop parts sit a tier below their desktop namesakes.
On Linux, the driver and the CUDA toolkit are separate installs and most readers need only the
driver, with nvidia-smi as the single test that matters. On Windows the course uses WSL2, where the
one firm rule is that the NVIDIA driver is installed on Windows and never inside WSL, and the toolkit
metapackage chosen must be the one that does not carry a driver. The characteristic failure on this
track is a model plus its context exceeding the card, and the ways out are less context, a quantised
cache, smaller weights and, last, offloading to system memory, which changes the machine’s
performance class. A second card adds capacity over PCIe, with no NVLink on the recent consumer
generations, so it helps throughput only in the splitting arrangements that tolerate a slow link.
Check your understanding
Sources for this lesson
4 verified · checked 2026-09-09
- 01NVIDIA GeForce graphics card comparisonnvidia.com/en-us/geforce/graphics-cards/compare2026-09-09
- 02NVIDIA RTX PRO 6000 Blackwell§ Specificationsnvidia.com/en-us/products/workstations/professional-desktop-gpus/rtx-pro-60002026-09-09
- 03NVIDIA CUDA Installation Guide for Linux§ Pre-installation actions; Network repository installation; Post-installation actionsdocs.nvidia.com/cuda/cuda-installation-guide-linux/index.html2026-09-09
- 04NVIDIA CUDA on WSL User Guide§ Getting started with CUDA on WSL 2; CUDA support for WSL 2; Known limitationsdocs.nvidia.com/cuda/wsl-user-guide/index.html2026-09-09
Every technical claim on this page was checked against the official documentation of the tool, vendor or model publisher on the date shown, at the version pinned for the course. Where the course disagrees with folklore, the source is how you can tell which one to trust.