VOOZH about

URL: https://willitrunai.com/can-run/internlm-20b-on-instinct-mi100-32gb


Can InternLM 20B run on AMD Instinct MI100 32GB?

BARELY — Tight on Memory

C48Usable
Estimated from fit model

InternLM 20B needs ~36.8 GB VRAM. AMD Instinct MI100 32GB has 32.0 GB. With Q5_K_M quantization, expect ~32 tok/s.

Runtime: llama.cppCapacity: OffloadBandwidth: HighStack: StandardBottleneck: Host offload
Share:

Operating mode

Choose the run profile you care about

Interactive favors responsiveness, while light API and scale-out lean harder on serving readiness. The fit stays the same, but the recommendation lens changes.

Current mode

Balanced

Balanced for general local use. Keeps the ranking neutral across personal and serving workflows.

Capabilities:

Select quantization to explore

Q5_K_M (High quality) — 36.8 GB, 31.6 tok/s, Very compromised (needs ~1.9 GB host RAM)
36.8 GB required32.0 GB available
115% VRAM needed

4.8 GB over capacity — needs offload or smaller quantization

Fit status

Very compromised (needs ~1.9 GB host RAM)

Decode

31.6 tok/s

TTFT

6131 ms

Safe context

8K

Memory

36.8 GB / 32.0 GB

Offload

10%

Memory breakdown

Weights14.4 GB
KV Cache18.3 GB
Runtime0.9 GB
Headroom3.2 GB

See how fast it feels

See how fast it feelsInternLM 20B on AMD Instinct MI100 32GB
1st promptCold start — includes initialization
>Write a Python function to sort a list
Here's a Python function that sorts a list using quicksort: def quicksort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quicksort(left) + middle + quicksort(right) # Example usage numbers = [3, 6, 8, 10, 1, 2, 1] print(quicksort(numbers)) # [1, 1, 2, 3, 6, 8, 10] The algorithm picks a pivot, partitions the list into smaller, equal, and larger elements, then recursively sorts each partition and concatenates the results.
2nd promptWarm — model ready, no init overhead
>Now add type hints and a docstring
def quicksort(arr: list[int]) -> list[int]: """Sort a list using the quicksort algorithm. Args: arr: List of integers to sort. Returns: A new sorted list. """ if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quicksort(left) + middle + quicksort(right) Added type hints for the input and return type, plus a Google-style docstring.
Estimated: 31.6 tok/s decode · 6.1s TTFT (warm) · 79 tok/s prefill

What limits this setup

It fits through host-memory offload, and offload is the main reason performance drops.

CPU or host-memory offload is active

About 10% of the working set spills out of accelerator memory, which usually hurts latency and sustained decode throughput.

Very little memory headroom

You can run the model, but there is not much room left for longer context, bigger batches, extra apps, or future model updates.

Best improvement path

Remove offload with more accelerator memory

Prioritize a GPU or unified-memory tier that fits the whole model natively. Removing offload usually helps more than small compute gains.

Buy headroom, not only minimum fit

A slightly larger memory tier gives you safer context growth and makes the recommendation more future-proof.

Increase host RAM if you keep offloading

This setup may need roughly {ram} GB of extra host RAM just for the offloaded portion, before OS and other tools.

Performance by workload

WorkloadGradeFitDecodeTTFTContext
ChatBTight fit56.5 tok/s1868 ms8K
CodingCVery compromised31.6 tok/s6131 ms8K
Agentic CodingFToo heavy13.5 tok/s20862 ms8K
ReasoningCVery compromised (needs ~1.9 GB host RAM)31.6 tok/s7246 ms8K
RAGFToo heavy13.5 tok/s26077 ms8K

Quantization options

How InternLM 20B (20B params) fits at each quantization level on AMD Instinct MI100 32GB (32.0 GB usable).

QuantBitsVRAMQualityFit
Q2_K
2
7.8 GB
LowC53
Q3_K_S
3
9.8 GB
LowC54
NVFP4
4

Get started

Copy-paste commands to run InternLM 20B on your machine.

Run

docker run --rm -it ghcr.io/ggerganov/llama.cpp:full \ --hf-repo "internlm/internlm2_5-20b-chat" \ --hf-file "internlm2_5-20b-chat-Q5_K_M.gguf" \ -c 4096 -ngl 99

Upgrade options

Hardware that runs InternLM 20B well

Radeon Pro W7900 48GBBudget pick
48 GB VRAM (+16)
B
Removes host-memory offload, which is usually the single biggest latency and throughput win.36.1 tok/s decode

Removes host-memory offload, which is usually the single biggest latency and throughput win.

Adds memory headroom for longer context windows and future model growth.

~$3,999 MSRP

Radeon PRO W7900 DS 48GBBest value
48 GB VRAM (+16)
B
Removes host-memory offload, which is usually the single biggest latency and throughput win.36.1 tok/s decode

Removes host-memory offload, which is usually the single biggest latency and throughput win.

Adds memory headroom for longer context windows and future model growth.

~$3,999 MSRP

AMD Instinct MI350X 288GBAMD upgrade
288 GB VRAM (+256)8000 GB/s (+6772)
C
Removes host-memory offload, which is usually the single biggest latency and throughput win.280 tok/s decode

Removes host-memory offload, which is usually the single biggest latency and throughput win.

Raises estimated decode speed by about 786%.

~$8,000 MSRP

Frequently asked questions

See all results for AMD Instinct MI100 32GBSee all hardware for InternLM 20B
11.2 GB
Medium
C54
Q4_K_M
4
12.2 GB
MediumC55
Q5_K_M
5
14.4 GB
HighB56
Q6_K
6
16.4 GB
HighB57
Q8_0Best for your GPU
8
21.4 GB
Very HighB57
F16
16
41.0 GB
MaximumF0

Remove offload with more accelerator memory. Prioritize a GPU or unified-memory tier that fits the whole model natively. Removing offload usually helps more than small compute gains.