# Calculet NPU 接口测试报告 测试日期:2026-08-01 测试方式:OpenVPN + SSH,容器内 CalRT C++ API 与 llama.cpp 服务实测 ## 环境 - 远端系统:Ubuntu 24.04,Linux 7.0.0-28-generic,x86_64 - CPU:32 逻辑核 - 内存:约 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 首次 prefill:184.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`。