ExecuTorch’s Cortex-M CPU backend is in beta
PyTorch announced a path for preparing models for Cortex-M microcontrollers without leaving its software stack. The backend is available in the ExecuTorch repository.
In this article
What changed
On October 15, 2026, PyTorch announced the Cortex-M backend: the component that adapts model operations to these processors. Developers export a model, calibrate its quantization, re-export it and transform it for the target device. The resulting .pte program goes into firmware with the ExecuTorch runtime and CMSIS-NN library before being flashed to the device.
Beta status and precision limits
The main-branch documentation labels the backend beta. During transformation, supported quantized operations use CMSIS-NN kernels; unsupported operations fall back to portable, 32-bit floating-point implementations. The integration currently supports symmetric INT8 quantization, representing weights and activations with eight-bit integers. The documentation says CMSIS-NN’s four-bit-weight/eight-bit-activation and eight-bit-weight/sixteen-bit-activation modes are not yet integrated.
What CMSIS-NN supplies
Arm’s CMSIS-NN manual describes a library of kernels: functions performing neural-network operations, including convolution and pooling. It typically offers implementations for processors without single-instruction, multiple-data support, for those with digital signal-processing extensions, and for those with M-Profile vector instructions. Hardware feature flags select the appropriate implementation.
Collecting execution data
ExecuTorch 1.5 documents ETDump for collecting profiling and debugging data, analyzed through Inspector. Its low-level runtime integration requires enabling developer tools and event tracing during the build, linking the ETDump library and including its header. The developer passes a collector when loading the method, then extracts the buffer after inference iterations finish. Constrained devices can transfer it through UART or JTAG rather than a filesystem. Without event tracing enabled, no events are recorded.