曙光智算计算服务人工智能深度学习平台普通用户使用手册

使用方法一:SothisAI方法

SothisAI是一种可以直观、快速地领略深度学习魅力的方式。它的本质在于创建docker镜像,并在镜像环境内快速启动程序,训练、调优、推理,不需要输入代码,只需要动动鼠标,是一种新手友好的方式。但对于老手来说,我们更推荐方法二、方法三。因为其更高的灵活度,以及比镜像更快的速度。

1 创建基础镜像

进入计算服务首页,鼠标放到“科学计算”处,会出现如下服务和产品界面,依次点击“人工智能”“训练”“创建训练”“Tensorflow/Pytorch”。

描述 描述 描述

相关选项说明: (1)“任务名”可以进行自定义,但不能重复; (2)“Python代码”可以根据提示 加载已有文件,或者 上传本地文件; (3) “Python参数”可以自定义输入对应参数; (4) “工作空间”可以通过 自定义选择工作路径,一般填入Python参数会自动生成; (5) “TB日志路径”也可自定义,可不填; (6) “环境变量”根据需要填写即可; (7) “任务类型”分为分布式和非分布式,根据需要选择即可; (8) “加速器类型”会根据实际的申请资源显示,昆山为DCU; (9) “框架版本”点击后面的箭头选择需要的即可; (10)“资源分组”为实际申请的dcu队列名; (11)“Parameter Server”可以调整CPU数量和内存大小,申请时默认CPU数量2核,内存16G; (12)“Worker”可以调整CPU数量、DCU数量、内存大小,申请时默认CPU数量1核,DCU数量1卡,内存16G; (13)超时限制默认为10h。 注:资源占用会显示最终的总CPU核数和DCU卡数以及内存占用总数。另昆山资源单节点32核4卡,建议资源申请以核:卡为8:1的比例申请。

点击提交,创建镜像后,需要等待“状态”属性变成完成说明运行完成。 描述

2 创建分享镜像和数据集

进入“人工智能”“训练”界面后,可以看到创建的所有镜像

描述

2.1 镜像克隆

在“创建训练”界面,点击对应任务名称后的 “操作”下面 ,克隆需要的镜像。同样地,需要给克隆镜像填入命名等后点击提交。

描述

2.2 数据集克隆

进入“人工智能” “资产集市”界面后,查看需要的数据集,点击 订阅需要的数据集;点击克隆,选择个人账户路径,最后点击完成进行数据克隆。

描述 描述 描述

注:可以在“人工智能”->“数据”->“我的订阅”查看到已经订阅的数据集。

描述

另外可以在“人工智能”->“数据”->“我的数据”->“添加数据集”上传自己的数据集。

描述

3 镜像查看

进入“人工智能”“训练”,点击“任务名称”下的作业名可以查看到如下基础镜像信息

描述

4 镜像修改

(1)镜像修改定制化需要连接外网,因此需要添加代理(请联系对应工程师申请proxy代理账号)。然后在~/.bashrc中添加以下内容,或者编辑一个shell文件添加以下内容后在容器内执行脚本。

export http_proxy='http://username:password@10.15.150.2:3000'        
export https_proxy='http://username:password @10.15.150.2:3000'       
export ftp_proxy='http://username:password@10.15.150.2:3000'

(2)下面示例以基础版pytorch1.9-py36为base创建一个新容器。

1)容器仅自己使用,不进行分享: 添加proxy代理生效后,使用which pip或which pip3 确认pip所调用的python源为容器中的python,加载已经配置好的porxy文件,使用pip install 进行安装

描述

2)修改容器,并进行分享: 进入容器后,首先sudo su进入容器root,然后which pip,确认调用python为容器python,加载配置的代理文件,执行安装指令

描述

5 镜像固化

点击“容器”->“容器实例”,在操作下面点击第三个按钮进行固化,然后在弹出框点击“固化”。固化后的镜像可在“镜像管理”查看,点击“分享”后即可在共享中心查看、订阅。

描述 描述 描述 描述

6 创建容器

在“计算服务”首页,服务部分的“容器”一栏,点击“容器实例”->“创建容器”。在弹出的对话框进行相应参数填写,最后点击弹出框右下角的“创建”完成容器创建。

描述

相关选项说明: (1) 名称:表示该容器的名称; (2) 描述:简要描述容器(可省略); (3) 任务类型:选择相应应用框架; (4) 镜像版本:选择已存在的镜像版本; (5) 资源分组:选择需要的队列; (6) 资源规格:表示容器参数配置。

7 Notebook

进入“人工智能”->“Notebook”“创建Notebook”这里共有三种开发工具:Jupyter、VS code和RStudio。

描述 描述

7.1 Jupyter

进入Jupyter模块,如图所示:

描述

相关选项说明: (1)名称:自定义命名创建的任务; (2) 开发工具:Notebook共提供三种开发工具:Jupyter、VS code和RStudio; (3) 框架版本:Jupyter共提供CPU和GPU两种框架; (4) 资源规格:Jupyter共提供三种不同配置的资源供选择。

--------------------------------测试用例 - 简单矩阵乘法-----------------------------------

1、输出pytorch的版本以及是否有GPU;

import torch
import time
from torch import autograd
torch.cuda.is_available()
print(torch.__version__)

描述

2、创建tensor及三次计算的耗时; 其中第一次是CPU计算,第二次和第三次是GPU计算。第二次比第一次时间明显减少,因为用了gpu加速;第三次比第二次同样少很多,应该是cpu存在缓存。

a=torch.randn(10000,1000)
b=torch.randn(1000,10000)
print(a)
print(b)

描述

t0=time.time()
c=torch.matmul(a,b)
t1=time.time()
print(a.device,t1-t0,c.norm(2))

描述

device=torch.device('cuda')
print(device)
a=a.to(device)
b=b.to(device)
t0=time.time()
c=torch.matmul(a,b)
t2=time.time()
print(a.device,t2-t0,c.norm(2))

描述

t0=time.time()
c=torch.matmul(a,b)
t2=time.time()
print(a.device,t2-t0,c.norm(2))

描述

7.2 VS code

点击“创建Notebook”,选择VS code模块,如图所示:

描述

相关选项说明 (1) 名称:自定义命名创建的任务; (2) 开发工具:Notebook共提供三种开发工具:Jupyter、VS code和RStudio; (3) 框架版本:VS code共提供pytorch和tensorflow两种框架; (4) 资源规格:VS code共提供三种不同配置的资源供选择。

7.3 RStudio

点击“创建Notebook”,选择Rstudio模块,如图所示:

描述 描述 (1)名称:自定义命名创建的任务; (2)开发工具:RStudio共提供三种开发工具:Jupyter、VS code和RStudio; (3)框架版本:RStudio共提供pytorch和tensorflow两种框架; (4)资源规格:RStudio共提供三种不同配置的资源供选择。

--------------------------------测试示例 - 正太分布画图-----------------------------------

画出随机变量X服从 N(0,0.5),N(0,1), N(0,2)累计分布曲线。

正态分布的累计分布函数是:

描述

累积分布函数的定义(cumulative distribution function):对连续函数,所有小于等于a的值,其 出现概率的和。F(a)=P(x<=a)。

> x = seq(-5,5,length.out=100)
> y <-pnorm(x,0,1)
> plot(x,y,col='red',xlim=c(-5,5),ylim = c(0,1),type='l',xaxs='i',ylab = 'density',xlab='+',main='the Normal Cumulative Distribution')
> line(x,pnorm(x,0,0.5),col='green')
> lines(x,pnorm(x,0,0.5),col='green')
> lines(x,pnorm(x,-2,1),col='orange')

描述

使用方法二:E-Shell方式 Module调用固定模板

1 切换ROCM版本

ROCM默认版本为rocm-2.9。若需要切换rocm-3.9.1或rocm-4.0.1,版本切换命令如下:

// 方式一

module rm compiler/rocm/2.9
module load compiler/rocm/3.9.1

// 方式二

module switch compiler/rocm/3.9.1

描述

2 加载不同的App的Module

1) 设置某项目的环境变量可以通过module load 命令加载相应环境变量。例如,加载TensorFlow1.15.3。 // 查找已有环境变量

module av

描述

//找到需要添加的环境变量,添加环境变量

module load apps/TensorFlow/tf1.15.3-rocm4.0.1/hpcx-2.4.1-gcc-7.3.1

即加载了TensorFlow1.15.3环境。

2) 查看已经加载上的环境变量:

module list

描述

3 sbatch脚本提交任务

本节以公共目录下的图片分类任务(ImageNet_v2模型)为例进行展示。

(1) 将ImageNet_v2模型从公共目录拷贝到个人目录。

ImageNet_v2路径:/public/software/apps/DeepLearning/Benchmark/PyTorch/

cp -rf /public/software/apps/DeepLearning/Benchmark/PyTorch/imagenet_v2 ./

描述

(2) 编辑脚本,参数设置如下,可选择单节点单卡,单节点多卡,以及多节点多卡运算模式。(此脚本“mpi_slurm.sbatch”在个人目录里的imagenet_v2文件夹中有)

描述 描述 描述

(3) 提交脚本运行。

描述

(4) 生成标准结果输出文件和标准错误输出文件。

描述 描述

使用方法三:E-Shell Conda自定义环境使用

1 MiniConda安装

1) 使用wget下载

wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh -i https://pypi.tuna.tsinghua.edu.cn/simple/

描述

(或者使用本地sh安装包,路径在:/public/software/apps/DeepLearning/whl/Miniconda/)
2) 添加权限并运行

chmod +x Miniconda3-py37_4.9.2-Linux-x86_64.sh
mkdir -p ~/miniconda3/
bash Miniconda3-py37_4.9.2-Linux-x86_64.sh -b -f -p "~/miniconda3/"
rm -rf Miniconda3-py37_4.9.2-Linux-x86_64.sh

3) 初始化 conda 环境

~/miniconda3/bin/conda init
source ~/.bashrc

2 两种方式自定义PyTorch环境

2.1 本地安装PyTorch-1.7

1) 本地whl所在目录

/public/software/apps/DeepLearning/whl

2) conda创建python3.6环境

conda create -n pytorch_1.7-rocm_3.9.1-custom python=3.6

描述

3) 在conda环境中安装PyTorch1.7

conda activate pytorch_1.7-rocm_3.9.1-custom

描述

pip install /public/software/apps/DeepLearning/whl/rocm-3.9.1/torch-1.7.0a0-cp36-cp36m-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/

描述

4) 安装依赖包

pip install absl-py six wrapt -i https://pypi.tuna.tsinghua.edu.cn/simple/

描述

5) 安装方式一:自定义安装所需文件包

conda install lmdb=0.9.24 -y
ln -s /public/home/user_name/miniconda3/envs/pytorch_1.7-rocm_4.0.1/lib/liblmdb.so /public/home/user_name/miniconda3/envs/pytorch_1.7-rocm_4.0.1/lib/liblmdb.so.0.0.0
conda install openblas -y

编译opencv:opencv2.4 位于/public/software/apps/DeepLearning/whl/rocm-4.0.1/

cp -r /public/software/apps/DeepLearning/whl/rocm-4.0.1/opencv-2.4.13.6.tar.gz /public/home/user_name/software
tar -zxvf opencv-2.4.13.6.tar.gz
mkdir -p /public/home/user_name/miniconda3/opencv-2.4/
cd opencv-2.4.13.6
mkdir build
cd build 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/public/home/user_name/miniconda3/opencv-2.4 ..
make -j4 && make install

添加环境变量

vi  ~/.bashrc
export LD_LIBRARY_PATH=/public/home/user_name/miniconda3/opencv-2.4/lib/:$LD_LIBRARY_PATH
source ~/.bashrc

添加所需软链接

ln -s /public/software/apps/DeepLearning/PyTorch/lib/libglog.so.0 /public/home/user_name/miniconda3/envs/pytorch_1.7-rocm_4.0.1/lib/libglog.so.0
ln -s /public/software/apps/DeepLearning/PyTorch/lib/libgflags.so.2.1 /public/home/user_name/miniconda3/envs/pytorch_1.7-rocm_4.0.1/lib/

6) 安装方法二:加载集群已安装的文件路径

修改~/.bashrc文件,加载集群已安装的PyTorch依赖包,依赖包路径在:/public/software/apps/DeepLearning/PyTorch/

vi ~/.bashrc

将如下变量放进~/.bashrc中:

export SSL_HOME=/public/software/apps/DeepLearning/Libs/openssl-1.1.0j
export OPENBLAS_HOME=/public/software/apps/DeepLearning/PyTorch/openblas-0.3.7-build
export LDMB_HOME=/public/software/apps/DeepLearning/PyTorch/lmdb-0.9.24-build
export OPENCV_HOME=/public/software/apps/DeepLearning/PyTorch/opencv-2.4.13.6-build
export BOOST_HOME=/public/software/mathlib/boost/1.72.0
export PYTORCH_LIB=/public/software/apps/DeepLearning/PyTorch

export LD_LIBRARY_PATH=${SSL_HOME}/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${OPENBLAS_HOME}/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${LDMB_HOME}/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${OPENCV_HOME}/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${BOOST_HOME}/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=${PYTORCH_LIB}/lib:$LD_LIBRARY_PATH

更新系统文件

$ source ~/.bashrc

7) 安装TorchVision,安装whl包位置在目录:

/public/software/apps/DeepLearning/whl/rocm-4.0.1

激活conda环境

conda activate pytorch_1.7-rocm_3.9.1-custom
pip install /public/software/apps/DeepLearning/whl/rocm-4.0.1/torchvision-0.8.0a0+132984f-cp36-cp36m-linux_x86_64.whl

8) 申请并登录计算节点,进行测试

salloc -p kshdtest -N 1 --gres=dcu:4

描述

登录计算节点

ssh e05r4n01

切换rocm编译器版本,删除rocm_2.9,加载rocm_3.9.1

module rm compiler/rocm/2.9
module load compiler/rocm/3.9.1

描述

加载conda环境中自定义安装的PyTorch环境,运行python3,检查安装情况

conda activate pytorch_1.7-rocm_3.9.1-custom$ python3
>>> import torch
>>> import torchvision
>>> torch.__version__
>>> torchvision.__version__
>>> torch.cuda.is_available()

描述

9) 如果有提交作业脚本,在slurm脚本中添加配置MIOPEN环境变量

export MIOPEN_DEBUG_DISABLE_FIND_DB=1
export MIOPEN_DEBUG_CONV_WINOGRAD=0 
export MIOPEN_DEBUG_CONV_IMPLICIT_GEMM=0
export HSA_USERPTR_FOR_PAGED_MEM=0
export GLOO_SOCKET_IFNAME=ib0,ib1,ib2,ib3
export MIOPEN_SYSTEM_DB_PATH=/temp/pytorch-miopen-2.8

2.2 在线安装PyTorch-1.9

1) 创建环境

conda create -n pytorch_1.9-rocm_4.0.1 python=3.6

描述

conda activate pytorch_1.9-rocm_4.0.1

描述

2) 安装pytorch-1.9和torchvision-0.10.0

pip3 install torch -f https://download.pytorch.org/whl/rocm4.0.1/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple/

描述

pip3 install ninja -i https://pypi.tuna.tsinghua.edu.cn/simple/

描述

pip3 install 'git+https://github.com/pytorch/vision.git@v0.10.0'

(该文件若无法下载请联系支持人员)

3) 在slurm脚本中添加配置MIOPEN环境变量

export MIOPEN_DEBUG_DISABLE_FIND_DB=1
export MIOPEN_DEBUG_CONV_WINOGRAD=0 
export MIOPEN_DEBUG_CONV_IMPLICIT_GEMM=0
export HSA_USERPTR_FOR_PAGED_MEM=0
export GLOO_SOCKET_IFNAME=ib0,ib1,ib2,ib3
export MIOPEN_SYSTEM_DB_PATH=/temp/pytorch-miopen-2.8

4) 在bashrc文件中添加路径

vi ~/.bashrc

export LD_LIBRARY_PATH=/public/home/user_name/miniconda3/bin/../lib/:$LD_LIBRARY_PATH

source ~/.bashrc

5) 测试

module switch compiler/rocm/4.0.1
conda activate pytorch_1.9-rocm_4.0.1
python3
>>>import torch
>>>torch.cuda.is_available()
True

描述

2.3 本地安装PyTorch-1.9

1) 创建python3.6环境

conda create -n pytorch_1.9-rocm-4.0.1 python=3.6

2) 安装pytroch-1.9,本地wheel包在/public/software/apps/DeepLearning/whl/rocm-4.0.1/目录下。

conda activate pytorch_1.9-rocm-4.0.1

pip install /public/software/apps/DeepLearning/whl/rocm-4.0.1/torch-1.9.0+rocm4.0.1-cp36-cp36m-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/

将公共目录中torchvision包拷贝到自定义的conda环境中的site-package中(注意修改拷贝目的地路径的用户名)

cp -r /public/software/apps/DeepLearning/whl/rocm-4.0.1/torchvision-0.10-pytorch1.9-rocm-4.0.1-py36/torchvision/ /public/home/username/miniconda3/envs/pytorch_1.9-rocm-4.0.1/lib/python3.6/site-packages/

cp -r /public/software/apps/DeepLearning/whl/rocm-4.0.1/torchvision-0.10-pytorch1.9-rocm-4.0.1-py36/torchvision-0.10.0a0+cde7ff0.dist-info/ /public/home/username/miniconda3/envs/pytorch_1.9-rocm-4.0.1/lib/python3.6/site-packages/

安装依赖包:(可以使用清华源)

pip3 install numpy pillow -i https://pypi.tuna.tsinghua.edu.cn/simple/

3) 在slurm脚本中添加配置MIOPEN环境变量

export MIOPEN_DEBUG_DISABLE_FIND_DB=1
export MIOPEN_DEBUG_CONV_WINOGRAD=0 
export MIOPEN_DEBUG_CONV_IMPLICIT_GEMM=0
export HSA_USERPTR_FOR_PAGED_MEM=0
export GLOO_SOCKET_IFNAME=ib0,ib1,ib2,ib3
export MIOPEN_SYSTEM_DB_PATH=/temp/pytorch-miopen-2.8

4) 在bashrc文件中添加路径

vi ~/.bashrc

export LD_LIBRARY_PATH=/public/home/user_name/miniconda3/bin/../lib/:$LD_LIBRARY_PATH

source ~/.bashrc

results matching ""

    No results matching ""