写在前面的话:
可能大多数人在训练模型时使用的服务器都是英伟达显卡的,若要将在英伟达显卡上训练的模型迁移到华为服务器上,该如何操作?以下流程为在只装有系统的华为服务器上的操作,整个流程参考自昇腾社区,因此建议大家到昇腾社区查找相应的操作文档。此外将操作过程中遇到的问题一并写入。
一、检查安装环境
1.检测卡是否正常在位
以root用户登录服务器,执行如下命令:
lspci | grep d500
若回显类似如下信息,则表示卡正常在位。
3b:00.0 Processing accelerators: Huawei Technologies Co., Ltd. Device d500 (rev 23)
……
2.检查PCIe链路状态
执行如下命令查看PCIe链路BUS号:
lspci | grep d500
回显类似如下信息,3b:00.0表示PCIe链路BUS号。
3b:00.0 Processing accelerators: Huawei Technologies Co., Ltd. Device d500 (rev 23)
……
根据上述步骤查询的PCIe链路BUS号(3b:00.0仅为示例,请替换为实际查询的PCIe链路BUS号),执行如下命令检查PCIe链路状态。
lspci -vvvs 3b:00.0 | grep LnkSta
在返回的信息中查看类似如下信息(建议不低于PCIe3.0(8GT/s)X8的带宽能力)。
二、安装NPU驱动固件
1.以root用户登录服务器
2.创建驱动运行用户HwHiAiUser(运行驱动进程的用户),安装驱动时无需指定运行用户,默认即为HwHiAiUser。
groupadd HwHiAiUser
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash
3.需要安装make、dkms、gcc、kernel-devel软件包。
(1)执行如下命令检查是否安装:
make -v
rpm -qa | grep dkms
rpm -qa | grep gcc
rpm -qa | grep kernel-devel-$(uname -r)
(2)若回显相关软件包版本信息,表示已安装;若未安装请执行如下命令安装依赖。
yum install -y make dkms gcc kernel-devel-$(uname -r)
4.将驱动包和固件包上传到服务器任意目录如“/home”。(根据不同类型的卡在昇腾社区下载不同的驱动包和固件包)
5.增加驱动和固件包的可执行权限。
进入驱动包和固件包所在目录,执行如下命令。
chmod +x 驱动包名称.run
chmod +x 固件包名称.run
6.执行以下命令,完成驱动固件安装,软件包默认安装路径为“/usr/local/Ascend”。
首次安装场景,需按照“驱动 > 固件”的顺序安装驱动固件;覆盖安装场景,需按照“固件 > 驱动”的顺序安装固件驱动。
(1)安装驱动:执行以下命令,完成驱动安装。
./Ascend-hdk-xxx-npu-driver_{version}_linux-{arch}.run –full –install-for-all
*注:{version}表示软件包版本;{arch}表示架构,请以实际软件包名替换。
若系统出现如下关键回显信息,则表示驱动安装成功。
Driver package installed successfully!
(2)安装固件,执行以下命令,完成固件安装。
./Ascend-hdk-xxx-npu-firmware_{version}.run –full
若系统出现如下关键回显信息,表示固件安装成功。
Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect
7.执行reboot命令重启系统,使NPU驱动固件生效。
8.重启系统后,以root用户登录服务器。
9.执行npu-smi info查看驱动加载是否成功。
若出现类似如下图所示回显信息,说明加载成功。
三、安装CANN
1.安装依赖
安装系统依赖前,确保服务器已连接外网,并配置软件源。
(1)查询服务器是否连接外网。
wget www.hiascend.com
(2)查询服务器是否配置软件源
yum makecache
如果以root用户安装Python后,其他用户也需要使用Python,则在安装系统依赖前,请确保root用户的umask值为0022。
执行如下命令,查询umask值。
umask
2.以root用户登录服务器,安装依赖软件
yum install -y gcc gcc-c++ make cmake sqlite-devel zlib-devel openssl-devel libffi-devel net-tools git
要求3.5.1版本及以上cmake(执行cmake –version命令查询),若cmake版本低于3.5.1,需安装3.5.2版本cmake
(1)使用wget下载cmake源码包,可以下载到安装服务器任意目录,命令为:
wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz –no-check-certificate
(2)进入下载后的目录,解压源码包,命令为:
tar -zxvf cmake-3.5.2.tar.gz
(3)进入解压后的文件夹,执行配置,编译和安装命令:
cd cmake-3.5.2
./bootstrap –prefix=/usr
make
make install
(4)安装完成后重新执行cmake –version查看版本号。
要求7.3.0版本及以上gcc(执行gcc –version命令查询)。
3.检查系统是否安装满足版本要求的Python开发环境(支持Python3.7.x至3.10.x)
python3 –version
pip3 –version
若已安装Python3,未安装pip3,请执行如下命令安装。
yum install -y python3-pip
4.执行如下命令安装所需的Python第三方库。
pip3 install –upgrade pip
pip3 install attrs cython numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py
5.安装CANN
安装前须知:安装Toolkit软件前请确保安装目录可用空间大于7G,如不满足请清理空间或更换安装目录。
如果同时安装Toolkit和kernels,请按照“Toolkit > kernels软件”的顺序进行安装。
(1)以root用户登录服务器。
(2)将获取的Toolkit和kernels软件包上传到安装环境任意路径如“/home”。(软件包可在升腾社区获取)
增加对软件包的可执行权限,在软件包所在目录执行如下命令。
chmod +x Toolkit软件包名称.run
chmod +x kernels软件包名称.run
(3)安装Toolkit和kernels软件。
在软件包所在目录执行以下命令。
./Ascend-cann-toolkit_<version>_linux-<arch>.run –install –install-for-all –quiet
./Ascend-cann-kernels_<version>_linux-<arch>.run –install –install-for-all –quiet
安装完成后,若显示如下信息,则说明软件安装成功:
xxx install success
xxx表示安装的实际软件包名。
Toolkit安装后的路径:“/usr/local/Ascend”。
6.配置环境变量,用户可以通过修改~/.bashrc文件方式设置永久环境变量,操作如下:
(1)执行vi ~/.bashrc命令,打开.bashrc文件。
(2)按“i”键进入编辑模式,在文件最后一行后面添加如下内容。
source /usr/local/Ascend/ascend-toolkit/set_env.sh
(3)按“Esc”键退出编辑模式,执行:wq!命令保存文件并退出。
(4)执行source ~/.bashrc命令使其立即生效。
四、安装NNAL
NNAL(Ascend Transformer Boost 加速库)
1.增加可执行权限
进入软件包所在目录,并为软件包添加可执行权限:
chmod +x nnal软件包名称.run
2.校验软件包完整性
执行以下命令校验软件包的完整性和一致性:
./Ascend-cann-nnal_xxx_linux-aarch64.run –check
如果校验通过,会显示校验成功的信息。
3.安装 NNAL
执行以下命令安装 NNAL:
./Ascend-cann-nnal_xxx_linux-aarch64.run –install –quiet
如果未指定安装路径,默认安装路径为:
root 用户:/usr/local/Ascend。
安装日志路径:/var/log/ascend_seclog/ascend_nnal_install.log
4.配置环境变量,用户可以通过修改~/.bashrc文件方式设置永久环境变量,操作如下:
(1)执行vi ~/.bashrc命令,打开.bashrc文件。
(2)按“i”键进入编辑模式,在文件最后一行后面添加如下内容。
source /usr/local/Ascend/nnal/atb/set_env.sh
(3)按“Esc”键退出编辑模式,执行:wq!命令保存文件并退出。
(4)执行source ~/.bashrc命令使其立即生效。
五、安装ToolBox
1.以root用户登录服务器。
2.将获取的ToolBox软件包上传到安装环境任意路径(如“/home”)。
3.增加对软件包的可执行权限。
在软件包所在目录执行如下命令。
chmod +x toolbox软件包名称.run
4.安装ToolBox软件。
在软件包所在目录执行以下命令。
./Ascend-mindx-toolbox_xxx_linux-aarch64.run –install –install-for-all –quiet
安装完成后,若显示如下信息,则说明软件安装成功:
xxx install success
xxx表示安装的实际软件包名。
安装后的路径:“/usr/local/Ascend”。
5.配置环境变量,用户可以通过修改~/.bashrc文件方式设置永久环境变量,操作如下:
(1)执行vi ~/.bashrc命令,打开.bashrc文件。
(2)按“i”键进入编辑模式,在文件最后一行后面添加如下内容。
source /usr/local/Ascend/toolbox/set_env.sh
(3)按“Esc”键退出编辑模式,执行:wq!命令保存文件并退出。
(4)执行source ~/.bashrc命令使其立即生效。
六、安装PyTorch 与torch_npu
根据不同的CANN版本安装不同版本的PyTorch和torch_npu
以CANN8.0.0版本为例,使用pip方式安装2.1.2版本PyTorch,Python版本为3.8。
1.安装PyTorch
(1)使用以下命令下载软件包
wget https://download.pytorch.org/whl/cpu/torch-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
(2)使用以下命令进行安装
pip3 install torch-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
2.安装torch_npu
(1)使用以下命令下载软件包,torch_npu 版本为6.0.0
wget https://gitee.com/ascend/pytorch/releases/download/v6.0.0-pytorch2.1.0/torch_npu-2.1.0.post10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
(2)使用以下命令进行安装
pip3 install torch_npu-2.1.0.post10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
执行如下命令,若返回True则说明安装成功。
python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"
PyTorch版本为2.1.0,若出现“找不到google或者protobuf或者protobuf版本过高”报错时,需执行如下命令:
pip3 install protobuf==3.20
3.安装torchvision
与PyTorch2.1.0版本相对应的torchvision版本为0.16.0,使用如下命令安装torchvision。
pip3 install torchvision==0.16.0
七、安装MindStudio
MindStudio类似于PyCharm,安装完成后即可在服务器修改、调试程序。
1.MindStudio7.0.0版本下载地址
https://support.huawei.com/enterprise/zh/ascend-computing/mindstudio-pid-251913966/software/261723310?idAbsPath=fixnode01|23710424|251366513|254884019|261408772|251913966
2.检查源
安装过程需要下载相关依赖,请确保服务器能够连接网络,请在root用户下执行如下命令检查源是否可用。
yum repolist
3.安装依赖
(1)检查系统是否安装Python依赖以及gcc等软件。
分别使用如下命令检查是否安装gcc,make以及Python依赖软件等。
gcc –version
g++ –version
make –version
cmake –version
rpm -qa |grep unzip
rpm -qa |grep zlib-devel
rpm -qa |grep bzip2-devel
rpm -qa |grep sqlite-devel
rpm -qa |grep libffi-devel
rpm -qa |grep openssl-devel
rpm -qa |grep xz-devel
rpm -qa |grep pciutils
rpm -qa |grep net-tools
rpm -qa |grep sqlite-devel
rpm -qa |grep lapack-devel
rpm -qa |grep gcc-gfortran
rpm -qa |grep xterm
rpm -qa |grep firefox
rpm -qa |grep openssh
rpm -qa | grep xdg-utils
rpm -qa | grep dbus-glib-devel
rpm -qa | grep gdb
若分别有返回信息则说明已经安装。
否则请执行如下安装命令(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可):
sudo yum install -y gcc gcc-c++ make cmake unzip zlib-devel bzip2-devel sqlite-devel libffi-devel openssl-devel pciutils net-tools lapack-devel gcc-gfortran xterm firefox openssh xdg-utils dbus-glib-devel gdb
使用root用户安装依赖,请将命令中的sudo删除。
(2)使用MindStudio的安装用户上传软件包至待安装环境如“opt”。
(3)进入opt路径解压MindStudio软件包。
使用MindStudio的安装用户在软件包所在路径执行如下命令,解压MindStudio软件包。
tar -zxvf MindStudio_{version}_linux_{arch}.tar.gz
(4)使用MindStudio的安装用户进入软件包解压后的MindStudio/bin目录。
cd /opt/MindStudio/bin
执行以下命令,启动MindStudio。
./MindStudio.sh
如果该命令不能启动MindStudio,使用以下方式启动:
a.执行以下命令,查询当前环境的shell解析方式。
echo $SHELL
b.回显为以下内容,表示当前环境的命令行需要使用bash解析。
/bin/bash
c.使用以下命令,启动MindStudio。
bash MindStudio.sh
八、模型转换onnx2om
将训练的pt模型使用export.py转换为onnx模型,使用如下命令将onnx模型转换为华为服务器适用的om模型。
atc –model=best.onnx –framework=5 –output=best — input_format=NCHW –soc_version= Ascend310P3
其中:–framework表示原始框架类型,5代表ONNX。
–output=best指定输出的 .om 文件名(不包括扩展名)
–soc_version=Ascend310P3,昇腾AI处理器的型号。
若提示如下信息,则说明模型转换成功。
ATC run success, welcome to the next use.
九、U盘挂载
在服务器上第一次插入U盘时,不显示U盘内容,此时需要进行U盘挂载。
1. 安装 exFAT 支持
由于 Kylin 系统默认不支持 exFAT 文件系统,需要安装 exfat-utils 和 fuse-exfat 包。
sudo yum install exfat-utils fuse-exfat
2. 加载 FUSE 模块
确保 FUSE 模块已加载到内核中,运行以下命令加载 FUSE 模块:
sudo modprobe fuse
3. 挂载 exFAT 文件系统
插入 U 盘后,使用以下步骤挂载 exFAT 文件系统。
(1)查找设备名称: 使用 lsblk 或 fdisk -l 命令查找 U 盘的设备名称,例如 /dev/sdc1。
lsblk
(2)创建挂载点:
sudo mkdir /mnt/usb
(3)手动挂载: 使用以下命令挂载 exFAT 文件系统:
sudo mount -t exfat /dev/sdc1 /mnt/usb
4. 验证挂载
运行以下命令检查挂载是否成功:
ls /mnt/usb
如果能够看到 U 盘的内容,说明挂载成功
5.在拔出 U 盘之前,先卸载它,以避免数据丢失。运行以下命令卸载 U 盘:
sudo umount /mnt/usb
十、文本编辑
除了安装的MindStudio可以进行文本编辑外,在未安装MindStudio时还可使用以下方法进行文本编辑。
1.使用nano命令行文本编辑器
(1)输入以下命令创建或编辑 Python 文件:nano myscript.py
(2)按 Ctrl + O 保存文件,然后按 Enter 确认文件名。
(3)按 Ctrl + X 退出 nano。
2.使用 vim命令行文本编辑器
输入以下命令创建或编辑 Python 文件:vim myscript.py
(1)按 i 进入插入模式,开始编辑文件。
(2)编辑完成后,按 Esc 退出插入模式。
(3)输入 :wq! 保存并退出文件。
写在最后的话:
巅峰的后面就是低谷,这是世间的规律,谁也逃不掉。
评论前必须登录!
注册