Quickstart
Install NMC, compile a PyTorch model to .snn, and run inference on the NT3000 eval kit. Estimated time: 10–15 minutes.
1. Installation
Prerequisites: Python 3.9–3.12, pip, and an NT3000 eval kit connected via USB-C. The eval kit drivers are bundled with the NMC CLI.
# Install NMC CLI
$ pip install nmc-cli
Successfully installed nmc-cli 0.9.1
$ nmc doctor
✓ Python 3.11.3
✓ NT3000 eval kit detected (FW 1.2.0)
✓ USB-C driver OK
All checks passed
If nmc doctor reports no device, check the USB-C connection and ensure libusb is installed (brew install libusb on macOS or sudo apt-get install libusb-1.0-0 on Linux).
2. Export your model
NMC accepts TorchScript (.pt) or ONNX (.onnx) exports. For the quickstart, use the bundled sample model:
import torch
from neurmorph.samples import GestureNet
model = GestureNet(num_classes=12)
model.eval()
example = torch.zeros(1, 9, 100)
traced = torch.jit.trace(model, example)
traced.save("gesture_net.pt")
3. Compile to .snn
Run the compiler with the --calibrate flag to run threshold calibration before serialization. The calibration pass uses the 512-sample default dataset bundled with NMC.
$ nmc compile gesture_net.pt \
--target nt3000 --calibrate
→ pass 1/6 dead-spike elimination
→ pass 2/6 temporal op fusion
→ pass 3/6 rate normalization
→ pass 4/6 threshold calibration
→ pass 5/6 HAL mapping (nt3000)
→ pass 6/6 binary serialization
output: gesture_net.snn (87 KB)
accuracy delta: -1.4% vs baselineUse nmc inspect to view the binary metadata, memory layout, and expected SRAM usage before deploying.
$ nmc inspect gesture_net.snn
target: nt3000
neurons: 4096
sram: 87 KB binary + 9 KB state
layers: 3
nmc: 0.9.14. Deploy to eval kit
Flash the compiled .snn binary to the NT3000 eval kit over USB-C. The eval kit firmware handles loading and starting the runtime loop.
$ nmc deploy gesture_net.snn \
--device nt3000:usb0
→ connecting to NT3000 (FW 1.2.0)
→ flashing 87 KB
→ verifying checksum
Model deployed. Runtime active.
5. Verify inference
Send a test sample via USB-C and read the classification result. The eval kit firmware exposes a simple JSON-over-serial protocol.
$ nmc infer --device nt3000:usb0 \
--sample samples/swipe_right.npy
class: swipe_right (idx 7)
latency: 0.11 ms
power: 38 mW (active)
Inference OK
Next steps
- Read the API Reference for full NMC SDK and CLI documentation.
- See Supported Hardware to port to BrainPulse-2 or SynCore-V.
- Use Compiler docs to understand the six optimization passes.
- Contact the engineering team for pilot program access and direct support.