使用背景
国产算力的兴起,异构算力成为各大厂商的选择,以摆脱对英伟达算力过大的依赖,保障算力安全。本文将会讲解如何使用昇腾算力卡来制作一个镜像,然后交给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