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计费。
配置页参数介绍
在代码区右击或点击文件头部的按钮,点击相应功能后弹出如下配置页面:

| 参数名称 | 说明 | 备注 |
|---|---|---|
| 配置 | 查看已保存的配置信息 | 可快速载入历史配置 |
| 镜像 | GPU运行的基础镜像 | 强烈推荐与workshop的镜像保持一致 |
| 资源 | GPU调用时分配到的资源 | - 可选择显卡数量、型号 - 卡型号后内容为系统自动适配的CPU、内存 ※ 40G卡型暂不支持使用多卡 |
| Python Interpreter | GPU调用时将使用的python解释器 | 使用conda运行时需要选择对应conda目录下的python |
| 是否保存当前任务的参数为配置 | 保存当前GPU调用配置 | 勾选后可供下次直接调用 |
| ENV | 环境变量配置 | 支持键值对形式注入 |
| Args | 命令行参数 | 按需传入执行参数 |
| Python Module | Python模块入口 | 支持Python模块 |
| Work Dir | 工作目录路径 | 不同项目可配置不同路径 |
"6C 80G"是指为每卡分配了6个CPU与80G内存,以此类推。
会话(session)常用功能介绍
提交调用GPU(所有类型)成功后,对运行中状态下的进程,可以通过右击对应会话,进行下列操作:

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

GPU远程运行
GPU远程运行提供与VSCode直接Run代码类似的开发态执行体验,运行Log默认会在终端中展示。运行结束后将会自动释放资源、停止计费。
运行Shell
与GPU远程运行类似,运行Shell可用于运行sh脚本,也可用于编译环境,但如上文所说编译后的环境只会保存在临时存储中,关闭workshop后会清除。
注:若使用了conda环境,则在sh文件中需要添加conda activate [你的环境名]命令,或在.bashrc文件中直接激活conda环境。
运行任务
在运行任务功能中不会自动激活bashrc,所以在使用conda环境时,需要在.sh文件中手动激活。
运行任务作为唯一训练态功能,可用于运行多Replicas的分布式任务(torchrun)。此时GPU并行度=GPU数*Replicas数。

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

会话运行状态监控
对正在运行的会话,可通过如下操作监控运行状态:
- 提交调用GPU(所有类型)成功后,对运行中状态下的会话:

- 选择终端,打开会话的运行终端,使用nvidia-smi或nvi-top,实时监控GPU的占用情况:

英伟达不支持监控40G的mig卡的占用情况。如调用GPU时选择40G卡,执行nvidia-smi不会显示内存占用,使用nvi-top仍可正常查看。
会话终止
对正在运行的会话,可通过如下操作终止:
- 提交调用GPU(所有类型)成功后,对运行中状态下的会话,右击会话:

- 选择停止会话即可手动终止进程并释放资源。需注意,选择移除会话后日志信息将一并删除。
端口转发
❗ 重要 ❗:
1️⃣ 如果远端服务使用结束,一定要记得手动停止 shell会话,否则会持续占用GPU资源,产生不必要的费用。
2️⃣ 所有server必须绑定0.0.0.0,不能使用127.0.0.1或localhost。
3️⃣ 暂不支持TCP协议,仅支持HTTP协议。
使用端口转发启动Jupyter
-
使用torch镜像启动workshop,进入远端页面后,选择/root目录作为工作路径。

-
打开远端页面终端,输入以下命令安装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
-
在本地窗口保存镜像,这里保存为了jupyter
- 在/root目录下新建.sh文件,输入以下命令:
jupyter notebook --allow-root --ip=0.0.0.0 --port=8888 --no-browser
- 在代码区或对.sh文件右击,选择运行Shell运行,选择已保存的镜像,并通过任一方法添加端口:
-
方法1:通过运行Shell配置页1添加端口 展开“高级设置”后,点击“+Add External Access”2新建端口,输入端口号3(Jupyter Sever启动端口号默认为“8888”),提交运行

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

注意:会话只有处于运行中才能新建端口,成功或失败状态下,都不可新建端口。
访问端口
-
运行Shell后在终端内输出了sever url后,点击会话下的端口名称右侧的图标,此时浏览器中弹出Jupyter网页:

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

-
启动Jupyter服务器后,可借助Jupyter实现如下功能:
-
功能1:在浏览器中使用Jupyter 通过Jupyter网页,可以看到/root目录下的所有文件,并在Jupyter中编译代码

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

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

输入Jupyter浏览器地址,回车

输入token,回车

继续回车

选择Python 3

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

(3)验证是否可用:在Jupyter网页中新建任意文件,然后在VSCode输入以下代码,运行测试。
import torch
torch.cuda.is_available()输出如下:
True
下载使用ComfyUI
- 在远端页面终端中执行以下命令,clone代码:
git clone https://gh-proxy.com/github.com/comfyanonymous/ComfyUI.git

- 下载完成后,在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
- 在代码区或对文件右击,选择运行Shell运行,填写配置时需注意:
-
若打开文件目录为/root,则需在高级配置的“Work Dir”中填写文件路径,即“ComfyUI”
-
添加外部访问端口,此处须与port参数保持一致,即填写“8188”

-
点击Submit后提交任务,等待安装并运行
-
安装完成后,点击session下的端口名称右侧的箭头,即可打开网页,通过浏览器访问服务。
