ReadingResearchRadarInvestment framework
Sign in / Sign up
← Back to reading
News3 min read·2026-10-20

Voice AI company Deepgram says Nova-3 ported to AWS Trainium2 processes 11–70% more audio per dollar on batch inference

Deepgram worked with the AWS Forward Deployed Engineering team to port its Nova-3 speech-to-text model to AWS Trainium2 chips for offline batch inference. The post describes the full optimization flow from PyTorch compilation validation, NKI kernel replacement and hand-tuning, to a data-parallel Rust runtime, and self-reports processing 11–70% more audio per dollar on trn2.3xlarge instances.

ImportanceLocalEvidenceE2 unreplicatedWrite-upQuick

2026-10-20 00:23 GMT+8

Voice AI company Deepgram processes quadrillions of audio tokens a year for more than 200,000 developers and 1,400 organizations. Its offline batch workloads—contact-center analytics, medical transcription and similar scenarios—are extremely sensitive to inference cost. In October 2026, Deepgram and the AWS Forward Deployed Engineering team published a complete engineering record of porting the Nova-3 speech-to-text model to Trainium2 chips, self-reporting that a single EC2 trn2.3xlarge instance processed 11–70% more audio per dollar.

The port was not a simple compilation swap. The team first ran Nova-3 in eager mode on Trainium2 via TorchNeuron and checked which operations fell back to the CPU, then compiled with torch.compile, producing separate static-shape graphs for the encoder and decoder. The compiled path ran every model operation on Trainium2 with no CPU fallbacks detected. Numerical accuracy was validated at two levels—layer-level output consistency against CPU and end-to-end Word Error Rate—ensuring alignment with Deepgram's reference values.

The real gains came from kernel-level optimization. The team adopted a flywheel strategy: enable an NKILib pre-built kernel, profile with Neuron Explorer, then tune or hand-write a replacement based on profiling insights. Three key findings each addressed a specific bottleneck. The reference kernel for the feed-forward network layer reloaded the full set of projection weights from off-chip memory for every token tile, making memory bandwidth the limiting factor as token count grew; the hand-tuned kernel loads each weight tile once and reuses it across multiple token tiles, achieving 2.0× lower latency at batch size 96. The experimental NKILib kernel for depthwise 1D convolution framed the operation as an implicit GEMM, leaving Tensor Engine utilization low; the team rewrote it as a broadcast multiply-accumulate loop on the Vector Engine, reaching full engine utilization for a 1.5× speedup at batch size 96. The conv2d layers hit a compilation bottleneck beyond batch size 32, preventing single-graph compilation; since NKILib had no conv2d kernel, the team wrote one from scratch in NKI, unlocking batch sizes above 32 and achieving up to 50× speedup on the convolution module at batch sizes ≤32.

Sign in / Sign up
ReadingResearchRadarInvestment framework

The final source of gain was the runtime language. Nova-3 performs a sequence of small decoder calls for each audio chunk, making host-side dispatch the bottleneck at low batch sizes. Deepgram's production serving stack is itself written in Rust, so the team built a lightweight Rust runtime: Rust coordinates eight model replicas through a shared work-stealing queue, while a C layer loads and executes ahead-of-time-compiled NEFF files directly through the Neuron Runtime API, entirely bypassing the Python interpreter. Compared with a multiprocessing Python baseline, the Rust runtime eliminates interpreter overhead; compared with a multithreaded baseline, it further alleviates GIL serialization. At the throughput-maximizing batch size, the Rust runtime delivered a 7.5% throughput gain over the multiprocessing Python baseline.

It should be emphasized that all the above figures are self-reported measurements by Deepgram and AWS. The baseline is the compute options Deepgram had previously been running, whose specific configurations are not disclosed. The wide 11–70% range covers different workloads and batch sizes; readers evaluating their own scenarios should not directly extrapolate from this range.

Sources

  • 原始出处aws.amazon.com↗
Continue researching →