模块框图
flowchart TB subgraph Assets[模型资产层] GGUF[GGUF blob] TOK[Tokenizer 导出] TENSOR[Tensor payload 导出] IMAGE[Q25TOKRT image] GGUF --> TOK --> IMAGE GGUF --> TENSOR end
分层结构
flowchart TB
subgraph Assets[模型资产层]
GGUF[GGUF blob]
TOK[Tokenizer 导出]
TENSOR[Tensor payload 导出]
IMAGE[Q25TOKRT image]
GGUF --> TOK --> IMAGE
GGUF --> TENSOR
end
subgraph Host[Host 计算层]
REF[量化解码与参考 forward]
GOLDEN[golden / fixture manifest]
TENSOR --> REF --> GOLDEN
end
subgraph PL[HLS / PL 算子层]
EMB[Embedding / RMSNorm]
QKV[QKV + RoPE]
ATTN[Attention core]
MLP[MLP / matvec]
LM[LM head + top-k]
GOLDEN --> EMB
GOLDEN --> QKV
GOLDEN --> ATTN
GOLDEN --> MLP
GOLDEN --> LM
end
subgraph PS[PS / A53 层]
UART[UART command parser]
BPE[Tokenizer C API]
STUB[P4 runtime command stub]
IMAGE --> BPE
UART --> BPE
UART --> STUB
end
subgraph Board[ZCU106 执行层]
BUILD[XSA / BSP / ELF / SD]
CAPTURE[UART capture]
CHECK[Validator / archive]
UART --> BUILD --> CAPTURE --> CHECK
end模块清单
| 模块 | 代码或入口 | 输入 | 输出 | 具体功能 |
|---|---|---|---|---|
| GGUF 检查 | scripts/inspect_ollama_gguf.py | Ollama manifest | 检查 JSON | 定位 blob,解析 GGUF header、metadata 和 tensor 目录。 |
| tokenizer 导出 | scripts/export_gguf_tokenizer_assets.py | GGUF tokenizer metadata | 词表、merge、chat template、manifest | 形成 host 和 PS 可消费的 tokenizer 资产。 |
| tensor 导出 | scripts/export_gguf_tensor_payloads.py | GGUF tensor 偏移 | 原始 BIN、manifest | 逐 tensor 保留量化字节布局。 |
| PS tokenizer 打包 | scripts/prepare_ps_tokenizer_bundle.py、pack_ps_tokenizer_runtime_image.py | 词表和 merge | bundle、Q25TOKRT | 生成 token 索引、token bytes、merge table、编码索引和 image section。 |
| host 参考 | scripts/run_golden.py、scripts/qwen25_utils.py | tensor、prompt、fixture | logits、层结果、golden JSON | 对量化布局解码并计算相应范围的模型算子。 |
| HLS kernel | ZCU106/hls/*/src/ | DDR 指针、AXI-Lite 参数 | DDR 输出、状态 | 实现选定的投影、attention、MLP、lm_head、int8 tile 等算子。 |
| UART 应用 | ZCU106/ps_app/nl_uart_app/src/nl_uart_app.c | UART 行、image 地址/大小 | 协议响应 | 维护 prompt/text 状态,分发命令,调用 tokenizer API 或 P4 stub。 |
| tokenizer C API | q25_nl_tokenizer*.c/.h | runtime image、字节、token ids | token ids、UTF-8 字节、统计 | 打开 image,查词表,执行受限 BPE,或解码 token ids。 |
| P4 stub | q25_p4_runtime_cmd_stub.c | MODEL_LOAD、TOKEN_STEP、TEXT_STEP | 格式化 stub 响应 | 提供未来 PS/HLS scheduler 的命令边界,不调用模型或 HLS。 |
| 板级脚本 | ZCU106/scripts/*.ps1 | XSA、ELF、SD 载荷、串口 | report、archive | 准备构建物、采集 UART transcript、运行验证器并归档。 |