Enjoying this issue?
Get tomorrow's AI & engineering digest in your inbox — hand-picked, summarized, and always spam-free.
TLDR
Model listings show only weight file size, not the full memory bill: KV cache grows with context and can match the weights in size, so a 5.2 GB model on a 6 GB GPU leaves almost no room for cache or overhead. Estimating real fit requires adding weights, cache, and working memory, which tools like LLM Fit and LM Studio's estimator do. The practical rule: keep context small, check the CPU/GPU split, and treat the listing size as just the furniture, not the whole truck.
Key points
Qwen 3 8B's 5.2 GB file leaves only about 0.8 GB on a 6 GB GPU for KV cache and overhead.
At maximum context length, the KV cache can use as much memory as the model weights.
Mixture-of-experts models keep all weights in memory but only compute with a few experts per token.
Flash attention and multi-token prediction are techniques that reduce memory use or speed up generation.
Ollama PS shows the actual context length and CPU/GPU split after a model loads.
Tools mentioned
Techniques
- KV cache
- Context window management
- Mixture of experts
- Flash attention
- Multi-token prediction
- Layer offloading
- Quantization (Q8_0)
- Memory bandwidth estimation
Stop scrolling. Start reading smarter.
Receive the day's most important AI & engineering updates in one concise email. No spam.
Transcript (captions)
Picture a laptop with a 6-GB graphics card. Ollama lists Qwen 3 8B at 5.2 GB. 5.2 is less than 6, so it fits, right? Maybe. Ollama's own docs show what a near miss looks like.
Their example is a different model, but the status command Ollama PS reads 48% CPU, 52% GPU. It loaded, and about half of it ended up on the slow side of the machine. And the 5.2 on the listing
couldn't have warned you because it only counts part of what gets loaded. The download size is the furniture. It's the model's weights, and that's all it covers. The conversation brings boxes
called the KV cache, and they keep arriving as the chat gets longer. Then you need room to walk around. Your graphics card doesn't care what the download page promised. We'll follow
three example machines the whole way through. A laptop with a 6-GB GPU and 16 GB of RAM, a desktop with a 24-GB GPU, and a Mac with 64 GB of unified memory. These are example machines, so any
number I give you for them is math from the official docs, and it'll say estimate on screen. By the end, you'll read a model listing and estimate whether it fits. You'll tell the two
kinds of slow apart. You'll pick between Ollama, LM Studio, llama.cpp, and MLX, and choose a setup for each of these three machines. Fitting and speed are separate questions, and we'll answer
them separately. Start with a real listing. On Ollama's Qwen 3 page, Qwen 3 30B is 19 GB with a 256K context window, and Qwen 3 32B is 20 GB with 40K. They're a gigabyte
apart. Load them into the same truck, and they take up almost the same floor space. Most of that size comes from parameters. A parameter is one number the model learned during training, and
the model stores billions of them. More parameters usually means a bigger file. On the same page, the 8B tag, 8 billion parameters, is 5.2 GB. So, why would two models of nearly the same size behave
differently? The 30B is a mixture of experts. According to Quen's model card, it stores 30.5 billion parameters spread across 128 experts. But, for each token, only eight of those experts switch on.
That's 3.3 billion active parameters per token. A dense model like the 32B uses every weight for every token. The mixture of experts works more like a 128-person
office where eight people attend each meeting. You still pay rent for the whole building. That's the first split this video keeps coming back to. Memory has to hold all the weights, active or
not. The work per token only touches the active ones. So, the 30B and the 32B ask for about the same truck and very different amounts of work per token. A token is the unit the model reads and
writes, a word, or a piece of one. Context windows, cache sizes, and speeds all get counted in tokens. The 256K on that listing is how many tokens the model can keep in view at once. Remember
that number because it costs memory. So, how do 30 billion numbers fit into 19 GB? Quantization. Training keeps each weight at high precision, and quantization rounds weights to fewer
bits. Hugging Face's table for Llama 3.18B shows it. 16 GB at FP16, 8 GB at FP8, 4 GB at int4. Same model, a quarter of the furniture. The arithmetic fits on a napkin.
Parameters times bits per weight divided by eight gives you bytes. 8 billion weights at 16 bits is 16 GB. Drop to four bits, and it's four. That's the napkin version, and the listing's file
size is the real number you should trust. Names like Q4_K and Q6_K show up in GGUF files. GGUF is a format that packs the weights and a standard set of metadata into one
file. So, a tool can open it and know exactly what it's holding. Hugging Faces docs map each name to bits per weight. Q4_K is 4.5. Q6_K
comes out at 6.5625 bits per weight, which is a wonderfully exact way of saying about 6 and 1/2. More bits means a bigger file and less rounding. Fewer bits means a smaller
file and more rounding. How much quality you lose to that rounding depends on the model and the task, and the listing can't tell you. That's why the final chapter ends with
testing your own work and not just with a fit chart. Compatibility is the last thing on the label. The format decides which engine can open the file. LM Studio runs llama.cpp on every platform
and adds Apple's MLX on Apple silicon Macs, and some files need special builds. One giant model later in this video only runs on one specific engine and nowhere
else. The truck is your memory, and three kinds show up in this story. DRAM sits on the graphics card right next to the chip doing the math. System RAM sits on
the motherboard and serves the CPU. And on Apple silicon, unified memory is one pool the CPU and GPU share. On the laptop, picture a small truck with 6 GB of cargo space towing a 16 GB
trailer. Anything in the truck is right where the GPU works. Anything in the trailer can still be used, but those layers get handled on the CPU side. That handoff is the split you saw in a
llama.cpp. The desktop gets a bigger truck, 24 GB of VRAM, with its own trailer of system RAM. The Mac works differently. One long truck with 64 GB and no trailer. The GPU can use that
shared pool, although macOS limits how much memory the GPU can wire for itself. More on that later. Here's a reference ladder from 4 to 512 GB with every rung tagged by memory
type, graphics card VRAM, system RAM, and unified memory. This is just how much each one holds, not how fast it moves. At the top sits 512 GB of unified
memory, which one model page names as the target for holding a roughly 750 billion parameter model entirely in memory. Everything you load goes into three
piles: furniture, the weights, which are fixed once the model's loaded, boxes, the KB cache, which grows with the conversation, and aisle space, the working memory the software needs to
actually run. Estimators like LM Studio add these up for you based on the context and GPU offload you ask for. Why do the boxes keep arriving? Each time the model reads a token, it works
out some notes about it, called keys and values, so it doesn't have to redo that work when it writes the next token. Those notes get kept. More tokens in view means more notes and more boxes.
Hugging Face gives the sizes for Llama 3.18B. At 1,000 tokens of context, the cache is 0.12 GB, which is about a shoebox. At 16,000 tokens, it's 1.95 GB. At 128,000,
it's 15.62 GB. The weights at 16-bit are 16 GB. So, at full context, the boxes take up nearly as much floor as the furniture. Hugging Face says it directly, "Near the
maximum context length, the cache uses as much memory as the weights. You moved a sofa and brought a sofa's worth of cardboard." So, which context size counts? The one on the listing or the
one you use? The one your software reserves. The listing's 256K is the most the model supports. The tool decides how much room to set aside, and a larger setting needs more memory. A
Llama picks that setting based on your VRAM, counted in gibibytes. A gibibyte's just a binary cousin of a gigabyte, close enough here. Under 24, the default context is 4K. Between 24 and 48, it's
32K. At 48 and up, it's 256K. So, the same model gets a different size box pile on different machines before you've typed a word. One catch, a Llama's FAQ page still says
the default is 4,096 tokens, full stop. Two pages of the same docs, two answers, one very normal documentation experience. Trust what your machine reports instead. A Llama PS has a
context column that shows what actually got loaded. Back to the laptop and Qwen 1.3 8B, the file is 5.2 GB, which leaves about 0.8 GB of the 6 GB card for boxes and aisle space. A Llama's default here
is 4K context. For Llama 3.1 8B, 4K of cache works out to roughly half a GB from Hugging Face's table, and Qwen's cache will differ. It's tight. Tight is where things spill. When everything
doesn't fit in VRAM, tools can put some layers on the GPU and the rest in system RAM. The llama.cpp engine exposes this directly with a setting for the most layers to keep in VRAM. The model still
runs, just across two vehicles now. The desktop's 24 GB card holds Qwen 3 30B's 19 GB file with about 5 GB to spare. A 24 GB card sits right on the edge of a Llama's 24 to 48 band. So, check the
context column to see whether you got 4K or 32K. Whether 5 GB of boxes covers 32K depends on this model's cache per token, and that's exactly what an estimator calculates. The Mac takes Qwen 3 30B or
Qwen 3 32B whole with plenty of floor left over. If a Llama sees 48 or more GB for the GPU, it'll reserve a 256K context by default. So, check the context column
here, too. The more interesting question is a much bigger model. LM Studio has a command that estimates memory without loading anything, and its docs use GPT- OS 120B
as the example. Estimated GPU memory, 65.68 GB. The Mac has 64 in total on paper before the operating system takes its share and before macOS decides how much the GPU may use. A 65 GB sofa and a
64 GB doorway. And macOS is already standing in the doorway. That figure is LM Studio's example estimate, not a measurement on this Mac. That estimate isn't fixed. LM Studio's docs say honors
flags for context length and GPU offload. Shrink the context and the box pile shrinks, which helps when a model's borderline. Parallel requests push the other way. A llama says required memory
scales with the number of parallel request times the context length. So, the capacity question has three parts. Furniture comes from the listing, boxes come from your context setting and how
many chats run at once. Isle space comes from the software. Add them up, compare against the truck, and you'll know whether it fits. Fitting tells you whether it'll load. It says nothing
about how fast it'll move. A perfectly packed truck can still sit in traffic. So, speed gets its own half of this video. When you hit enter, a few weights happen in a row. Loading moves the
weights off the disk and into memory. Prompt processing reads your whole prompt and builds a KV cache for it. Then generation writes the reply one token at a time.
The pause between hitting enter and seeing the first word is called time to first token. It's mostly prompt processing and it grows with how much you paste in. A short question starts
quickly. A 50-page document means the model reads every page that fits in its context before it says anything. And on a 4K default, most of those pages won't fit. Generation is the steady drip
afterward, measured in tokens per second. For each new token, the model works through its active weights. That's where the mixture of experts pays off. 3.3 billion active parameters per token
instead of all 30.5. Much of that work is moving weights from memory to the chip, and LLM Fit, a tool we'll use at the end, builds its speed estimates on a memory bandwidth model. Capacity is how
big the truck is. Bandwidth is how fast you can unload it. This is where a spill hurts. If part of the model landed in system RAM, those layers get handled on the CPU side, and every token has to
pass through them. The model fits, technically. That's how you end up with a model that loads fine and then crawls. The usual first move is getting the busy parts back into the truck. So, when it's
slow, ask which weight is the slow one. A long pause before the first word points to prompt processing. So, look at prompt length and prompt caching. A slow drip after that points to
generation. So, look at where the weights live and how many are active. Different causes need different fixes. With capacity and speed separated, choosing software gets easier. There are
four main options, and they're more related than their logo suggest. Some are engines that do the math, some are apps wrapped around engines, and one is Apple's own framework. Start with
llama.cpp, the engine underneath a lot of this. It runs on many hardware backends. It can split a model between CPU and GPU when it doesn't fit in VRAM. And it exposes the knobs. How many
layers go on the GPU? Flash attention, the KV cache type, and more. Its server has a fit option that adjusts any settings you haven't set, so the model fits in your device's memory. Prompt
caching is on by default. If you want every lever and don't mind a terminal, llama.cpp is the most direct route. It also has an option made for mixture-of-experts models. Keep the
expert weights of the first n layers on the CPU. That matters for our 30B because only eight of its 128 experts do any work on a given token. Llama is the quick start. You pull a model by name,
like Qwen 3 30B, and it picks defaults for you, including that VRAM-based context size. Then a llama ps tells you where the model landed and how much context it got. It's the fewest steps
between you and a running model. The trade-off is that defaults decide things you might not notice. Context length, the CPU and GPU split, and how many requests run in parallel all move memory
around. Ollama lets you change each of them with environment variables, and the exact names are in the description. LM Studio is a desktop app with a GUI. It runs llama.cpp on every platform and MLX
on Apple Silicon. So, on a Mac, you can choose either engine. It also ships a command line tool, and that's where the memory estimate we saw lives. That estimate-only mode is why I'd point
beginners with big ambitions at LM Studio. You can ask whether a model would fit with this context and this much GPU offload before you commit memory to
loading it. MLX is Apple's array framework for Apple Silicon. Its arrays live in unified memory, so the CPU and GPU work on the same data in the same pool. MLX LM sits on top of it
for generating text and fine-tuning language models. MLX LM brings its own tools for our two problems. For prompt processing, it can cache a prompt so you don't pay to read it
twice. For memory, a rotating KV cache caps how many boxes you keep. And if big models run slowly, its docs say to raise the wired memory limit, a system setting. Side by side, Ollama gives you
the fastest start and the least control. LM Studio gives you a GUI, both engines on a Mac, and an estimate before you load. llama.cpp has every knob and the most typing. MLX is Apple Silicon only
and built around unified memory. None of them changes how big the truck is. Then there are tools with different jobs. Open Web UI is a front end, a chat interface in your browser that talks to
Ollama or to anything with an OpenAI compatible API. It doesn't run the model. Think of it as a dashboard bolted onto whichever engine you already picked.
vLLM and SG Lang are serving engines built for throughput. Many requests and many users usually on a GPU server. SG link describes itself as a high throughput serving framework. For one
person on a laptop, they're usually more machinery than you need. VLLM also has requirements worth reading first. Natively, it's Linux only on Nvidia GPUs with compute capability 7.5
or higher, which is Nvidia's version number for a card's feature set. On Windows, the install page's position is politely, "No." You go through WSL, the Linux layer built into Windows
instead. And on Apple silicon, you need a plugin. Free token is the newest name here. It's a research project with a paper built around mixture of experts models.
The paper's pitch is to stop thinking of your PC as one small GPU and use all of its memory as one pool. In practice, it moves experts back and forth between CPU and GPU memory, keeping the busy ones
close. The paper claims a lot. A 35B model on a laptop, 284B on a gaming desktop, and a 753B model on a single workstation GPU. Those are the paper's own results, speed
figures included, and they haven't been independently checked yet. It targets Nvidia RTX 30, 40, and 50 cards on Windows and Linux. There's no Mac support.
So, free token belongs in the past VRAM toolbox for RTX owners who want to experiment. We'll come back to what streaming experts actually costs. For a first setup, I wouldn't start there. If
you want one tool for now, here it is. Pick a llama for the fewest steps and LM Studio for a GUI and estimates. Go with llama.cpp for control and MLX if you're on a Mac and want Apple's own stack. Put
the same 30B crate in front of all three trucks, and by the napkin math, you get three different outcomes. One probably splits, one fits, one fits with room to spare. What decides it is where the
memory lives. On a Windows or Linux PC with a separate graphics card, VRAM is the fast truck and system RAM is the trailer. The goal is simple, keep as much of the model and its cache in VRAM
as you can because whatever spills out gets handled on the slower side. The laptop's 6 GB card is the tightest truck of the three. Models around the size of Qwen 3 8B sit right at its
limit. The 16 GB of RAM gives it a trailer, so bigger models can still run in hybrid mode with the CPU carrying the layers that don't fit. And with no usable GPU at all, llama.cpp can run on
the CPU alone. It works. The CPU does all the math reading from system RAM, so capacity is suddenly much larger and speed is what you pay with. The desktop's 24 GB card is the
comfortable middle. Qwen 3 30B's 19 GB file fits in VRAM with room left for cache. On this machine, the mixture of experts helps twice. It fits and each token only
activates 3.3 billion parameters, so the work per token is small for a model of that size. Swap in the dense Qwen 3 32B at 20 GB and it also fits with less room to spare. Every token works through all
of its weights. You get the same truck space and more work per token. If both fit, that's the speed trade you're choosing. On the Mac, the shape of the problem changes. There's no trailer
because the GPU draws on the same 64 GB pool as everything else. That's how a Mac can load models that would never fit in 24 GB of VRAM. Shared really means shared though. The
operating system and your apps live in the same pool and macOS limits how much memory the GPU can wire for itself. MLX LLM's docs tell you to raise that wired limit if large models are slow. How much
headroom a given Mac leaves is something to check, not assume. On the Mac, you've got both engines, llama.cpp directly or through LM Studio and MLX through MLX LLM or LM Studio.
Pick the model file made for the engine you chose since a GGUF and an MLX download aren't interchangeable. And then there's the person with two graphics cards. Two 24 GB cards give you
48 GB of VRAM on paper. In practice, you've got two GPUs in a group chat that never goes quiet. And how fast they reply decides your speed. Llama.cpp's default gives each GPU a contiguous
slice of the model's layers, like two trucks each carrying half the rooms of a house. The work passes from one to the other in order. And the docs say this mode slowly links between cards. There's
a faster, pickier mode, and we'll get to it later. So, for any machine, the question is the same. What lives in the fast truck? What lives in the trailer? And how often does the work have to
cross between them? That's the lens for making things faster. Speedups come in two kinds. Ones that shrink the load, so more fits in the fast truck, and ones that skip work. Some help prompt
processing, and some help generation. None of them comes with a guaranteed speedup. So, treat each one as something to test. Varying the volumes. Parsed lever placement in Llama.cpp.
A setting controls the maximum number of layers stored in VRAM. Put them all there if they fit. If they don't, the fit option can tune the settings you left alone to match your device's
memory. In a Llama, check the split in a Llama.ps and aim for 100% GPU. Mixture of experts models get a smarter version. Instead of pushing whole layers to the CPU, Llama.cpp can keep just the expert
weights of some layers there, while the rest of each layer stays on the GPU. You move the furniture only some trips need, and keep what every trip touches in the truck. Second lever, a sensible context.
If your chats are short, you don't need a 256K box pile reserved. A smaller context frees memory, which can pull spilled layers back onto the GPU. And remember the 24 GB band, or a Llama may
pick 32K for you. Set what you actually need. Third, quantization, going from Q6_K at 6.5625 bits to Q4_K at 4.5 shrinks the
furniture by roughly a third. That can be the difference between one vehicle and two. Test your output quality afterward because rounding has a cost. Fourth, flash attention, a leaner way of
doing the model's attention math. A llama's FAQ listed as a way to reduce memory use and llama.cpp has a switch for it. Any speed effect depends on your hardware and model, so measure it
yourself instead of trusting a headline. Fifth, shrink the boxes themselves. KV cache quantization stores those keys and values at lower precision. A llama's docs say Q8_0
takes about half the memory of F16 and Q4_0 about a quarter. On a long context, that's a lot of cardboard gone. Check answers on your real prompts afterward. Sixth, prompt caching, which targets the
first weight. If you send the same long system prompt or document again, a cache can skip rereading the part it's already seen. The llama.cpp server keeps it on by default. MLX LM has a command to
cache a prompt ahead of time. It helps most when the start of your prompts repeats, like a coding assistant with the same instructions or several questions about one document. It won't
help the steady drip of generation. That's a different weight. Seventh, speculative decoding, which targets the drip. A small draft model guesses the next few tokens and the big model checks
them. When the guesses are right, the big model can accept several at once. LM Studio's docs say the draft has to share the main model's vocabulary. The docs also say plainly that generation speed
might not increase and could even decrease. It's a performance feature whose own manual warns you about the performance. Run it with and without on your actual prompts. Multi-token
prediction or MTP is a cousin of the same idea where the model has extra machinery to propose tokens itself. The catch, per VLLM's docs, is that it only works for model families that support
it. You can't just switch it on for any model, so check the supported list before you plan around it. Group the levers by the weight they fix. A long pause before the first word calls
for prompt caching and shorter prompts. A slow drip calls for placement, fewer spilled layers, a smaller quant, and speculative decoding if it pays off. If it won't load at all, reach for context,
K V quantization, flash attention, and quant. On the laptop, here's the order I'd try. Keep the context modest, pick a quant that leaves room on the 6 GB card, and watch the split in Ollama PS. If you
need a model bigger than the card, accept hybrid mode, and expect the drip to slow down. What if the model you want is bigger than every truck you own? There are three ways past VRAM. Spill
into RAM, stream pieces from somewhere slower, or add GPUs. Each one makes something possible, and each one makes something slower. RAM offloading is that trailer on the
laptop truck. Hybrid CPU and GPU inference lets a model go past your VRAM, as long as it fits in VRAM plus RAM. On the laptop, that's roughly 22 GB of combined space instead of six, before
the operating system takes its share. The cost shows up in generation. Every token passes through every layer, including the ones in the trailer that the CPU handles. You've traded a crash
for a slower drip. For some jobs, like a long batch that can run overnight, that's a good trade. Mixture of experts models get a better version of this trade, which is why they keep showing up
in this chapter. Since each token only uses a few experts, you can park expert weights on the CPU and keep the parts every token needs on the GPU, using that llama.cpp option from earlier. Before
you push the boxes anywhere slower, shrink them. On a single card, Q8_0 roughly halves the cash, so fewer boxes have to leave the truck at all. With two cards, one split mode spreads the boxes
across both and we'll get there in a minute. The next step past the trailer is expert streaming. Instead of holding every expert in fast memory, you keep the busy ones close and
fetch the others when a token needs them. That's free tokens approach, streaming and caching experts between CPU and GPU. What it makes possible, according to the paper, is very large
MOE models on consumer and workstation RTX cards. The paper reports 39.3 tokens per second for a 35B model on an 8 GB laptop GPU, but anything fetched is something the GPU waits on, so time it
on your own machine. Then there's a warehouse down the road, the SSD. The developer antirez published a GGUF of Deep Seek v4, One Flash, a roughly 750 billion parameter model with
instructions for running it on a single 128 GB Mac using SSD streaming. The trick is that the full model never gets loaded into memory. It reads only the rows it needs from disk as it needs
them. The page names a 512 GB Mac as a target for keeping the whole thing resident and says to keep the file on a fast local SSD. Picture a librarian who won't shelve the encyclopedia and just
runs back for each page you ask about. That's a roughly 750 billion parameter model reading from a drive. The page lists no measured speeds, so this goes under possible with the speed left
blank. It's also a specialist setup. These weights need antirez's dwarf star engine, which runs them on Apple's metal, and they don't work with ordinary tools. Treat it as a demonstration of
what's possible and start somewhere simpler. Back to the two-card convoy. The multi-GPU docs in llama.cpp list three split modes. You've already seen the default, layer split, where the
cards pass work along like a relay. The other two modes are where it gets picky. Tensor split is experimental. It divides both the weights and the KV cache across the GPUs, so they work on each token
together. The docs say it favors generation speed, but depends on a fast connection between cards since they're talking constantly. The third mode, row split, is marked deprecated, so that's
one decision already made for you. If you don't know how fast the link between your cards is, layer split is the safe choice since it tolerates slow links. So, past VRAM, here's the scoreboard.
RAM offload gives you bigger models and a slower drip. Expert streaming promises much bigger MoE models at speeds only its paper has measured. SSD streaming reaches enormous models on a specialist
setup with the speed unknown. More GPUs add capacity and speed depends on the split and the link. Choosing comes down to estimating first and checking second. Two tools do the estimating, LM Studio's
estimate only load, which we've already seen, and LLM fit. That second one detects your hardware. For each model, it estimates whether it fits and roughly how many tokens per second you'd get.
Its speed numbers come from a memory bandwidth grounded in runtime sampling and community measurements. They're estimates and the readme says so. Treat them like a weather forecast. Useful for
packing and you still look out the window. The process works the same for any machine. Estimate the fit with LLM fit or LM Studio at the context you'll really use.
Load the model and check where it landed in Ollama PS or your tool's equivalent. Time your real prompts, then judge the answers on your real tasks. The laptop with its 6 GB GPU and 16 GB of RAM.
By arithmetic, models around 8B at 4-bit sit right at the card's edge, so keep the context small and check the split. Bigger models run in hybrid mode through the RAM trailer. I'd start with Ollama
or LM Studio and let the estimate tell you when you've crossed the line. One more laptop option to test is a mixture of experts model with its experts parked in system RAM. The 19 GB Qwen 3 30B file
won't fit in 6GB of VRAM, but only three. 3B parameters work per token. It's tight against 22GB combined once the operating system takes its share, so estimate that one before you download
it. The desktop, with its 24GB GPU, by file size, Qwen 3 30B at 19GB fits in VRAM with about 5GB left for context and overhead. Run the estimate at 32K, since that's Ollama's default for the 24 to 48
band, and lower the context if it spills. If you want more control, llama.cpp is worth the extra typing here. If the 30B's answers aren't good enough for your work, Qwen 3 32B is the
dense alternative at 20GB. It fits, too, with less room for boxes, and every token uses all of its weights. Compare both on your own prompts before you decide. The Mac, with 64GB of unified
memory, by subtraction, the 30B and 32B fit with plenty of room, so you can afford longer contexts. LM Studio's own example, GPT- OS 120B, estimates at 65.68GB,
already over the whole machine before macOS takes its share. Rerun the estimate at a shorter context if you're curious, but don't plan on it. And try MLX alongside llama.cpp.
For any machine on that 4 to 512 chart, the same rule holds. Find your memory type, leave room for the operating system, and add up the furniture, the boxes, and the aisle. The bigger rungs
just let you bring more boxes. Here's the checklist to keep. One, read the listing, and remember the file size is the furniture. Two, note whether it's dense or a mixture of experts, which is
total size versus work per token. Three, check the quants bits per weight and the format your engine needs. Four, set the context you'll really use, because that's the box pile, and parallel
requests multiply it. Five, run an estimate with LLM Fit or LM Studio. Six, load the model and check the CPU and GPU split plus the context that actually got loaded. Seven, time both weights, the
pause before the first token and the drip after it, and fix whichever one is slow. Eight, test answer quality on your real tasks. An estimate tells you it'll run and only your own prompts tell you
whether it's any good. So, what we learned today, a model listing tells you the weights, not the whole bill. Memory is weights plus a KB cache that grows with context plus working overhead. And
mixture of experts models need memory for all of their weights but only compute with a few per token. Tools set context defaults for you, so check what actually loaded. Fitting and speed are
separate questions and speed splits into prompt processing and generation. Past VRAM, RAM offload, expert streaming, and SSD streaming buy you capacity and cost you speed.
Extra GPUs add capacity, too, and how fast they run depends on the split and the link between them. My verdict, if you're a beginner on a Windows or Linux GPU, start with Ollama or LM Studio and
run LLM Fit before every big download. If you're on a Mac, start with LM Studio so you can compare llama.cpp and MLX side by side. If you like knobs, go straight to llama.cpp.
One question to leave you with, if expert streaming and SSD tricks keep improving, does how big is my truck stop being the first question and how fast can I unload it take over? Thanks for
watching and all the best to you guys.