中科曙光使用记录

0 前言

曙光超算平台是一款高性能、高可靠性和高可扩展性的超级计算机平台。它采用了自主研发的曙光超算架构,并采用国产GPU(即DCU),硬件基于ROCm平台。其核心技术包括:

  • 曙光超算架构:采用高性能处理器和互连网络,实现超高速的数据传输和处理能力。
  • 计算加速技术:支持GPU加速和FPGA加速,进一步提升计算性能和效率。
  • 高可靠性设计:采用冗余设计和错误检测纠正技术,实现硬件故障自动切换和修复,保证计算任务的连续性。
  • 可扩展性:支持多机房间级联,实现大规模计算任务的并行处理。
  • 多编程模型和开发工具:提供多种编程模型和开发工具,方便用户进行软件开发和优化。

文对中科曙光超算平台的使用进行介绍

  1. 环境搭建

1.1 pytorch 安装包安装记录

由于曙光云使用的是国产GPU(即DCU),硬件是基于ROCm的,因此不能适配PyTorch官网下载的包(无法调用DCU),因此只能使用曙光云平台提供的编译好的PyTorch包进行安装。切忌不能使用pip install torch==1.7.0 torchvision的命令直接安装,而应该选择曙光云本地提供的包进行安装。

本次安装基于python 3.9版本进行安装,pytorch版本为1.13.1

1.1.1 环境创建、依赖包安装

首先,和conda创建环境相同,创建py39环境,并激活环境

conda create -n env_py39 python=3.9

conda activate env_py39

1.1.2 本地安装pytorch1.13.1(由曙光编译好的版本)

查看本地whl包所在目录

其他所需用到GPU的whl包可以在相关目录下找到,例如这里的dtk-22.04.1,不同名称下对应不同依赖包版本

安装pytorch1.13.1

# 安装torch
pip install /public/software/apps/DeepLearning/whl/torch-1.13.1a0+git4c8a1fe.abi0.dtk2304-cp39-cp39-linux_x86_64.whl

除了与GPU相关的包(比如torch和torchvision),其他包可直接通过pip install从网上进行安装,无需曙光云本地提供。例如以下安装numpy(注意先激活环境)

# 安装numpy
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完毕后,可通过pip list所安装的包,到此步只是完成安装工作

pip list

1.1.3 节点申请、环境变量配置(测试能否调用到dcu)

查看所在队列

whichpartition

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

salloc  -p kshdtest -1 -8 --gres=dcu:1

登录计算节点

# ssh 节点
ssh b02r1n02

切换rocm编译器版本(加载dtk23.04),跟后续使用GPU的关系很大

module switch compiler/rocm/dtk-23.04

在本地创建一个pytorch_env.sh的文件,添加环境变量

vi  ~/pytorch_env.sh

export LD_LIBRARY_PATH=/public/software/apps/DeepLearning/PyTorch/lib:/public/software/apps/DeepLearning/PyTorch/lmdb-0.9.24-build/lib:/public/software/apps/DeepLearning/PyTorch/opencv-2.4.13.6-build/lib:/public/software/apps/DeepLearning/PyTorch/openblas-0.3.7-build/lib:$LD_LIBRARY_PATH

source ~/pytorch_env.sh

以后每次登录新的节点时,一定要执行一次source ~/pytorch_env.sh命令,这关系到服务器能不能找到PyTorch

1.1.4 测试pytorch是否可用

依次输入

python
import torch
torch.cuda.is_available()
torch.__version__

此时,pytorch正常安装,且显卡可用

其他未使用到gpu的依赖包通过pip install xxx安装即可

  1. 算子运行

2.1 算子包、模型、数据上传

可通过E-File将算子、模型、数据等上传。通常文件大小大于2G可通过快传操作(需下载快传客户端)上传文件夹,经测试,快传速度大概为10Mbps(大概为1.25mb/s)。注意的是,曙光服务器无法访问内网,其他包可以下载了上传进行安装。

文件快传

2.1.2 算子运行

2.1.2.1 方式一 提交交互式作业

终端进入对应目录,激活相关坏境,节点申请完毕后 类似后台执行,示例如下:

  • 首先查看是否有空闲节点

sinfo

此时,看到有idle表示节点处于空闲状态,可申请资源使用

  • 申请资源,方法可参考环境搭建中一系列流程

申请节点--source ~/pytorch_env.sh--激活环境

  • 查看DCU状态

hy-smi

  • 进入项目进行python xxx.py操作

该方式运行的前提是节点有所空闲,且终端不能关闭,一旦关闭则运行退出。

2.1.2.2 方式二 提交批处理作业(推荐)

用户使用sbatch命令提交作业脚本,其基本格式为sbatch jobfile。jobfile为作业脚本文件。在批处理作业脚本中,脚本第一行以"#!"字符开头,并指定脚本文件的解释程序,如sh,bash。接下来写作业使用到的调度系统参数,以#开头,最后写作业运行的程序命令。

示例脚本如下:

#!/bin/bash
#SBATCH -o bloom.out         # 指定作业标准输出文件的名称
#SBATCH --partition=kshdtest # 表示将作业提交到kshdtest队列#SBATCH -J bloom_job         # 作业名称,可在作业管理中看到
#SBATCH -n 16                # 作业申请的总cpu核心数
#SBATCH -N 1                 # 作业申请的节点数
#SBATCH --gres=dcu:4         # 表示本作业使用的加速卡数量
#SBATCH --exclusive          # 指定作业独占计算节点   

module switch compiler/rocm/dtk-23.04  # 切换rocm编译器版本
source ~/pytorch_env.sh                # 激活~/pytorch_env.sh  
source activate env_py39               # 激活对应环境
cd ~/test/infer                        # cd到指定目录
python httptest.py                     # 执行脚本

更多常用选项可以参考如下链接:

提交批处理作业-sbatch

定义好运行命令后,可执行

sbatch ~/bloom.sh

等待作业运行即可,若此时无空闲节点,则该作业处理排队中

排队处理

运行完成

可在网页作业管理中找到该作业运行的日志,详细信息等

  1. 性能测试报告

3.1 快捷指令

  • Slurm命令

Slurm命令

功能

sinfo

查看集群分区状态

squeue

查看作业队列

srun, salloc

交互式运行作业

sbatch

提交作业

scancel

取消作业

scontrol

查看和修改作业参数

sacct

查看已完成作业

  • sinfo

sinfo               #查看所有分区状态
sinfo -a            #查看所有分区状态
sinfo -N            #查看节点状态
sinfo -n node-name  #查看指定节点状态
sinfo --help        #查看sinfo的说明

  • 节点状态

alloc

idle

mix

down

drain

节点在用

节点可用

部分占用

节点下线

节点故障

  • Squeue

squeue              #查看运行中的作业列表
squeue -l           #查看列表细节信息
squeue -j job-id    #查看运行中作业信息
squeue -u username  #查看user所有运行中的作业

  • 作业状态

R

PD

CG

CD

正在运行

正在排队

即将完成

已完成

  • 查看显存使用情况

rocm-smi

3.2 推理性能测试报告

测试脚本选用了belle-bloom-560m模型、100条测试数据进行推理,显存占用和推理时间如下

中科曙光配置

服务器

模型

显存占用

服务器

内存占用

平均推理时间

总耗时

DCU

belle-bloom-560m

16G42%-88%

DCU

 2.5G

11.77s

1177.19s

结果

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值