Native CPU Runtime 移行計画
- 対象: EvoSpikeNet-Core
- 状態: 将来実装に備えた設計計画
- 前提: CPU本番推論を主対象とし、既存の研究・GPU・外部モデル経路は段階的に維持する
- 更新日: 2026-09-14
目的
sigmoid だけを自前化するのではなく、Torch、SNN、Transformer、量子化、sparse、モデル保存を含む推論経路全体を対象に、将来 NativeCPUBackend で本番推論を実行できる構造を準備する。
既存ライブラリを直ちに削除せず、Torch backend と Native CPU backend を並行して保持する。各コンポーネントは数値互換性、性能、保存互換性を検証した後に段階的に切り替える。
現行 INT16 sigmoid
ChronoSpikeAttention は activation_type="int16" を選択できる。入力を Q8.8、出力を Q0.15 として LUT 近似し、既存 API には float の [0, 1] を返す。
この経路は現在も Torch tensor を使用する互換実装であり、Native CPU 実装ではない。Native化では、同じ入出力契約を C++ または Rust の CPUカーネルへ移す。
CPUベンチマーク
CPU基準値は EvoSpikeNet-Core/benchmarks/results/sigmoid_precision_cpu.json に保存する。再実行:
cd EvoSpikeNet-Core
PYTHONPATH=. python3 benchmarks/sigmoid_precision_bench.py \
--device cpu \
--elements 1000000 \
--warmup 10 \
--runs 30 \
--output benchmarks/results/sigmoid_precision_cpu.json
測定する値:
- FP32、INT8 Q0.7、INT16 Q0.15 のレイテンシ
- MAE、RMSE、最大誤差
- 0.5 閾値一致率
- 出力飽和率
Torch LUT の速度だけでは Native化の効果を判断しない。Linear、SNN、sparse synapse、attention、E2E推論を同じ入力・重み・seedで比較する。
移行範囲
自前化する中核
- Tensorの shape、dtype、layout
- add、multiply、reduction、clamp、compare
- matmul、gather、scatter
- Q8.8 / Q0.15 固定小数点演算
- sigmoid、ReLU、tanh
- LIF、Izhikevich、EvoLIF、膜電位、reset
- COO/CSR sparse synapse と delay buffer
- ChronoSpikeAttention と必要範囲のTransformer推論
- Native model artifact loader
当面維持する機能
- Hugging Face tokenizer / pretrained model
- ONNX Runtime、FAISS、scikit-learn
- FastAPI / Uvicorn
- Qiskit
- CUDA / TensorRT / Edge TPU 固有処理
- 学習用 autograd、optimizer、既存
.pt/.pth読み込み
段階導入
- shape、dtype、spike値域、sparse index、RNG、artifact schemaを仕様化する
- CPU scalar kernel と Torch golden reference を比較する
- INT16 sigmoid、ReLU、clamp、reduction、matmulを移植する
- LIF、膜電位、sparse synapse、delay bufferを移植する
- 推論専用のattention / Transformer blockを移植する
- Native artifact loaderとruntime adapterを接続する
- モデル単位で feature flag を有効化し、失敗時はTorch backendへ戻す
- autograd・学習・分散同期はCPU本番で必要な場合に限り後段で検討する
本番採用条件
Native CPU backend は、少なくとも次を満たしたモデルだけで有効化する。
FP32 output cosine similarity >= 0.999
sigmoid threshold agreement >= 99.9%
spike count agreement >= 99.9%
p95 latency <= current production path
24-hour soak with no unbounded memory growth
existing checkpoint load succeeds
航空安全認証、Safety Barrier、センサー製品仕様はこの計画の対象外であり、利用側で別途検証する。
関連: HPDBNノードアーキテクチャ、分散脳システム技術仕様書、ソースコード実装詳細ガイド
依存分類と実装境界
Native化の中心対象は、Tensorのshape/dtype/layout、基本演算、Q8.8/Q0.15固定小数点演算、Linear・必要範囲のConv・Embedding・Norm、sigmoid・ReLU・tanh、LIF/Izhikevich/EvoLIF、膜電位・reset・spike encoding、COO/CSR sparse synapse、delay buffer、ChronoSpikeAttention、推論専用Transformer block、Native artifact loaderである。
Hugging Face tokenizer/pretrained model、ONNX Runtime、FAISS、scikit-learn、FastAPI/Uvicorn、Qiskit、CUDA/TensorRT/Edge TPU固有処理、研究用autograd/optimizer、既存.pt/.pth読み込みは当面維持する。これらを自前化してもCPU本番の中核性能に直結せず、互換性リスクが大きいためである。
目標バックエンド
EvoSpikeNet API
|
Runtime Backend Interface
|-- TorchBackend 既存互換・学習・研究
|-- NativeCPUBackend CPU本番推論
|
Native CPU Runtime
|-- Tensor / Array abstraction
|-- Scalar and SIMD kernels
|-- Fixed-point kernels
|-- SNN state runtime
|-- Sparse graph runtime
|-- Attention runtime
|-- Artifact loader
Torch tensorを公開APIへ直接露出させず、TensorLike、SpikeArray、WeightArray、DType、Shape、Deviceの契約へ整理する。ただし既存利用者向けにTorch adapterを残す。
採用ゲートと初期成果物
モデル単位で次を満たした場合のみNative backendを有効化する。
FP32 output cosine similarity >= 0.999
sigmoid threshold agreement >= 99.9%
spike count agreement >= 99.9%
p95 latency <= current production path
24-hour soak with no unbounded memory growth
existing checkpoint load succeeds
実装開始時の成果物は、backend interface、C++/Rust scalarおよびQ0.15 kernel、Torch golden test、native_cpu_kernel_bench.py、artifact schema v1、CPU-only feature flag、Torch backendへのrollback経路とする。