EvoSpikeNet-Core ハードウェア対応プラグイン化 実装可能性評価
検証日: 2026年8月21日
対象: EvoSpikeNet-Core のプラグイン基盤、デバイスバックエンド、量子インスパイアード層、IBM Quantum 連携
結論
当初の「プラグイン化にはアーキテクチャ変更が必須」という評価は、現在の実装には適用されません。主要な統合は実装済みです。ただし、利用可能性は実行環境に依存します。CPU とシミュレータ経路はローカル検証可能ですが、Loihi、Jetson、Edge TPU、IBM Quantum の実機・クラウド接続は対応 SDK、ハードウェア、認証情報が必要です。
| 項目 | 現在の評価 | 根拠・残課題 |
|---|---|---|
| プラグイン基盤 | ✅ 実装済み | BasePlugin、PluginMetadata、ライフサイクル、設定検証、allowlist、PluginFactory |
| DevicePlugin | ✅ 実装済み | CPU/GPU/Loihi/Jetson/EdgeTPU/G-QuAT/IBM NorthPole/IBM Quantum のプラグインとブリッジ |
| 依存関係管理 | ✅ 実装済み | pyproject.toml の optional dependencies、DependencyChecker、分割 requirements |
| ニューロン層 | ✅ 実装済み | EntangledSynchrony の互換シグネチャ、HH/Conductance、量子層プラグイン |
| 量子層・可塑性 | ✅ シミュレータ実装済み | Quantum/QAOA/VQE 層、QuantumAnnealingPlasticity。量子ハードウェアでの勾配・性能は未検証 |
| IBM Quantum | ⚠️ 接続対応・実機未検証 | IBMQuantumPlugin は Runtime、Sampler、Estimator、フォールバックを実装。認証済み実行は環境依存 |
| 最適化パイプライン | ✅ 実装済み | Quantization/Pruning/Fusion と YAML 駆動パイプライン |
実装確認
プラグイン基盤
主な実装箇所:
evospikenet/plugins/__init__.py:PluginType、BasePlugin、PluginMetadata、設定検証、allowlistevospikenet/plugin_factory.py: プラグインの登録・生成evospikenet/plugins/device_plugin.py:DevicePlugin抽象基底evospikenet/plugins/optimization_plugin.py:OptimizationPlugin抽象基底
PluginType には DEVICE、OPTIMIZATION、QUANTUM_LAYER、SYNAPSE、CHANNEL、SOLVER が追加済みです。従って、以前の「DEVICE、OPTIMIZATION、QUANTUM_LAYER がない」「config_schema がない」という記述は削除します。
デバイス統合
ビルトインの公開ファサードは evospikenet/plugins/builtin/device_plugins.py にあり、実装は plugins/builtin/device_backends/ に分割されています。CPU/GPU はローカルで検証できます。Loihi、Jetson、Edge TPU は SDK の有無を検出し、利用できない場合は各プラグインのフォールバック経路を使用します。
universal_integration.py には既存 API との互換ブリッジが残っているため、「アダプタとプラグインが完全分離している」「core 修正なしでは登録できない」という当初の問題は解消済みです。旧 PlatformAdapter API を直ちに廃止する必要はありません。
依存関係と設定
pyproject.toml には loihi、jetson、edge_tpu、quantum の optional dependencies が定義されています。setup_awareness.py の DependencyChecker は LAVA、TensorRT、torch2trt、pycoral、Qiskit の検出を提供します。
依存 SDK がないことと実装がないことは区別します。依存 SDK が未導入の CI では、依存なしの capability とフォールバックを検証し、SDK がある環境でのみ実バックエンドのテストを追加します。
量子層と EntangledSynchrony
quantum_neuron_layers.pyに Quantum、QAOA、VQE の層があります。neuron_backends/quantum_plugins.pyから各層をプラグインとして生成できます。plasticity_plugins.pyにQuantumAnnealingPlasticityPluginがあります。core.pyのEntangledSynchronyLayerはnum_neurons、個別パラメータ、従来のparams辞書を併用でき、互換性問題は修正済みです。
これらは「量子インスパイアード」またはシミュレータ実装です。EntangledSynchrony の確率的同期や QAOA/VQE の古典フォールバックを、物理量子もつれや実機性能の証拠として扱ってはいけません。
残課題と検証計画
IBM Quantum
IBMQuantumPlugin は Qiskit Runtime の接続、Sampler、Estimator、コスト・リトライ方針、シミュレータ/未接続フォールバックを実装済みです。VQE も VQENeuronPlugin と VQENeuronLayer が存在するため、以前の「VQE 未実装」は誤りです。
残る確認事項:
- IBM Quantum の認証情報を使った接続・ジョブ実行を環境テストで確認する。
- Qiskit、qiskit-ibm-runtime のサポート範囲を CI で固定・検証する。
- 実機ジョブのコスト、待ち時間、失敗時の再試行を監視する。
ハードウェア
- LAVA CPU シミュレータで Loihi 変換結果とスパイク入出力を検証する。
- TensorRT、torch2trt、pycoral が導入された専用 runner で Jetson/Edge TPU の変換と配備を検証する。
- G-QuAT と IBM NorthPole は、SDK の有無だけでなく各 runtime adapter の simulator 契約をテストする。
- 実機がない CI では
available、capability、フォールバック、明確なエラー結果を検証する。
定量的な品質ゲート
- 対象プラグインのユニット/統合テストが成功すること
- optional dependency がない環境でもコア import と CPU フォールバックが成功すること
- 設定スキーマ違反が初期化時に検出されること
- 実機・クラウド未接続時に成功と誤認せず、capability の
available/runtime_connectedが正しく false になること - 実機検証を行った場合は、SDK バージョン、backend 名、実行日時、コストを記録すること
検証対象テスト
tests/unit/test_plugin_phase_roadmap.py: 統合契約、EntangledSynchrony、量子層、可塑性tests/unit/test_device_plugin_integration.py: デバイスプラグインのライフサイクルと CPU/GPU フォールバックtests/unit/test_ibm_quantum_plugin.py: IBM Runtime の mock 接続、Sampler/Estimator、QAOAtests/unit/test_optimization_pipeline.py: 最適化プラグインとパイプライン
検証実行結果
本環境では pytest コマンドが PATH に存在しなかったため、対象テストは未実行です。依存関係を備えた Core 環境で、上記 4 ファイルを python -m pytest -q により実行してください。
更新履歴
| 日付 | 内容 |
|---|---|
| 2026-05-15 | 初版作成。DevicePlugin 統合前の課題を整理 |
| 2026-08-21 | 現行コードとテストを照合。完了済み項目、VQE 実装、実機未検証を反映 |