Skip to main content

GPU调用

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

概要

对python文件支持GPU Debug、GPU Run、Run Task;对shell文件支持Run Shell、Run Task。 以上任务运行均与workshop状态无关,您可在任务运行时停止workshop。

1️⃣ 除了Run Task为训练态,其他功能均为开发态,即会有Log输出,但是不会保存。

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

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

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

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

配置页参数介绍

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

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

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

session常用功能介绍

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

gputask

操作功能描述使用场景
Terminal打开运行终端,实时查看进程状态和GPU使用率使用nvidia-smi或nvi-top实时监控GPU状态
View Log查看任务实时/历史运行日志检查执行结果和错误
Copy Path复制log目录路径(Run Task功能专属)在终端快速访问日志目录
Delete手动终止进程并释放资源停止异常任务

GPU调用功能介绍

GPU Debug

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

debug1

GPU Run

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

Run Shell

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

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

Run Task

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

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

task1

运行Task时默认不会有Log输出。如需查看日志,需在session中等待Task状态切换为Running后,右击“View log”查看;或右击“copy path”,复制日志文件目录到终端中,通过cd打开查看。

同时,Run Task支持在本地VSCode中查看或下载日志。

GPUtask GPUtask

  • 操作介绍
操作功能描述
View Log查看Task的日志信息
Log Download下载Task的日志信息到本地
Stop停止当前正在运行的Task
Monitor资源监视器,可查看CPU、内存、GPU使用情况
Delete删除Task的日志信息

本地VSCode中,Delete功能会停止Task并删除日志信息。

任务运行状态监控

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

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

英伟达不支持监控40G的mig卡的占用情况。如调用GPU时选择40G卡,执行nvidia或nvi-top则不会显示内存占用。

任务终止

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

  1. 提交调用GPU(所有类型)成功后,对Running状态下的进程,右击 DEVELOP SESSION 中的对应session: gputask
  2. 选择Delete,手动终止进程并释放资源。
    需注意,日志信息将随Delete一并删除。

    本地VSCode中,右击 Task 中的某一进程,Delete功能会终止该进程,并删除日志信息。 GPUtask

命令行执行GPU调用

重要 ❗:

1️⃣ 使用命令行连接workshop前,需要至少打开一次对应的workshop。

2️⃣ 使用期间需要保持本地VSCode处于打开状态,不能关闭。

3️⃣ 暂时无法使用命令行查看日志。

  1. Open需要通过命令行连接的workshop,然后在本地VSCode终端中使用ssh连接,注意远程服务器地址是 [即将连接的workshop名称]+.bj1:

    tcl1

  2. 在终端中输入aladdin -h,查看可用命令及其相关用法:

    tcl2

  3. 同样地,也可以用相同方法查看以上各命令的使用方法和相关参数:

    注:若仅使用CPU运行任务,需要对 --cpu int 和 --mem int 两个参数进行赋值修改。若使用GPU运行任务,则这两个参数是固定值,无法修改。

    tcl3

  4. 以快速开始中的Demo为例,使用80G GPU卡的运行命令为:

    aladdin run -f gputest.py --gpu-type nvidia.com/gpu-h100-80gb-hbm3 --gpu-count 1 --image registry.hd-01.alayanew.com:8443/aladdin/torch:2.6.0-cu124

    输出示例如下,其中可以看到启动GPU任务时的参数信息,并且自动修正了CPU和内存的大小:

    2025/06/20 09:57:12 [WARNING] Fix Cpu to 13, Mem to 200, because gpu-type is nvidia.com/gpu-h100-80gb-hbm3, gpu-count is 1
    2025/06/20 09:57:12
    File : gputest.py
    Image : registry.hd-01.alayanew.com:8443/aladdin/torch:2.6.0-cu124
    Resource : Cpu: 13(H), Mem: 200(GB), Gpu: nvidia.com/gpu-h100-80gb-hbm3(1)
    PythonEnv : /usr/bin/python
    DeleteSession : false
    SaveAsConfig :
    Env :
    Args :
    WorkDir : /root
    Ports : []

    2025/06/20 09:45:24 start success. name: run-6056d7a71bd549a0b2, id: d828bfc2-1b57-4d28-b64f-f0bbb0be0df6
  5. 日志查看命令正在开发中,目前仅可通过session的View Log功能查看:

    tcl4

端口转发

重要 ❗:

1️⃣ 如果远端服务使用结束,一定要记得手动delete 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文件右击,选择Run Shell运行,选择已保存的镜像,并通过任一方法添加端口:
  • 方法1:通过Run Shell配置页1添加端口 展开“Advanced”后,点击“+Add External Access”2新建端口,输入端口号3(Jupyter Sever启动端口号默认为“8888”),提交运行

    runshell

  • 方法二:Run Shell启动后,右击Running的session,选择“Add External Access”,在弹出窗口中输入端口号

    addport

注意:.sh文件只有处于Running中才能新建端口,success或failed状态下,都不可新建端口。

访问端口

  1. Run Shell输出中打印了sever url后,点击session下的端口名称右侧的箭头,此时浏览器中弹出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. 在代码区或对文件右击,选择Run Shell运行,填写配置时需注意:
  • 若打开文件目录为/root,则需在高级配置的“Work Dir”中填写文件路径,即“ComfyUI”

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

    workdir

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

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

    comfyUI