Files
calculet-npu-research-archive/reports/Calculet-NPU-接口测试报告-20260801.md

73 lines
3.4 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.
# Calculet NPU 接口测试报告
测试日期:2026-08-01
测试方式:OpenVPN + SSH,容器内 CalRT C++ API 与 llama.cpp 服务实测
## 环境
- 远端系统:Ubuntu 24.04Linux 7.0.0-28-genericx86_64
- CPU32 逻辑核
- 内存:约 96 GB
- PCIe 设备:`20f5:c001`
- 内核驱动:`calculet_pci`
- 设备节点:`/dev/calculet0`
- Runtime`libcalrt-linux-x86_64.so.0.7.6`
- 模型镜像:`calculet-llama:v0.4.8-release`
- 模型:Qwen3-30B-A3B,双芯片,40960 context
## CalRT C++ API 结果
| 测试项 | 接口/行为 | 结果 |
| --- | --- | --- |
| 设备刷新 | `CalrtDevice::RefreshDevice()` | 通过 |
| 创建设备 | `CreatePCIeDevice()` | 通过 |
| Runtime 状态 | `Status()` | `CalrtSuccess (0)` |
| 设备名称 | `Name()` | `calculet0` |
| 设备信息 | `GetDevInfo()` | PCIe、DRAM 32768 MB、SRAM 18 MB、1000 MHz |
| 工作状态 | `GetDeviceRunningStatus()` | `TAKEN (2)` |
| 内存用量 | `GetMemoryUsage()` | 已用 1024 MiB;总量返回异常,见问题 1 |
| 固件信息 | `GetFirmwareInfo()` | 通过,返回 0 |
| 设备内存分配 | `CreateBuf(4096, 12)` | 通过 |
| Host 到 Device | `WriteToDevice()` | 通过,返回 0 |
| Device 到 Host | `ReadFromDevice()` | 通过,返回 0 |
| 数据一致性 | 4096 字节逐字节比较 | 通过 |
| 设备内存释放 | `FreeBuf()` | 已执行 |
## 模型服务结果
- CalcoreRT 初始化成功。
- CalRT 初始化成功。
- 双芯片模型配置成功。
- `/health`HTTP 200,约 0.10 秒。
- `/v1/models`HTTP 200,模型可见。
- `/v1/chat/completions` 非流式:HTTP 200,回答正确。
- `/v1/chat/completions` 流式:SSE 分片正常返回。
- 27 token 首次 prefill184.27 token/s。
- 246 token 生成:58.25 token/s。
- 正确内容请求端到端耗时:4.41 秒。
## 发现的问题
1. `GetMemoryUsage()` 返回的总 DRAM 值约为 `3.05176e-05 MiB`,与 `GetDevInfo()` 的 32768 MB 明显矛盾。疑似 CalRT 0.7.6 的单位换算、返回类型或 ABI 问题。
2. `chat_template_kwargs.enable_thinking=false` 未生效。Qwen3 仍返回 `reasoning_content`,短 `max_tokens` 请求可能耗尽预算并导致 `content` 为空。
3. user2 的 rootless Podman pause process 会随短 SSH 会话退出而失效,出现 `invalid internal status` 和残留锁错误。单一持续 SSH 会话或一次性 `podman run --rm` 可规避;建议配置 user lingering 或修复 Podman 会话生命周期。
4. 文档称 user2 无 sudo 权限,但该账号实际属于 `sudo` 组。建议对方核对最小权限配置。
## 未执行接口
以下接口可能改变共享设备状态、清除配置或直接操作寄存器,本轮未执行:
- 设备复位、CCU 复位
- 清除设备配置或全部设备内存
- 设置电源模式
- 寄存器写入及未提供安全地址范围的寄存器读取
- 注册固定 DRAM/SRAM/同步单元地址
- 使用非本测试模型执行完整 calbin configure/infer 流程
## 首轮接口测试收尾与当前状态
- 首轮模型服务已停止,8031 端口已关闭;一次性测试容器已退出并删除。
- 随后为执行全量资料归档,测试方重新连接了 VPN,并保留本地认证配置用于断点续传。
- 远端当前保留 `/home/user2/calculet-analysis-export` 归档目录及三个顶层分析文件;没有测试二进制或 NPU 占用进程。
- 详细远端影响和后续清理范围见 `Calculet-NPU-远端环境变更与交接说明-20260801.md`