当前位置: 首页 > news >正文

写给新手的 cann-spack-package:昇腾Spack包管理到底是啥?

之前帮兄弟搭 HPC 集群他问我“哥集群有 100 台机器要装 CANN难道一台一台装”我说用 cann-spack-package。好问题。今天一次说清楚。cann-spack-package 是啥cann-spack-package CANN Spack Package昇腾为SpackHPC 包管理器开发的 CANN 包定义。让你用一条命令在 100 台机器上并行安装 CANN。一句话说清楚cann-spack-package 是昇腾的集群部署工具你想在 HPC 集群上批量安装 CANN、管理多版本、依赖自动解决定义都在这。你说气人不气人之前一台一台装 100 台机器装了 2 天现在一条命令 10 分钟全搞定。为什么要用 cann-spack-package三个字批量装。不用 cann-spack-package一台一台装# 在 100 台机器上装 CANN$# 登上机器 1$sshmachine1 $bashinstall_cann.sh $# 等 30 分钟$# 登上机器 2$sshmachine2 $bashinstall_cann.sh $# 等 30 分钟$# ... 重复 100 次# 问题# 1. 太慢了100 台 × 30 分钟 50 小时# 2. 版本可能不对有人装了 8.0有人装了 8.5# 3. 依赖关系不清楚装了 opbase但忘了装 catlass# 4. 卸载麻烦要一台一台卸用 cann-spack-package一条命令# 1. 安装 Spack$gitclone https://github.com/spack/spack.git $cdspack $.share/spack/setup-env.csh# 2. 添加 cann-spack-package 仓库$ spack repoaddhttps://atomgit.com/cann/cann-spack-package.git# 3. 在 100 台机器上并行安装 CANN$ spackinstall--log-formatjunit --log-fileinstall.xml cann# 输出# Installing cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Searching for binary cache of cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Warning: No binary cache found.# Running pre-install hooks...# Building cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg [ Package: cann ]# Executing phase: build# Executing phase: install# Executing phase: post-install# cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Installing cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Successfully installed cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Fetching: https://mirror.spack.io/_build_cache/.../.../...## 完成100 台机器并行安装10 分钟全搞定 ✅# 4. 验证$ spackfind# 1 installed package# -- linux-ubuntu20.04-haswell / gccc-11.2.0 ---# cann8.0.0你说气人不气人之前装 2 天现在 10 分钟。核心概念就三个1. SpackSpack 是 HPC 包管理器# 安装包$ spackinstallpackage# 查看已安装包$ spackfind# 卸载包$ spack uninstallpackage# 加载环境$ spack loadpackage2. 包定义Package Definition每个包一个package.py# cann-spack-package/packages/cann/package.pyfromspackimportPackageBaseclassCann(PackageBase):Ascend CANN (Compute Architecture for Neural Networks)homepagehttps://www.hiascend.com/cannurlhttps://atomgit.com/cann/release-management/releases/8.0/CAAN-8.0.0-linux_x86_64.runversion(8.0.0,sha256...)version(8.5.0,sha256...)depends_on(opbase,typebuild)depends_on(catlass,typebuild)depends_on(ops-nn,typebuild)definstall(self,spec,prefix):# 下载安装包installerfetcher.fetch(spec)# 运行安装脚本installer.run(--install-path,prefix,--install-ops-nn,yes,--install-ops-transformer,yes)3. 仓库Repository多个包组织成一个仓库cann-spack-package/ ├── packages/ │ ├── cann/ # CANN 包 │ │ └── package.py │ │ │ ├── opbase/ # opbase 包 │ │ └── package.py │ │ │ ├── catlass/ # catlass 包 │ │ └── package.py │ │ │ └── ops-nn/ # ops-nn 包 │ └── package.py │ └── repo.yaml # 仓库配置为什么要用 cann-spack-package三个理由1. 批量部署100 台机器并行安装# 不用 cann-spack-package$# 一台一台装2 天# 用 cann-spack-package$ spackinstallcann# 10 分钟100 台机器并行 ✅2. 版本管理多版本共存# 安装多个版本$ spackinstallcann8.0.0 $ spackinstallcann8.5.0# 查看$ spackfind# 2 installed packages# -- linux-ubuntu20.04-haswell / gccc-11.2.0 ---# cann8.0.0 cann8.5.0# 切换版本$ spack load cann8.0.0 $# 使用 8.0.0$ spack load cann8.5.0 $# 使用 8.5.03. 依赖管理自动解决依赖# 安装 cann$ spackinstallcann# 输出# Installing opbase-1.0.0-...# Installing catlass-1.0.0-...# Installing ops-nn-1.0.0-...# Installing cann-8.0.0-...## 完成依赖自动安装 ✅你说气人不气人依赖自动解决不用手动装。怎么用代码示例示例 1在 HPC 集群上安装 CANN# 1. 安装 Spack$gitclone https://github.com/spack/spack.git $cdspack $.share/spack/setup-env.csh# 2. 添加 cann-spack-package 仓库$ spack repoaddhttps://atomgit.com/cann/cann-spack-package.git# 3. 配置可选$ spack configaddpackages:cann:variants:ops-nnTrue,ops-transformerTrue# 4. 安装 CANN$ spackinstallcann# 输出# Installing cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Searching for binary cache of cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Warning: No binary cache found.# Running pre-install hooks...# Building cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg [ Package: cann ]# Executing phase: build# Executing phase: install# Executing phase: post-install# cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg# Successfully installed cann-8.0.0-rmv2pbo6x3q5sziotdh7tkigxqwszbg## 完成✅# 5. 验证$ spackfind# 1 installed package# -- linux-ubuntu20.04-haswell / gccc-11.2.0 ---# cann8.0.0示例 2管理多版本# 1. 安装多个版本$ spackinstallcann8.0.0 $ spackinstallcann8.5.0# 2. 查看$ spackfind# 2 installed packages# -- linux-ubuntu20.04-haswell / gccc-11.2.0 ---# cann8.0.0 cann8.5.0# 3. 切换版本$ spack load cann8.0.0 $ cann-version# CANN 8.0.0$ spack unload cann8.0.0 $ spack load cann8.5.0 $ cann-version# CANN 8.5.0示例 3卸载# 1. 卸载 CANN$ spack uninstall cann8.0.0# 输出# Warning: The following packages will be uninstalled:## -- linux-ubuntu20.04-haswell / gccc-11.2.0 ---# cann8.0.0## Do you want to proceed? [y/n] y# Successfully uninstalled cann8.0.0# 2. 验证$ spackfind# 1 installed package# -- linux-ubuntu20.04-haswell / gccc-11.2.0 ---# cann8.5.0示例 4创建环境# 1. 创建环境$ spackenvcreate cann-env $ spackenvactivate cann-env# 2. 在环境里安装包$ spackaddcann8.0.0 $ spackaddopbase $ spackaddcatlass $ spackaddops-nn# 3. 安装$ spackinstall# 输出# Installing opbase-1.0.0-...# Installing catlass-1.0.0-...# Installing ops-nn-1.0.0-...# Installing cann-8.0.0-...## 完成✅# 4. 查看环境$ spackfind# 4 installed packages# -- linux-ubuntu20.04-haswell / gccc-11.2.0 ---# cann8.0.0 opbase1.0.0 catlass1.0.0 ops-nn1.0.0# 5. 退出环境$ spackenvdeactivate性能数据用 cann-spack-package 的效率提升操作不用 cann-spack-package用 cann-spack-package提升装 100 台机器50 小时10 分钟300x切换版本手动重装一条命令100x卸载手动卸一条命令50x你说气人不气人之前装 2 天现在 10 分钟。跟其他仓库的关系cann-spack-package 在 CANN 架构里属于第 5 层昇腾计算基础层是包管理工具。依赖关系cann-spack-package包管理 ↑ 管理 CANN所有仓库解释一下cann-spack-package包管理安装/卸载/版本管理CANN被管理简单说cann-spack-package是集群部署的批量安装工具。想在 HPC 集群上批量安装 CANN就用它。cann-spack-package 的核心内容1. 包定义# packages/cann/package.pyclassCann(PackageBase):homepage...url...version(8.0.0,sha256...)depends_on(opbase,typebuild)depends_on(catlass,typebuild)definstall(self,spec,prefix):# 安装逻辑2. 仓库cann-spack-package/ ├── packages/ │ ├── cann/ │ ├── opbase/ │ ├── catlass/ │ └── ops-nn/ │ └── repo.yaml3. 配置# ~/.spack/config.yamlrepos:-https://atomgit.com/cann/cann-spack-package.git4. 环境$ spackenvcreate cann-env $ spackenvactivate cann-env $ spackaddcann8.0.0 $ spackinstall适用场景什么情况下用 cann-spack-packageHPC 集群100 台机器多版本管理要同时用 8.0 和 8.5依赖管理要自动解决依赖什么情况下不用单机不用看快速测试用 Docker 镜像更快总结cann-spack-package 就是昇腾的集群部署工具批量安装100 台机器并行安装版本管理多版本共存依赖管理自动解决依赖
http://www.zskr.cn/news/1359747.html

相关文章:

  • 工业视觉光源颜色选型全攻略|白/红/蓝/绿光适用场景、原理与避坑细则
  • RAG 进化史:从基础检索到智能体驱动
  • 各种“地”—— 各种“GND”
  • 2026亲测:专业降AI率软件选这款就对了3秒改写无痕迹
  • 利用Taotoken的API Key分级管理实现项目间的资源隔离
  • Spring 事务机制深度解析
  • 重磅资源!《大语言模型VIP+50+Python入门资料PDF》全套学习指南
  • 超市陈列这样做,顾客逛得不想走,员工执行不犯错
  • 大一新生怎么合理利用github?用好Github
  • 为什么很多企业买三维扫描设备之前问“多少钱”,用了一段时间后开始问“值不值”?
  • 香港6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • 618运营忙不过来?让AI来接管
  • AI进行简历筛选:如何将5小时筛选压缩至48分钟,彻底解决“招错人“难题?
  • mysql从5.7升级到8.0后ONLY_FULL_GROUP_BY是升级后应用报错的第一大原因
  • 3步解决魔兽争霸3在现代电脑上的三大兼容难题
  • 保山6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • myssh
  • 企业级应用通过Taotoken实现AI能力冗余与故障转移设计
  • ACS770还能打吗?最近测试了一款国产霍尔电流传感器
  • 硬核根基,智能载体:华清远见嵌入式“硬件+仿真+课程+师资”产教融合与实践教学方案
  • RAG-重排序策略
  • 【AI营销】为什么你的网站内容再好,AI也只引用其中一页?
  • 阿里云ACP云计算| 20人团考全员通过,恭喜!
  • 【限时解密】Lindy自动化方案未公开的4层权限熔断机制:为什么92%的企业跳过这步就触发合规雷区?
  • 3种实战方法搞定Docker镜像加速:从零到精通完全指南
  • Taotoken的Token Plan套餐如何帮助初创团队控制AI成本
  • 5款必备Illustrator脚本:让你的设计效率提升300%
  • 回收福禄克Fluke 5730A多功能校准器
  • AI Agent写诉状=执业风险?司法部新规生效倒计时30天,这4类文书必须人工复核
  • 如何快速找到互作基因?酵母筛库破解互作奥秘