Balancing search depth vs NNUE evaluation complexity in resource-constrained environments

Discussion of chess software programming and technical issues.

Moderator: Ras

payamprivate
Posts: 1
Joined: Fri Oct 02, 2026 12:08 am
Full name: Payam Ghader Kourehpaz

Balancing search depth vs NNUE evaluation complexity in resource-constrained environments

Post by payamprivate »

Hi everyone,

I've been experimenting with hobby chess engine architectures lately and thinking through the trade-offs between evaluation complexity and raw search depth, particularly when targeting resource-constrained environments (like WebAssembly in a browser or mobile device CPUs).

In traditional alpha-beta search with classical handcrafted evaluation, raw NPS was king. With NNUE architectures (e.g. halfKP, 768->(256x2)->1, or smaller networks like 128x2), the evaluation quality improves positional judgment dramatically, but the cost per leaf node evaluation is non-trivial compared to simpler accumulators or piece-square tables.

For low-power or embedded/Wasm targets where SIMD (AVX2 / AVX-512) might not be fully available or throttled:
1. At what point does a smaller, quantized network (e.g., int8 with smaller hidden layers) start giving diminishing returns compared to the search depth lost from slower node throughput?
2. Has anyone experimented with hybrid approaches—such as using a very light classical or tiny NNUE eval for bulk move ordering / quiescence search pruning, and only activating full NNUE evaluation at certain ply depths or PV nodes?
3. How much Elo difference have you observed in your own engines when scaling down accumulator size specifically for platforms without wide vector registers?

Would love to hear insights or experiences from authors who have tuned their evaluation architecture for cross-platform or constrained targets!