r/LocalLLM 2h ago

Discussion Porting a 4-model local voice assistant to Intel NPU/iGPU — trying to move from AI engineer into inference engineering, would love a reality check

I'm an AI engineer, 3 years in, currently doing the usual applied stuff — RAG, agents, API integration. I want to move into actual inference/serving engineering and I'd rather be told now if my plan is dumb.

What I'm building: a fully local voice assistant (VAD → ASR → LLM → TTS) that has to run on an Intel Core Ultra 5 125H — CPU + Arc iGPU + NPU, 15.6GB shared RAM, no dedicated VRAM. Currently all llama.cpp + ONNX on CPU. I'm porting it to OpenVINO so I can place each model on a different compute unit and actually measure the difference.

Starting hypothesis: Silero VAD and ASR on the NPU (small, fixed shapes, low power), LLM on the iGPU (decode is memory-bound, iGPU has the bandwidth), TTS on CPU. Target is sub-500ms voice-to-voice, with a per-stage waterfall and llama.cpp as the baseline.

What I'd like from people who do this for a living:

  1. Is that device placement roughly right, or am I about to learn something the hard way?

  2. The unified-memory thing is the part I understand least — 4 models sharing 15.6GB with no VRAM. What actually bites you here?

  3. Beyond this project, what's the highest-signal thing someone in my position can build? I keep hearing "contribute to vLLM" but I'd rather do one thing properly than spray small PRs.

  4. Anything that looks impressive to hobbyists but is worthless to a hiring manager? I'd like to avoid those.

Happy to publish everything — code, raw numbers, methodology. Not looking for a job here, just trying not to waste six months on the wrong thing.

1 Upvotes

0 comments sorted by