AILLMDockerSelf-Hosting

Which Local LLM Fits Your GPU? A VRAM Guide for Ollama and llama.cpp (Linux, Windows, Mac)

Before you start

  • 18 min read

Boxes marked Run in terminal are what you type; plain text explains why. Check what you need first

What you get in one minute#

A local LLM runs fast only when the model file, the context memory and a little overhead all fit in your GPU memory (VRAM). This guide gives you the official download sizes, a simple way to check the fit, and the commands to run it with Ollama or llama.cpp.

At a glance:

  • You get: a size table of current open models (Qwen, Gemma, Llama, Mistral, DeepSeek, gpt-oss) and a pick list for 8, 12, 16, 24 and 32 GB, plus Apple Silicon.
  • Time needed: 10 minutes to read, about 20 minutes to set up Ollama and test a model (plus the model download).
  • Difficulty: easy. You copy commands and read one status table.
  • You need: a PC with an NVIDIA GPU (or an Apple Silicon Mac), 20 GB or more free disk, and Docker only if you want the container route.
WhatValue
Ollama version usedv0.40.11 (GitHub release of 24 October 2026)
Ollama imageollama/ollama:0.40.11 (the official image, pinned)
llama.cpprelease b11890 (26 October 2026); image tag ghcr.io/ggml-org/llama.cpp:server-cuda-b11889 (the official image, pinned)
Sizes in the tablesDownload sizes from the official Ollama library tag pages, read on 2026-10-26
Ports11434 (Ollama API), bound to 127.0.0.1
Official docsdocs.ollama.com and llama.cpp

Why the latest Ollama? It ships almost daily, so we read the issue tracker for the last two weeks. Open reports are narrow (an AMD iGPU, one chat error, Mac Metal crashes). No wave of install failures or lost data, so we use the current release. AMD iGPU owners: see Known bugs.

How it fits together#

Three things share your VRAM: the model weights (the file you download), the context memory (the KV cache, which grows with context length), and a little overhead. If the sum is too big, the rest spills into slow system RAM.

Will this model fit your GPU: pick a model and size, add context memory, add overhead; if the total is below your VRAM it runs fully on the GPU, otherwise use a smaller quantization, a shorter context or accept CPU offload

Before you start#

You need a supported GPU and a current driver. Docker is optional.

SystemWhat you need
LinuxNVIDIA GPU with compute capability 5.0 or higher and driver 550 or newer (cards with 5.0 to 6.2 need 570 or newer). For Docker: Docker Engine, Compose plugin, NVIDIA Container Toolkit
WindowsWindows 10 22H2 or newer, NVIDIA driver 551.61 or newer. The native Ollama app needs no Docker. For Docker: Docker Desktop with the WSL2 engine
MacmacOS Sonoma (14) or newer and an Apple M-series chip. Intel Macs run on CPU only. Use the native app: Docker on a Mac cannot pass the Apple GPU through

AMD Radeon cards work through ROCm or Vulkan; see the Ollama hardware page.

Check your hardware first.

Linux#

Run in terminalbash
nvidia-smi --query-gpu=name,memory.total,memory.used --format=csv
free -h
df -h ~

Windows (PowerShell)#

Run in terminalpowershell
nvidia-smi --query-gpu=name,memory.total,memory.used --format=csv
Get-CimInstance Win32_ComputerSystem | Select-Object TotalPhysicalMemory
Get-PSDrive C

Mac (Terminal)#

Run in terminalbash
sysctl -n hw.memsize | awk '{printf "%.0f GB unified memory\n", $1/1024/1024/1024}'
system_profiler SPDisplaysDataType | grep -E "Chipset Model|Total Number of Cores"

Check list:

  • [ ] I know my VRAM (or my Mac's memory) in GB
  • [ ] Port 11434 is free
  • [ ] At least 20 GB free disk
  • [ ] Only for the Traefik section: a domain, DNS and ports 80/443

Tested on: not run by DIY Lab Hub for this guide (Linux = not run, Windows = not run, Mac = not run). Commands and sizes were checked against the official Ollama and llama.cpp pages on 2026-10-26 (see Sources).

How your VRAM is used#

Weights are the big, fixed part. The KV cache is the part you can control. Overhead is small but real.

PartWhat it isWhat you can do
WeightsThe model file. Its size depends on the quantizationPick a smaller quantization or a smaller model
KV cacheThe model's short-term memory of your prompt and answer. Grows with the context length (and with parallel requests)Lower the context length, or quantize the cache
OverheadWorking buffers and the driver's own shareLeave headroom. Do not fill the card to the last megabyte

Quantization in plain words#

Quantization stores each weight with fewer bits: a smaller file, a small loss in quality.

NameMeaningOfficial size effect (examples from the Ollama library)
q4_K_M4-bit. The usual default. Best size for qualityllama3.1:8b = 4.9 GB
q5_K_M5-bit. A bit better, a bit biggerllama3.1:8b = 5.7 GB
q8_08-bit. Close to the originalllama3.1:8b = 8.5 GB
fp16 / bf16Full 16-bit. The biggestmistral:7b-instruct-v0.3 = 14 GB
qatQuantization-aware training (Gemma). Trained to stay good at 4 bitsgemma4:12b-it-qat = 7.2 GB

Rule of thumb from DIY Lab Hub (not official): start with q4_K_M; go up to q8_0 only with spare VRAM.

Context length and the KV cache#

Ollama picks a default context length from your VRAM. Per the official context length page:

Your VRAMDefault context
Under 24 GiB4k tokens
24 to 48 GiB32k tokens
48 GiB or more256k tokens

The same page says agents and coding tools should use at least 64000 tokens. A longer context needs more memory. Ollama's own numbers for the KV cache:

  • OLLAMA_KV_CACHE_TYPE=f16 is the default.
  • q8_0 uses about half the memory of f16, usually with no noticeable quality loss.
  • q4_0 uses about a quarter, with a small to medium loss.
  • It needs Flash Attention, which Ollama turns on by itself when your hardware supports it.

The size table: current open models#

These are the official download sizes in GB at the quantization the Ollama library lists. A dash means that tag does not exist or we did not need it.

Read on 2026-10-26 from the tag pages on ollama.com. Sizes are the file you download, not the VRAM you need.

Model (Ollama tag)Parametersq4_K_Mq8_0fp16 / bf16Context (official)
llama3.1:8b8B4.98.5-128K
qwen3:8b8B5.28.9-40K
qwen3:14b14B9.316-40K
qwen3-coder:30b30B1932-256K
qwen3.5:9b9B6.61019256K
qwen3.5:27b27B173056256K
qwen3.5:35b-a3b35B223972256K
qwen3.6:35b-a3b35B243972256K
gemma3:12b12B8.213-128K
gemma3:27b27B1730-128K
gemma4:e4be4B6.69.016128K
gemma4:12b12B8.01324256K
gemma4:26b-a4b26B182852256K
gemma4:31b31B203463256K
mistral:7b (v0.3)7B4.47.71432K
phi4:14b14B9.1162916K
deepseek-r1:14b (Qwen distill)14B9.01630128K
deepseek-r1:70b (Llama distill)70B4375141128K
llama3.3:70b70B4375141128K
gpt-oss:20b20B14 (default tag, MXFP4)--128K
gpt-oss:120b120B65 (default tag, MXFP4)--128K

Notes on the table:

  • MoE models (a3b, a4b) use few parameters per token, but the whole file must sit in memory. The file size is what counts.

Which model for which memory?#

Pick the biggest model whose file leaves headroom for the context memory.

DIY Lab Hub rule of thumb (not official): keep the file at about three quarters of your VRAM or less. Then raise the context step by step and watch ollama ps (see below). The sizes are the official ones from the table.

GPU memoryGood fits at q4_K_M (file size)Tight: works with a short context only
8 GBllama3.2:3b (2.0), qwen3:8b (5.2), llama3.1:8b (4.9), deepseek-r1:8b (5.2)qwen3.5:9b (6.6), gemma4:e4b (6.6)
12 GBgemma4:12b (8.0), gemma3:12b (8.2), qwen3.5:9b (6.6), qwen3:14b (9.3), phi4:14b (9.1)gemma4:12b at q8_0 (13) does not fit; use qat (7.2) instead
16 GBgemma3:12b at q8_0 (13), gemma4:12b at q8_0 (13), qwen3:14b (9.3) with long contextgpt-oss:20b (14)
24 GBqwen3:30b (19), qwen3-coder:30b (19), qwen3.5:27b (17), gemma3:27b (17), gemma4:26b-a4b qat (16)gemma4:31b (20), qwen3:32b (20) with a long context
32 GBqwen3.5:35b-a3b (22), qwen3.6:35b-a3b (24), gemma4:31b (20), gemma4:26b-a4b at q8_0 (28) tightqwen3:30b at q8_0 (33) does not fit
Over 40 GB (two GPUs or a big Mac)llama3.3:70b (43), deepseek-r1:70b (43)gpt-oss:120b (65) needs about 65 GB plus context

Apple Silicon (unified memory)#

On a Mac the CPU and GPU share one pool of memory. The file sizes in the table are the same. The difference: macOS keeps part of the pool for itself and does not give all of it to the GPU. Neither Ollama nor Apple publishes the exact share, and it differs by Mac and macOS version, so keep a wide margin and trust ollama ps.

Mac memoryThink of it like
16 GBA 12 GB card, minus what macOS and your apps use
24 to 32 GBA 16 to 24 GB card
64 GB or moreRoom for 70B models (llama3.3:70b is 43 GB)

CPU offload#

When a model does not fit, Ollama puts some layers in system RAM and runs them on the CPU. It works but is slower (we did not measure by how much). ollama ps shows the split (Step 3).

Step 1: Install Ollama#

For a single PC you use yourself, the native app is the simplest way and gives the best GPU support.

Linux#

Run in terminalbash
curl -fsSL https://ollama.com/install.sh | sh
ollama --version

To pin this guide's version, use the variable from the official Linux page:

Run in terminalbash
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.40.11 sh

Windows (PowerShell)#

Download OllamaSetup.exe from ollama.com/download and run it. It installs in your home folder and needs no administrator rights. Then open a new PowerShell:

Run in terminalpowershell
ollama --version

Mac (Terminal)#

Download ollama.dmg from ollama.com/download, open it and drag Ollama to Applications. Start it once. Then:

Run in terminalbash
ollama --version

Check it worked: the command prints a version number (this guide used 0.40.11).

Step 2: Download a model that fits#

Pull a model from the "Good fits" column of your row. Start small, then go bigger.

Linux#

Run in terminalbash
ollama pull qwen3:8b
ollama run qwen3:8b "Say hello in one short sentence."

Windows (PowerShell)#

Run in terminalpowershell
ollama pull qwen3:8b
ollama run qwen3:8b "Say hello in one short sentence."

Mac (Terminal)#

Same commands as Linux:

Run in terminalbash
ollama pull qwen3:8b
ollama run qwen3:8b "Say hello in one short sentence."

To choose a quantization, use the full tag from the library, for example ollama pull qwen3:8b-q8_0.

Potential problem: downloads can be tens of GB. Check free disk first.

Step 3: Check what really fits#

ollama ps and nvidia-smi show the truth. Trust them more than any table.

Linux#

Run in terminalbash
ollama ps
nvidia-smi
watch -n 2 nvidia-smi --query-gpu=memory.used,memory.total --format=csv

Windows (PowerShell)#

Run in terminalpowershell
ollama ps
nvidia-smi
nvidia-smi --query-gpu=memory.used,memory.total --format=csv -l 2

Mac (Terminal)#

Run in terminalbash
ollama ps

For the whole Mac, see Activity Monitor, Memory tab.

How to read ollama ps. The official docs show this format (the values here are the docs' example, not ours):

Codetext
NAME             ID              SIZE      PROCESSOR    CONTEXT    UNTIL
gemma4:latest    c6eb396dbd59    9.6 GB    100% GPU     131072     2 minutes from now
PROCESSOR showsMeaning
100% GPUThe whole model sits in VRAM. This is what you want
100% CPUThe whole model sits in system RAM
a split such as 48%/52% CPU/GPUPartly offloaded. Smaller model, smaller quantization or shorter context fixes it

SIZE is the real memory use, including context. It is bigger than the file size.

Step 4: Set the context length#

Raise the context in small steps and watch ollama ps after each step.

Linux#

For a service started by systemd, set variables with sudo systemctl edit ollama, add them under [Service], then restart:

File contentini
[Service]
Environment="OLLAMA_CONTEXT_LENGTH=16384"
Environment="OLLAMA_FLASH_ATTENTION=1"
Environment="OLLAMA_KV_CACHE_TYPE=q8_0"
Run in terminalbash
sudo systemctl daemon-reload
sudo systemctl restart ollama

Windows (PowerShell)#

Quit Ollama from the tray. Set the variables for your user, then start Ollama again:

File contentpowershell
[Environment]::SetEnvironmentVariable("OLLAMA_CONTEXT_LENGTH","16384","User")
[Environment]::SetEnvironmentVariable("OLLAMA_FLASH_ATTENTION","1","User")
[Environment]::SetEnvironmentVariable("OLLAMA_KV_CACHE_TYPE","q8_0","User")

You can also move the slider in the Ollama app under Settings.

Mac (Terminal)#

Run in terminalbash
launchctl setenv OLLAMA_CONTEXT_LENGTH 16384
launchctl setenv OLLAMA_FLASH_ATTENTION 1
launchctl setenv OLLAMA_KV_CACHE_TYPE q8_0

Restart the Ollama app afterwards.

Per request you can use /set parameter num_ctx 8192 in ollama run or "options": {"num_ctx": 8192} in an API call. Check it worked: ollama ps shows your number in the CONTEXT column.

Option: run Ollama in Docker#

Use Docker on a Linux server or a Windows PC with WSL2. On a Mac, use the native app.

You need the NVIDIA Container Toolkit first. On Ubuntu or Debian, the official Ollama Docker page gives:

Run in terminalbash
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
  | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

On Windows, Docker Desktop with WSL2 already handles the GPU: skip the toolkit and use the Ubuntu shell (wsl -d Ubuntu). GPU details are in our vLLM guide.

Linux#

Run in terminalbash
mkdir -p ~/docker_volumes/ollama/{data,config,logs,backups}
cd ~/docker_volumes/ollama

Create docker-compose.yml (there is no version: line):

File contentyaml
services:
  ollama:
    image: ollama/ollama:0.40.11
    container_name: ollama
    restart: unless-stopped
    ports:
      - "127.0.0.1:11434:11434"
    volumes:
      - ./data:/root/.ollama
    environment:
      - OLLAMA_CONTEXT_LENGTH=16384
      - OLLAMA_FLASH_ATTENTION=1
      - OLLAMA_KV_CACHE_TYPE=q8_0
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
Run in terminalbash
docker compose up -d
docker exec -it ollama ollama pull qwen3:8b
docker exec -it ollama ollama ps

Windows (PowerShell)#

Open the Ubuntu shell with wsl -d Ubuntu and use the Linux commands above, so your files live on the Linux side.

Mac (Terminal)#

Docker on a Mac cannot use the Apple GPU, so a container would run on CPU only. Use the native app from Step 1.

Check it worked: docker compose ps shows ollama as running, and docker exec -it ollama ollama ps lists your model with 100% GPU.

Potential problem: could not select device driver "" with capabilities: [[gpu]] means the toolkit is not set up. Repeat the nvidia-ctk line and restart Docker.

Option: llama.cpp for full control#

llama.cpp is the engine under many local tools. Use it when you want to choose the exact GGUF file and how many layers go to the GPU.

The official quick start installs it with one line and downloads a model straight from Hugging Face:

Linux#

Run in terminalbash
curl -LsSf https://llama.app/install.sh | sh
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF

Windows (PowerShell)#

Run in terminalpowershell
irm https://llama.app/install.ps1 | iex
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF

Mac (Terminal)#

Same commands as Linux:

Run in terminalbash
curl -LsSf https://llama.app/install.sh | sh
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF

llama serve starts an OpenAI-compatible API with a built-in web page. That model is the README's small example. Swap in the GGUF repo of your pick; Hugging Face model cards list GGUF sizes per quantization.

For Docker on NVIDIA, the official images are server-cuda (CUDA 12) and server-cuda13. Pinned tags look like server-cuda-b<number>; server-cuda-b11889 exists today.

Run in terminalbash
docker run --gpus all -v ~/docker_volumes/llamacpp/models:/models -p 127.0.0.1:8080:8080   ghcr.io/ggml-org/llama.cpp:server-cuda-b11889   -m /models/<your-model>.gguf --host 0.0.0.0 --port 8080

Put it behind HTTPS (with or without Traefik)#

With Traefik#

On a server with a domain, let Traefik publish Ollama over HTTPS and remove the host port. Local-only users can skip this.

Ollama has no login of its own, so never publish it without one. This assumes Traefik v3, an entrypoint https and a login middleware auth you already have. Create the network once: docker network create proxy. Delete the ports: block and merge:

File contentyaml
services:
  ollama:
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.ollama.rule=Host(`llm.<your-domain>`)"
      - "traefik.http.routers.ollama.entrypoints=https"
      - "traefik.http.routers.ollama.tls=true"
      - "traefik.http.routers.ollama.middlewares=auth@docker"
      - "traefik.http.services.ollama.loadbalancer.server.port=11434"
networks:
  proxy:
    external: true

Add traefik.http.routers.ollama.tls.certresolver=<your-resolver> if you use ACME. Check it worked: curl -I https://llm.<your-domain>/api/tags answers 401 (or a redirect to login) without credentials.

Without Traefik: Caddy#

Choose Caddy when you have no Traefik yet and run one small server. Facts are from caddyserver.com/docs.

Your caseWhat Caddy doesYou need
Public domainAutomatic Let's Encrypt certificateDNS A record to the server, ports 80 and 443 open
Home only, no domaintls internal: Caddy's own local certificateTrust Caddy's root certificate on each device

Public domain, Caddyfile for Ollama:

File contentcaddyfile
app.example.com {
    basic_auth {
        you <hash from: caddy hash-password>
    }
    reverse_proxy localhost:11434
}

Home only:

File contentcaddyfile
app.home.arpa {
    tls internal
    basic_auth {
        you <hash from: caddy hash-password>
    }
    reverse_proxy localhost:11434
}

Trust the root certificate (home only): on the Caddy machine run sudo caddy trust (Linux). On Windows and Mac copy pki/authorities/local/root.crt from Caddy's data folder and import it as a trusted root (Windows certificate manager, Mac Keychain Access).

Run Caddy (2.11.7 was current on 2026-10-26): Linux with the official apt repository from the install page, then sudo systemctl reload caddy; Windows winget install CaddyServer.Caddy then caddy run; Mac brew install caddy then caddy run. Or use Docker: put caddy:2.11.7 on the same network as the app, drop the app's ports: line and write reverse_proxy ollama:11434.

File contentyaml
services:
  caddy:
    image: caddy:2.11.7
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ~/docker_volumes/caddy/data:/data
      - ~/docker_volumes/caddy/config:/config

WebSockets work without extra settings. Ollama has no login of its own, so the examples add Caddy basic_auth; create the hash with caddy hash-password.

Check it worked: curl -I https://app.example.com answers HTTP/2 200 (or the login redirect). On Windows use curl.exe.

Security and testing#

Keep the port on your machine, keep secrets out of the Compose file, and test.

  • Ollama binds 127.0.0.1:11434 by default. Do not change OLLAMA_HOST to 0.0.0.0 on a machine that others can reach, unless a login sits in front.
  • You need no Ollama account locally. OLLAMA_NO_CLOUD=1 switches the cloud features off (official FAQ).
  • Keep keys in a .env file with chmod 600, never in docker-compose.yml.

Quick tests:

Run in terminalbash
docker compose ps
curl -s http://127.0.0.1:11434/api/tags

The second command lists the models you pulled.

Troubleshooting#

ProblemSolution
ollama ps shows 100% CPU or a CPU/GPU splitThe model plus context is too big. Pick a smaller model or quantization, lower OLLAMA_CONTEXT_LENGTH, or set OLLAMA_KV_CACHE_TYPE=q8_0
GPU not used in DockerRun docker run --gpus all ubuntu nvidia-smi. If that fails, Ollama cannot see the GPU either. Fix the toolkit first
GPU works, then drops to CPU after a while (Docker on Linux)Official fix: add "exec-opts": ["native.cgroupdriver=cgroupfs"] to /etc/docker/daemon.json and restart Docker
Server log shows GPU init codes such as 3, 46, 100 or 999Official steps: sudo rmmod nvidia_uvm then sudo modprobe nvidia_uvm, check sudo dmesg | grep -i nvidia, and set CUDA_ERROR_LEVEL=50 for more logs
Out of memory while loading or runningLower the context, use a smaller quantization, or close other programs that use the GPU. The error text differs by version
Many requests, answer 503The queue is full. Raise OLLAMA_MAX_QUEUE (default 512) or send fewer requests
Model stays in VRAM after useSet OLLAMA_KEEP_ALIVE (for example 5m) or run ollama stop <model>

Server logs#

Run in terminalbash
journalctl -u ollama --no-pager --follow --pager-end
docker logs ollama --tail 100

On Windows the logs are in %LOCALAPPDATA%\Ollama\server.log. On a Mac they are in ~/.ollama/logs/server.log. For more detail set OLLAMA_DEBUG=1.

Known bugs#

Open reports on the 0.40.x line (Ollama issue tracker, check before you blame your setup):

  • AMD Radeon 890M iGPU on ROCm: garbage output and "Memory access fault by GPU" on 0.40.6 and 0.40.7; the reporter says 0.33.3 works (issue 19290).
  • macOS Metal crashes (issue 19278).
  • /api/chat sometimes fails with a 500 "broken pipe" right after a long reply (issue 19293).

Updates and backups#

Update the app or the image. Your models live in one folder and can be downloaded again, so back up the settings and the list of models.

Update#

Linux native: run the install script again. Windows and Mac: the app updates itself ("Restart to update"). Docker: change the tag in docker-compose.yml, then:

Run in terminalbash
docker compose pull
docker compose up -d

Backup#

Models are large and come back with ollama pull. Back up your Compose file, .env and a list of your models:

Run in terminalbash
cd ~/docker_volumes/ollama
docker exec ollama ollama list > config/models-$(date +%F).txt
tar czf backups/ollama-config-$(date +%F).tar.gz docker-compose.yml config

Schedule it: Linux and Mac with crontab -e (0 3 * * *), Windows with Task Scheduler running the same commands in WSL.

Restore test#

Test the restore in a throwaway folder, never over your live data:

Run in terminalbash
mkdir -p /tmp/ollama-restore-test
tar xzf ~/docker_volumes/ollama/backups/ollama-config-$(date +%F).tar.gz -C /tmp/ollama-restore-test
ls /tmp/ollama-restore-test /tmp/ollama-restore-test/config
rm -rf /tmp/ollama-restore-test

You should see docker-compose.yml and your models list.

Performance and resources#

Fit first, then tune. Staying inside VRAM matters more than any setting.

  • Keep the model on 100% GPU. A CPU split is the biggest slowdown you can avoid.
  • Use the context you need, not the model maximum. Use OLLAMA_KV_CACHE_TYPE=q8_0 to halve cache memory.

Related: Open WebUI with Ollama, vLLM.

FAQ#

Is the file size the VRAM I need? No. File plus context memory plus overhead. ollama ps shows the real total.

Q4 or Q8: which should I pick? Start with q4_K_M. Take q8_0 only with spare VRAM.

How much memory does a Mac really give the model? Not all of it. macOS keeps a share. The official docs do not give the limit, so keep a margin and check ollama ps.

Sources#

All pages read on 2026-10-26.

Checked against the official docs on 2026-10-26. Not run by DIY Lab Hub. The VRAM rules of thumb in this guide are ours, not official figures.