已合并
Add CANN Dockerfiles for A2 and A3 #167
haozhang创建于 17 天前
Add CANN Dockerfiles for A2 and A3 #167
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 haozhang 的贡献)17 天前 关联了issue:[Task]: 提供不同版本的 Dockerfile
AtlasAccount
17 天前 评论:
17 天前 评论:
compile


atomgit-bot
17 天前 评论:
17 天前 评论:
变更摘要
本 PR 为 Faiss NPU 补充了基于 CANN 9.1.0 镜像的容器化构建方案,新增 6 个 Dockerfile 覆盖 A2(ascend910b)、A3(ascend910_93)、A5(ascend910_95)三种昇腾芯片与 Ubuntu 22.04、openEuler 24.03 两种操作系统的组合,配套新增 .dockerignore、Ubuntu/openEuler 共用的依赖安装脚本 install_dependencies.sh、完成自定义算子编译与 Faiss NPU 编译打包安装的 build_and_install.sh,并新增覆盖镜像矩阵、构建脚本契约、设备挂载与构建上下文等内容的静态回归测试 test_dockerfiles.py。所有新增文件均为纯新增(705 行),未删除任何代码。
主要改动
- 新增 6 个 CANN 基础镜像 Dockerfile 及配套
.dockerignore: 每个 Dockerfile 以${CANN_REGISTRY}/cann:${CANN_VERSION}-{910b|a3|950}-{ubuntu22.04|openeuler24.03}-py${PYTHON_VERSION}为基础镜像,设置ASCEND_CUSTOM_OPP_PATH=${ASCEND_HOME_PATH}/opp/vendors/custom_math及对应LD_LIBRARY_PATH,并通过FAISS_NPU_COMPUTE_UNIT注入芯片编译目标(ascend910b/ascend910_93/ascend910_95);.dockerignore统一排除sift1M、/build/、/faiss/npu/ops/build/、/faiss/npu/ops/build_out/、/.git/等冗余文件。 - 新增共享依赖安装脚本
install_dependencies.sh: 通过/etc/os-release识别系统,Ubuntu 走apt-get(安装build-essential、libopenblas-dev、python3-dev、swig等),openEuler 走dnf/yum(安装gcc、openblas-devel、python3-devel、swig等),并统一通过 pip 安装cmake==3.26.4、numpy==1.26.4、packaging、setuptools、wheel。 - 新增构建安装脚本
build_and_install.sh: 校验 compute unit 参数与FAISS_PYTHON_VERSION,source 官方 CANN 环境脚本/usr/local/Ascend/ascend-toolkit/set_env.sh并校验ASCEND_HOME_PATH,随后执行ops_build.sh --compute-unit=...编译自定义算子、以-DFAISS_ENABLE_NPU=ON/-DFAISS_ENABLE_GPU=OFF配置 cmake 编译 Faiss、bdist_wheel打包唯一 wheel 并以--force-reinstall --no-deps安装,最后将生成的cann-ops-math-custom_linux-aarch64.run安装到${ASCEND_HOME_PATH}/opp。 - 新增静态回归测试
test_dockerfiles.py: 覆盖共享脚本契约(系统识别、编译目标校验、NPU 开启/GPU 关闭、wheel 打包与算子安装)、6 个 Dockerfile 的镜像矩阵与基础镜像/编译单元一致性、CANN 路径继承与自定义算子路径派生、.dockerignore自包含性、README 中 A5 设备目录挂载(/dev/ummu、/dev/uburma)与 A2/A3 的--device /dev/devmm_svm说明,以及仓库构建输入文件的存在性。


不准确?
atomgit-bot
17 天前 评论:
17 天前 评论:
AtlasAccount
17 天前 评论:
17 天前 评论:
此处折叠了202条消息 查看更多
chasefhb
3 天前 评论:
3 天前 评论:
/lgtm


3 天前 添加了label:approved
3 天前 关闭了关联的issue
3 天前 合入了pull request,合并节点 SHA:49409a958269086e546b765d5f7ab910eb2e277b
ascend-robot
3 天前 评论:
3 天前 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


问题/功能描述
关联 Issue:#36
Faiss NPU 当前缺少面向不同昇腾芯片和操作系统的 Dockerfile,需要补充基于 CANN 镜像的容器化构建方案,覆盖 A2、A3以及 Ubuntu 22.04、openEuler 24.03。
修改方案描述
.dockerignore。已完成以下静态验证:
test_flat_accuracy.py验证待后续执行。开发自检