59 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kneron Toolchain Convert Orchestrator
本專案實作「Crash 即 Reset」的 Kneron Toolchain 轉換流程:
ONNX → BIE → NEF。系統以 Scheduler 為控制面,搭配 Worker Pool 與 MinIO 交換產物。
架構以 docs/Design.md 為準。
## 核心設計Crash Reset
- Redis 與 Queue 都是易失性,重啟即清空。
- Scheduler / Worker 不做任務復原。
- Crash 後需重新送出任務。
## 元件(目標架構)
- Web UI上傳 model/quant、查狀態、下載結果。
- Task Scheduler建立 job、更新狀態、派發任務、接收完成事件。
- Worker PoolsONNX / BIE / NEF Worker無狀態、pull-based。
- Redis暫存 job 狀態(不保證持久)。
- Queue任務/完成事件(不保證持久)。
- MinIO跨 Worker 的 input/output/log 存放。
## Job 流程
1) UI 建立 job並上傳 input 到 MinIO
2) Scheduler 推入 queue:onnx
3) ONNX Worker 執行完成
4) Scheduler 推入 queue:bie
5) BIE Worker 執行完成
6) Scheduler 推入 queue:nef
7) NEF Worker 執行完成
8) Scheduler 標記 COMPLETED
## 非目標
- 不做任務持久化
- 不做 crash 後 resume
- 不做 exactly-once / at-least-once 保證
- 不做 Scheduler HA
- 不做自動 retry
## 備註
- docs/Design.md 為唯一真實設計文件。
- apps/ 與 infra 為實作中的目錄,後續可能變動。
- ktc 有本地 patch 紀錄,見 docs/KTC_PATCHES.md若 ktc 更新需重新套用並測試)。
## 目錄結構(概要)
```
.
├── apps/ # 前端與 Scheduler實作中
├── infra/ # 基礎設施相關(實作中)
├── services/ # Worker 服務ONNX/BIE/NEF
├── ktc/ # Kneron Toolchain Python API 封裝
├── vendor/ # 上游/第三方模組sys_flow, sys_flow_v2 等)
├── toolchain/ # 本地 toolchain/prebuild 與相關資源
├── libs/ # toolchain v1 相關資源(來源快照)
├── libs_V2/ # toolchain v2 相關資源(來源快照)
├── scripts/ # toolchain scripts / res / config
├── tests/ # 測試
├── docs/ # 設計文件
│ └── Design.md
└── requirements.txt # Python 依賴
```