← Latest papers
🤖 AI

When NPUs Are Not Always Faster: A Stage-Level Analysis of Mobile LLM Inference

This paper presents the first stage-level analysis of mobile LLM inference on CPU-NPU heterogeneous SoCs, revealing that NPUs often fail to outperform CPUs in compute-intensive prefill stages and can even increase energy consumption, thereby challenging the assumption of universal NPU acceleration and offering new design guidelines for on-device inference.

Original authors: Pu Li, Jiawen Qi, Qinyu Chen

Published 2026-05-28
📖 5 min read🧠 Deep dive

Original authors: Pu Li, Jiawen Qi, Qinyu Chen

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine your smartphone is a busy kitchen trying to cook a complex meal (a Large Language Model, or LLM). The kitchen has two main chefs: a CPU (a versatile, experienced head chef who is great at chopping and organizing) and an NPU (a specialized, high-speed robot arm designed specifically for repetitive, heavy lifting).

For a long time, people assumed the robot arm (NPU) would always be faster because it's built for AI. However, this paper pulls back the curtain to show that the robot arm isn't always the faster cook. In fact, depending on what part of the meal you are making, the human chef might actually be better.

Here is the breakdown of their findings using simple analogies:

1. The Two Stages of Cooking

The paper explains that generating text happens in two very different phases, like two different parts of a cooking process:

  • The "Prefill" Stage (Reading the Recipe): This is when the phone reads your entire prompt (the input text) all at once. It's like reading a whole cookbook chapter. This requires massive, heavy lifting (doing many calculations at once).

    • The Finding: The CPU (Human Chef) wins here. The robot arm (NPU) is actually slower (up to 1.6 times slower) at this stage.
    • Why? The robot arm has a small workspace (memory) and isn't optimized for this specific type of "heavy lifting" yet. The human chef has a bigger counter and better tools for this specific job.
  • The "Decode" Stage (Writing the Meal): This is when the phone generates one word at a time, one after another. It's like the robot arm placing one garnish on a plate, then waiting for the next order. This is a memory-heavy task, not a heavy-lifting task.

    • The Finding: The NPU (Robot Arm) is faster here, but only by a little bit (about 5% to 20% faster).
    • Why? The robot arm is good at moving data in a straight line, which fits this "one-by-one" style. However, the speedup isn't huge because of other problems (see below).

2. The "Taxi" Problem (Scheduling Overhead)

Even when the robot arm is faster at the actual cooking, the paper found that the process of sending the work to the robot is incredibly slow.

  • The Analogy: Imagine the human chef has to call the robot arm on a phone, wait for it to pick up, explain the task, hand over the ingredients, wait for the robot to finish, and then get the result back.
  • The Reality: For small, quick tasks (like adding a pinch of salt), the time spent on the phone call and hand-off takes 8 to 22 times longer than the actual cooking time.
  • The Result: Because the robot arm has to be "called" so many times to generate a single sentence, all that waiting time eats up the speed advantage. It's like having a Ferrari that spends 90% of its time stuck in traffic.

3. The "Wrong Tool" Penalty (Fallback)

Sometimes, the robot arm doesn't know how to do a specific task (like a complex attention mechanism).

  • The Analogy: The robot arm tries to chop a vegetable, realizes it can't, and has to hand it back to the human chef. But because they are in different parts of the kitchen, the human chef has to clean their hands, walk over, and start from scratch.
  • The Reality: When the NPU can't do a job, it falls back to the CPU. This "hand-off" adds extra delay (about 1.5x slower) because the two parts of the phone have to sync up their data. This slows down the whole process.

4. The Energy Surprise

You might think using the specialized robot arm saves battery.

  • The Finding: Surprisingly, using the NPU actually drains the battery faster (up to 51% more in some cases).
  • Why? Because the phone is spending so much time and energy managing the "phone calls" between the CPU and NPU, and dealing with the fallback errors, the total time the phone is working increases. It's like running a marathon while constantly stopping to tie your shoes; you end up using more energy than if you just ran at a steady pace.

The Bottom Line: What Should Designers Do?

The authors suggest three rules for the people building these phone chips:

  1. Know your stages: Don't just send everything to the robot. Let the human chef (CPU) handle the "heavy reading" (Prefill) and only send the "one-by-one writing" (Decode) to the robot.
  2. Stop the traffic jams: The robot needs to be able to accept instructions instantly (under 10 microseconds). We need to stop the "phone call" delays.
  3. Teach the robot more tricks: The robot needs to learn how to do all the tasks so it doesn't have to keep asking the human chef for help.

In short: The NPU is a powerful tool, but on current mobile phones, it's often held back by bad management and communication delays. Sometimes, the "old school" CPU is actually the more efficient choice.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →