文件最后提交记录最后更新时间
15 天前
15 天前
15 天前
README

Faiss NPU Dev Container

本目录提供基于昇腾 CANN 环境的开发容器配置,用于在 VS Code(Dev Containers)中开发、编译和调试 Faiss NPU。

直接使用官方 CANN 预制镜像(无需自建 Dockerfile);编译依赖在容器首次创建时由 postCreateCommand.sh 自动安装。

环境要求

  • 宿主机为 Linux(x86_64 或 aarch64),已安装昇腾 NPU 驱动与固件
  • 已安装 Docker 与 VS Code "Dev Containers" 扩展
  • 容器使用官方 CANN 预制镜像(华为云 SWR 仓库,国内可直接拉取): swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.0-910b-ubuntu22.04-py3.11(CANN >= 9.0.0)

使用方式

  1. 在 VS Code 中打开本仓库根目录
  2. 弹出提示时选择 "Reopen in Container",或执行命令面板(Ctrl+Shift+P)→ "Dev Containers: Reopen in Container"
  3. 首次启动:拉取 CANN 镜像 → 创建容器 → postCreateCommand.sh 自动安装编译依赖(openblas/swig/cmake 3.26/numpy 等,需数分钟)
  4. 容器启动后按 postCreateCommand.sh 打印的步骤编译算子与 faiss_npu

可配置项

配置 位置 说明
CANN 版本 / 芯片类型 devcontainer.jsonimage 默认 9.0.0-910b-ubuntu22.04-py3.11;A3 改为 9.0.0-a3-ubuntu22.04-py3.11,编译算子时用 COMPUTE_UNIT=ascend910_93
多卡 devcontainer.jsonrunArgs 追加 --device=/dev/davinci1/dev/davinci2

无 NPU 设备的环境

若宿主机无 NPU(仅用于阅读代码 / CPU 编译),请注释掉 devcontainer.json 中的 runArgsmounts 后重新打开。

常见问题

  • 容器启动失败,提示找不到 /dev/davinci*:确认宿主机已安装 NPU 驱动,或按上文注释设备挂载
  • npu-smi 不可用:确认 mounts 中已挂载 /usr/local/bin/npu-smi
  • import faiss 报算子未安装:执行 python3 -m faiss.npu_setupfaiss-install-ops 安装算子 run 包
  • 依赖安装慢/失败postCreateCommand.sh 已将 apt 源切换为华为云镜像、pip 使用华为云镜像