All posts

6 min readparanine

Pakistan's AI will run on NPUs. Here is what that changes for your stack.

Nvidia import constraints mean the accelerators actually available in Pakistan are Huawei Ascend NPUs. That is a different toolchain, and a gateway is how a team stops caring which one it is.

Most of the inference advice on the internet assumes an Nvidia GPU. The serving frameworks default to CUDA, the quantisation recipes are tested on it, and the model cards quote throughput on it. In Pakistan, and in a growing list of countries with similar import constraints, that is not the accelerator that arrives in the rack. What arrives is Huawei's Ascend line, and for the foreseeable future most of the country's inference capacity will be NPUs.

That is not a problem to be argued with. It is a fact about supply, and the useful question is what it means for a team that just wants to call a model.

The learning curve is real

Ascend is a capable accelerator with a different software stack. Kernels are written against CANN rather than CUDA, operator coverage differs model by model, and a checkpoint that runs on a GPU on Friday can need conversion, patching and re-validation before it runs on an NPU the following week. Serving frameworks that were ported onto Ascend, rather than written for it, tend to carry that friction into production as latency and as surprises.

None of this is a reason to avoid the hardware. It is a reason not to make every application team learn it.

What a gateway is for

P/9's position is that the silicon should be a detail behind a route id. The gateway exposes one OpenAI-compatible API. A route such as gpt-oss 120B can be served from Ascend 910B NPUs racked in Pakistan or, as a pass-through, from partner GPU capacity elsewhere, and the request shape is identical. Your code sends a model string and reads a stream; the serving stack, written against Ascend directly rather than through a translation layer, is our problem.

The distinction between the two pools is real and operational, so the platform labels it rather than hiding it. Every route in the catalogue carries a PK NPU or Global tag, and a key can be scoped to one pool, so a team with a residency requirement can enforce it per key instead of trusting a convention.

What to do this quarter

  • Build against the OpenAI-compatible API now, on the global pass-through routes, and keep the model string in configuration rather than code.
  • Decide which of your workloads has a residency requirement, and scope those keys to the PK NPU routes, which are open. The catalogue names the pool every route runs on.
  • Measure what matters to you (time to first token, throughput, cost per request) from the gateway's own telemetry on the dashboard, rather than from a model card written for someone else's hardware.
  • If your traffic is heavy and steady, ask about dedicated inference: reserved NPUs, billed per hour of held capacity, with no shared queue.

The country is going to have NPUs. The teams that do best with them will be the ones that never had to become NPU experts, because the layer in front of the hardware did that for them. That layer is what we are building.