<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Erik Bagdaer</title>
    <description>The latest articles on DEV Community by Erik Bagdaer (@macyou).</description>
    <link>https://dev.to/macyou</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4119466%2Fe08cfbda-cbd9-4620-8bf6-10d6af41c32c.png</url>
      <title>DEV Community: Erik Bagdaer</title>
      <link>https://dev.to/macyou</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/macyou"/>
    <language>en</language>
    <item>
      <title>Run Local LLMs on a Mac in 2026: Which Chip Runs Which Model, and Why Bandwidth Beats Cores</title>
      <dc:creator>Erik Bagdaer</dc:creator>
      <pubDate>Thu, 10 Sep 2026 14:03:09 +0000</pubDate>
      <link>https://dev.to/macyou/run-local-llms-on-a-mac-in-2026-which-chip-runs-which-model-and-why-bandwidth-beats-cores-501k</link>
      <guid>https://dev.to/macyou/run-local-llms-on-a-mac-in-2026-which-chip-runs-which-model-and-why-bandwidth-beats-cores-501k</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://macyou.co/blog/run-local-llms-on-mac" rel="noopener noreferrer"&gt;Macyou blog&lt;/a&gt;. Disclosure up front: I run Macyou - we rent dedicated Apple Silicon Macs for AI. This post is about the hardware math, which is the same whether the Mac is on your desk or in a rack.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The short answer: &lt;strong&gt;any Apple Silicon Mac with 16 GB of unified memory runs 7B-14B models well&lt;/strong&gt;, a 64 GB M4 Pro runs 70B-class models at usable speeds, and a 256 GB Mac Studio M3 Ultra runs 200B-class models that no single consumer GPU can hold. Generation speed is set almost entirely by memory bandwidth, so the chip tier matters more than the year.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Mac runs which model
&lt;/h2&gt;

&lt;p&gt;The rule that decides everything: a model has to fit in unified memory at the quantization you choose, with a few gigabytes left for the context window and the OS. Once it fits, tokens per second scale with memory bandwidth. The M4 row below is measured (&lt;a href="https://macyou.co/benchmarks" rel="noopener noreferrer"&gt;methodology and raw JSON, CC BY 4.0&lt;/a&gt;); the other rows are bandwidth-scaled estimates until measured columns land.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;th&gt;Bandwidth&lt;/th&gt;
&lt;th&gt;Comfortable models (Q4)&lt;/th&gt;
&lt;th&gt;What to expect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;M4 Mac mini, 16 GB&lt;/td&gt;
&lt;td&gt;120 GB/s&lt;/td&gt;
&lt;td&gt;3B-14B&lt;/td&gt;
&lt;td&gt;Measured: Llama 3.2 3B 46.7 tok/s, Llama 3.1 8B 21.2, Qwen 2.5 14B 11.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M4 Mac mini, 24-32 GB&lt;/td&gt;
&lt;td&gt;120 GB/s&lt;/td&gt;
&lt;td&gt;14B comfortably, 32B at the edge&lt;/td&gt;
&lt;td&gt;Same speeds as 16 GB - extra memory buys model size, not tok/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M4 Pro Mac mini, 48-64 GB&lt;/td&gt;
&lt;td&gt;273 GB/s&lt;/td&gt;
&lt;td&gt;32B comfortably, 70B Q4 at 64 GB&lt;/td&gt;
&lt;td&gt;~2x the base M4 at equal model size; 70B at ~5-6 tok/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M4 Max Mac Studio, 128 GB&lt;/td&gt;
&lt;td&gt;546 GB/s&lt;/td&gt;
&lt;td&gt;70B Q8, 123B Q4&lt;/td&gt;
&lt;td&gt;~4x the base M4; 70B Q4 in the low teens tok/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M3 Ultra Mac Studio, 256 GB&lt;/td&gt;
&lt;td&gt;819 GB/s&lt;/td&gt;
&lt;td&gt;200B-class Q4, 70B FP16&lt;/td&gt;
&lt;td&gt;Largest single-box option; 405B still needs clustering&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The RAM math in one line
&lt;/h2&gt;

&lt;p&gt;Weights in GB = parameters (billions) x bits per weight / 8, plus about 15% runtime overhead, plus context. At Q4_K_M (~4.85 bits) an 8B model is ~4.9 GB of weights and ~6 GB in memory; a 32B model is ~20 GB; a 70B model is ~42 GB; a 123B model is ~75 GB. Q8_0 roughly doubles those numbers, FP16 roughly quadruples them. Add 1-4 GB for a 32K context, more for 128K.&lt;/p&gt;

&lt;p&gt;That is why 16 GB tops out at 14B, 64 GB is the 70B threshold, and 128 GB is where 100B+ dense models become practical.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why speed is about bandwidth, not cores
&lt;/h2&gt;

&lt;p&gt;Generating one token means reading every active weight once. A 4.9 GB model on a 120 GB/s bus can therefore never exceed ~24 tok/s - and we measured 21.2, about 87% of the theoretical ceiling. The same arithmetic predicts the M4 Pro (273 GB/s) at ~2x and the M4 Max (546 GB/s) at ~4x for the same model, which matches what the community consistently reports.&lt;/p&gt;

&lt;p&gt;Two consequences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More GPU cores on the same bandwidth barely help generation.&lt;/li&gt;
&lt;li&gt;Mixture-of-experts models only read their active experts per token, so they run far faster than their parameter count suggests - a 35B-A3B MoE can out-run a dense 8B.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompt processing is the exception: it is compute-bound, and it varies about 2x between model families at equal size. We measured Qwen 2.5 7B at 1,130 prompt tok/s against Llama 3.1 8B at 587. If your workload is long-prompt/short-answer (RAG, classification), that gap matters more than generation speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ollama vs LM Studio vs MLX vs llama.cpp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; - the default for anything headless or scripted: one command to pull a model, a REST API on port 11434, and an OpenAI-compatible endpoint. Runs llama.cpp underneath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LM Studio&lt;/strong&gt; - the best GUI: model browser, chat window, and a local server that speaks the OpenAI API. Same engine class as Ollama, so same speeds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MLX&lt;/strong&gt; - Apple's own array framework. Fastest on some models and the natural choice for fine-tuning on a Mac; it's a Python library, not an app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;llama.cpp&lt;/strong&gt; - the raw engine when you want every flag, the newest quant formats, or a C/C++ embed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Five-minute setup with Ollama
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;ollama
ollama serve &amp;amp;
ollama pull llama3.1:8b
ollama run llama3.1:8b &lt;span class="s2"&gt;"Explain unified memory in two sentences."&lt;/span&gt;

&lt;span class="c"&gt;# OpenAI-compatible endpoint for your existing code:&lt;/span&gt;
curl http://localhost:11434/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"llama3.1:8b","messages":[{"role":"user","content":"Hi"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Point any OpenAI SDK at &lt;code&gt;http://localhost:11434/v1&lt;/code&gt; with a dummy API key and it works. Before pulling a bigger model, do the RAM math - a 70B build on a 16 GB machine downloads 40 GB and then fails to load.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common mistakes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Buying GPU cores instead of memory.&lt;/strong&gt; A 24 GB Mac with more GPU cores runs the same 8B model no faster than a 16 GB one on the same chip; the next tier of bandwidth is what changes speed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring the context window.&lt;/strong&gt; A model that "fits" with 1 GB to spare will swap and crawl the moment you paste a long document. Leave 2-4 GB free, more for RAG.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running production on a laptop.&lt;/strong&gt; Thermal throttling, sleep, and a residential uplink turn a 21 tok/s machine into an unreliable one. Anything that needs to be up 24/7 belongs on a desktop-class Mac with a real network connection - yours or rented.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  When a cloud Mac makes more sense than buying
&lt;/h2&gt;

&lt;p&gt;If you need a local-class model available around the clock, reachable by your team or your app, the honest comparison is not laptop vs cloud but &lt;a href="https://macyou.co/compare/buy-vs-rent" rel="noopener noreferrer"&gt;buying a Mac mini vs renting one&lt;/a&gt;. Owning wins on raw hardware cost over three years; renting wins the moment you count hosting, a static IP, power, remote-access setup, and being your own on-call. That's the niche we built Macyou for - a dedicated M4 Mac mini from $79/mo with Ollama pre-installed and the OpenAI endpoint already exposed, up to a 256 GB M3 Ultra.&lt;/p&gt;

&lt;p&gt;Per-model requirements, quant tables, and the cheapest chip that fits each model are in our &lt;a href="https://macyou.co/models" rel="noopener noreferrer"&gt;model guides&lt;/a&gt;. Questions about a specific model or Mac - ask in the comments, I'll answer with numbers where we have them.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>macos</category>
      <category>ollama</category>
    </item>
  </channel>
</rss>
