Skip to main content

GPU调用

本节主要介绍了AladdinEdu平台的GPU调用相关功能,你可能想看:

概要

对python文件支持“GPU远程调试”、“GPU远程运行”、“运行任务”;对shell文件支持“运行Shell”、“运行任务”。 以上任务运行均与workshop状态无关,您可在任务运行时停止workshop。

1️⃣ 在Aladdin中,python是与镜像分离的:

  • 若您选择了镜像、解释器选择了镜像中的python,则会使用对应镜像,如果您曾在workshop中通过pip安装了包,则需要通过workshop的“保存镜像”功能来保存镜像

  • 若您在 /root目录下安装了conda,镜像可自由选择,解释器选择对应conda环境中的python即可。

2️⃣ 在AladdinEdu中,会话(session)即为一个GPU实例,平台仅在会话运行时对GPU计费。

配置页参数介绍

在代码区右击或点击文件头部的按钮,点击相应功能后弹出如下配置页面: gpu1

参数名称说明备注
配置查看已保存的配置信息可快速载入历史配置
镜像GPU运行的基础镜像强烈推荐与workshop的镜像保持一致
资源GPU调用时分配到的资源- 可选择显卡数量、型号
- 卡型号后内容为系统自动适配的CPU、内存
※ 40G卡型暂不支持使用多卡
Python InterpreterGPU调用时将使用的python解释器使用conda运行时需要选择对应conda目录下的python
是否保存当前任务的参数为配置保存当前GPU调用配置勾选后可供下次直接调用
ENV环境变量配置支持键值对形式注入
Args命令行参数按需传入执行参数
Python ModulePython模块入口支持Python模块
Work Dir工作目录路径不同项目可配置不同路径

"6C 80G"是指为每卡分配了6个CPU与80G内存,以此类推。

会话(session)常用功能介绍

提交调用GPU(所有类型)成功后,对运行中状态下的进程,可以通过右击对应会话,进行下列操作:

gputask

操作功能描述使用场景
打开终端打开运行终端,实时查看进程状态和GPU使用率使用nvidia-smi或nvi-top实时监控GPU状态
查看日志在底部终端中查看任务实时/历史运行日志检查执行结果和错误
打开日志打开对应日志文件确定日志文件位置,下载日志文件
启动端口转发开通端口代码中需要对外暴露端口,或启动web页面时,具体可参考端口转发
停止会话手动终止进程并释放资源停止异常任务
移除会话手动终止进程,删除该会话的记录与日志清除会话与相应日志

GPU调用功能介绍

GPU远程调试

提供远程调试功能,支持断点调试,并在调试控制台中查看输出信息。

debug1

GPU远程运行

GPU远程运行提供与VSCode直接Run代码类似的开发态执行体验,运行Log默认会在终端中展示。运行结束后将会自动释放资源、停止计费。

运行Shell

与GPU远程运行类似,运行Shell可用于运行sh脚本,也可用于编译环境,但如上文所说编译后的环境只会保存在临时存储中,关闭workshop后会清除。

注:若使用了conda环境,则在sh文件中需要添加conda activate [你的环境名]命令,或在.bashrc文件中直接激活conda环境。

运行任务

在运行任务功能中不会自动激活bashrc,所以在使用conda环境时,需要在.sh文件中手动激活。

运行任务作为唯一训练态功能,可用于运行多Replicas的分布式任务(torchrun)。此时GPU并行度=GPU数*Replicas数。

task1

本地VSCode中也可查看任务,删除任务时会终止任务并删除日志信息

GPUtask

会话运行状态监控

对正在运行的会话,可通过如下操作监控运行状态:

  1. 提交调用GPU(所有类型)成功后,对运行中状态下的会话: gputask
  2. 选择终端,打开会话的运行终端,使用nvidia-smi或nvi-top,实时监控GPU的占用情况: nvidia

英伟达不支持监控40G的mig卡的占用情况。如调用GPU时选择40G卡,执行nvidia-smi不会显示内存占用,使用nvi-top仍可正常查看。

会话终止

对正在运行的会话,可通过如下操作终止:

  1. 提交调用GPU(所有类型)成功后,对运行中状态下的会话,右击会话: gputask
  2. 选择停止会话即可手动终止进程并释放资源。需注意,选择移除会话后日志信息将一并删除

端口转发

重要 ❗:

1️⃣ 如果远端服务使用结束,一定要记得手动停止 shell会话,否则会持续占用GPU资源,产生不必要的费用。

2️⃣ 所有server必须绑定0.0.0.0,不能使用127.0.0.1或localhost。

3️⃣ 暂不支持TCP协议,仅支持HTTP协议。

使用端口转发启动Jupyter

  1. 使用torch镜像启动workshop,进入远端页面后,选择/root目录作为工作路径。

    OpenFolder

  2. 打开远端页面终端,输入以下命令安装Jupyter,并保存为新镜像:

# 用 Anaconda 安装
conda install jupyter notebook
# 用 pip 安装
pip install jupyter notebook
  • 通过以下代码验证Jupyter是否安装成功:
jupyter --version
  • 输出示例如下:
Selected Jupyter core packages...
IPython : 8.36.0
ipykernel : 6.29.5
ipywidgets : 8.1.7
jupyter_client : 8.6.3
jupyter_core : 5.7.2
jupyter_server : 2.16.0
jupyterlab : 4.4.2
nbclient : 0.10.2
nbconvert : 7.16.6
nbformat : 5.10.4
notebook : 7.4.2
qtconsole : not installed
traitlets : 5.14.3
  1. 在/root目录下新建.sh文件,输入以下命令:
jupyter notebook --allow-root --ip=0.0.0.0 --port=8888 --no-browser
  1. 在代码区或对.sh文件右击,选择运行Shell运行,选择已保存的镜像,并通过任一方法添加端口:
  • 方法1:通过运行Shell配置页1添加端口 展开“高级设置”后,点击“+Add External Access”2新建端口,输入端口号3(Jupyter Sever启动端口号默认为“8888”),提交运行

    runshell

  • 方法二:运行Shell启动后,右击运行中的会话,选择“启动端口转发”,在弹出窗口中输入端口号

    addport

注意:会话只有处于运行中才能新建端口,成功或失败状态下,都不可新建端口。

访问端口

  1. 运行Shell后在终端内输出了sever url后,点击会话下的端口名称右侧的图标,此时浏览器中弹出Jupyter网页:

    portmapping JupyterBrowser

  2. 在输出中找到token,在Juypter网页中填写,登录Jupyter服务器:

    token

  3. 启动Jupyter服务器后,可借助Jupyter实现如下功能:

  • 功能1:在浏览器中使用Jupyter 通过Jupyter网页,可以看到/root目录下的所有文件,并在Jupyter中编译代码

    jupyter1

  • 功能2:在VSCode中使用Jupyter(需提前安装Jupyter和Python插件) (1)在workshop中新建.ipynb文件(Jupyter文件)

    jupyterNotebook

    (2)选择Select Kernel -> Existing Jupyter Server

    selectkernel existing

    输入Jupyter浏览器地址,回车

    jupyterurl jupyterurl1

    输入token,回车

    confirm

    继续回车

    confirm1

    选择Python 3

    python3

    文件右上角变成了Python 3(ipykernel),说明设置成功,此时就可在VSCode中利用Jupyter的功能调试代码了。

    setting

    (3)验证是否可用:在Jupyter网页中新建任意文件,然后在VSCode输入以下代码,运行测试。

    import torch
    torch.cuda.is_available()

    输出如下:

    True

    torch_output

下载使用ComfyUI

  1. 在远端页面终端中执行以下命令,clone代码:
git clone https://gh-proxy.com/github.com/comfyanonymous/ComfyUI.git

clonecomfyUI

  1. 下载完成后,在ComfyUI文件夹下新建run.sh文件,将以下代码复制到run.sh文件中:
apt update && apt install -y cmake g++ make
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu128
pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
python main.py --listen 0.0.0.0 --port 8188
  1. 在代码区或对文件右击,选择运行Shell运行,填写配置时需注意:
  • 若打开文件目录为/root,则需在高级配置的“Work Dir”中填写文件路径,即“ComfyUI”

  • 添加外部访问端口,此处须与port参数保持一致,即填写“8188”

    workdir

  1. 点击Submit后提交任务,等待安装并运行

  2. 安装完成后,点击session下的端口名称右侧的箭头,即可打开网页,通过浏览器访问服务。

    comfyUI