使用背景

国产算力的兴起,异构算力成为各大厂商的选择,以摆脱对英伟达算力过大的依赖,保障算力安全。本文将会讲解如何使用昇腾算力卡来制作一个镜像,然后交给k8s进行算力调度,显示国产算力的真正应用落地。

安装步骤

首先需要选择一个基础镜像:

dwiwidianto/jupyter-arm  latest  5b66095058d5   23 months ago    1.37GB

这个镜像已经安装pytorch等底层环境。在此基础上安装昇腾的依赖:

启动一个容器:

 docker run -it -d -p 8888:8888 dwiwidianto/jupyter-arm:latest

进入容器:

docker exec -it 350e868489dc  bash

打开jupyter页面,测试环境,发现:

http://{ip}:8888/lab/tree/work/Untitled.ipynb

报错信息:

ImportError: libhccl.so: cannot open shared object file: No such file or directory. Please check that the cann package is installed. Please run 'source set_env.sh' in the CANN installation path.
[ERROR] 2024-09-25-09:29:53 (PID:70, Device:-1, RankID:-1) ERR00008 PTA resource not found

发现无法使用torch_npu,转到容器内安装torch_npu,注意torch_npu要和torch的版本保持一致。

查看当前的torch版本信息:

(torch3811) root@node1:~# pip show torch
Name: torch
Version: 2.3.1
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3
Location: /root/miniconda3/envs/torch3811/lib/python3.8/site-packages
Requires: filelock, fsspec, jinja2, networkx, sympy, typing-extensions
Required-by: accelerate, peft, torch-npu, torchvision, trl

安装对应的torch_npu:

pip install  torch==2.3.1 -i https://mirrors.aliyun.com/pypi/simple/

安装yaml插件:

pip install  pyyaml -i https://mirrors.aliyun.com/pypi/simple/

完成以上安装后,运行还是会报错。

安装昇腾CANN基础环境

注意以下环境有两种安装选择:

1、在宿主机上安装,在容器内进行引用,但这样会依赖于宿主机,对于k8s集群来说,每台机器上都要安装这些环境,好处是juputer-arm镜像体积较小;

2、在jupter容器中安装,这样容器独立,不依赖宿主机环境。

安装华为昇腾torch_npu插件:

安装torch_npu插件-安装PyTorch-安装深度学习框架-在昇腾设备上安装-安装开发环境-软件安装-CANN社区版8.0.RC1.alpha001开发文档-昇腾社区

安装CANN基础开发套件:

安装CANN软件包-安装CANN(物理机场景)-软件安装-CANN商用版8.0.RC2开发文档-昇腾社区

这里选择第一种安装方式,引用宿主机的环境。

在容器中挂在cann的目录,并执行如下命令,使其每次自动生效。

cann在本地宿主机安装好后,挂载路径:

/usr/local/Ascend/ascend-toolkit

echo "source /usr/local/Ascend/ascend-toolkit/set_env.sh"  >>   ~/.bashrc

安装校验

进入容器对安装进行校验:

>>> import torch
>>> import torch_npu
>>> print(torch.__version__)
2.3.1
>>> print(torch_npu.__version__)
2.3.1

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐