快速开始
AladdinEdu中我的实验室使用主要分为三步,workshop创建 > 环境配置 > GPU调用,以下内容将围绕此流程展开。
插件初始化
本节预计完成时间:2min
插件安装
以VSCode版本为例
-
在扩展中搜索Aladdin,点击安装:

-
安装完成后可在活动栏看到Aladdin插件图标,安装成功:

也可在登录AladdinEdu后,在「我的实验室」页面,点击“下载Aladdin插件”进行下载,将安装包拖拽至扩展区即可安装成功,此方法同样适用于cursor。
账号登录
以VSCode版本为例
- 点击Aladdin插件图标,选择Login Personal Account,弹窗后选择“打开”外部网站(AladdinEdu平台):
mac用户请注意,不要使用Safari浏览器打开链接,请使用其他浏览器

-
在AladdinEdu平台中使用手机号或账号密码登录,首次使用者请先注册:

-
登录成功后点击“点击返回VSCode”,等待返回VSCode(如未自动跳转,请手动返回VSCode)。此时VSCode中出现弹窗,选择“打开”此URL,提示登录成功:

workshop创建
本节预计完成时间:3.5min
workshop为Aladdin插件的远程工作台,可在本地VSCode中连接远程服务器进行开发与调试。
Stop workshop时,workshop中 /root下的数据将全部保存,但不包括额外安装的python包,因此重新Open后无需再次上传数据,但需重新安装python包,强烈建议安装python包后保存自定义镜像。
- 创建方式:
- 在IDE中创建:打开本地IDE(如VSCode),通过 Aladdin 插件直接创建。
- 在平台中创建:登录AladdinEdu平台后,在「我的实验室」页面操作。
无论选择上述哪种方式创建 Workshop,需要注意,当前仅支持在Aladdin插件内完成 GPU 调用。
在IDE中创建
-
在workshop菜单栏中点击 +,新建workshop:
-
填写workshop名称,选择基础镜像与资源(免费版会员推荐选择“CPU:2 MEM:8G”):

- workshop启动参数介绍
| 参数名称 | 说明 | 备注 |
|---|---|---|
| Environment | 当前workshop使用的容器镜像 | 通常包含预装软件和基础运行环境 |
| Resource | 当前workshop启动时分配到的CPU和内存资源 | 这些资源与GPU运行时是共享的, GPU资源详情请查看GPU调用 |
| ENV | 当前workshop运行时的环境变量 | 可用于配置应用参数、API密钥等敏感信息 |
- 镜像介绍可查看环境配置
-
点击提交后会出现插件的状态提示,配置预计在2min左右完成,提示由“Workshop is waiting for creating.”变为“Workshop is created.”:

-
此时会弹出一个新窗口(后文统称为远端页面),选择"Linux",之后远端页面中将自动安装相关插件:

-
等待远端页面中出现Aladdin-Remote(注意不要重复安装Aladdin插件)图标,workshop创建完成:

若您3天以上未调用GPU,workshop将会自动停止。但请不用担心,workshop停止不会影响其中运行的GPU任务,下次使用重新启动即可~
在平台中创建
-
在「我的实验室」页面,可以点击“创建新工作台”以新建workshop:

-
与在插件中创建类似,依次填写workshop名称、选择workshop环境,然后点击“下一步”:

-
选择资源(免费版会员推荐选择“CPU:1 MEM:2G”),点击“创建并启动”,创建成功:

-
创建成功,显示为运行中状态:

-
此时打开插件,可以看到平台中创建的workshop:
注意:在平台中完成workshop创建后,在插件中还需要右击该workshop,右击install remote方可使用。
运行Demo
本节预计完成时间:约1min 以下操作均在远端页面中进行。
使用镜像运行Demo
在AladdinEdu平台使用镜像时,操作流程详见下图:

a. 在workshop安装的python包、apt等应用,需要保存镜像后才能被GPU session使用; b.强烈推荐将所有文件存储在/root目录下,这部分文件会【原封不动】同步至session中,同样的,没有保存在/root下的文件则会在workshop关闭后删除。
- 打开/root目录文件夹,新建test.py文件,将测试代码复制到文件中,在代码区或对文件右击,选择GPU RUN运行:

import torch
import time
def test_cuda_availability():
print("\n======= CUDA 测试 =======")
# 检查 CUDA 是否可用
cuda_available = torch.cuda.is_available()
print(f"PyTorch CUDA 可用: {'✅是' if cuda_available else '❌否'}")
if cuda_available:
# 打印 CUDA 版本和设备信息
print(f"PyTorch CUDA 版本: {torch.version.cuda}")
print(f"当前 GPU 设备: {torch.cuda.get_device_name(0)}")
print(f"GPU 数量: {torch.cuda.device_count()}")
else:
print("⚠️ 请检查 CUDA 和 PyTorch 是否安装正确!")
print("========================\n")
def test_gpu_speed():
print("\n======= GPU 速度测试 =======")
# 创建一个大型张量
x = torch.randn(10000, 10000)
# CPU 计算
start_time = time.time()
x_cpu = x * x
cpu_time = time.time() - start_time
print(f"CPU 计算时间: {cpu_time:.4f} 秒")
if torch.cuda.is_available():
# 移动到 GPU 计算
x_gpu = x.to('cuda')
start_time = time.time()
x_gpu = x_gpu * x_gpu
torch.cuda.synchronize() # 确保 GPU 计算完成
gpu_time = time.time() - start_time
print(f"GPU 计算时间: {gpu_time:.4f} 秒")
print(f"GPU 比 CPU 快: {cpu_time / gpu_time:.1f} 倍")
else:
print("⚠️ GPU 不可用,跳过测试")
print("==========================\n")
def test_training():
print("\n======= 简单训练测试 =======")
# 定义一个极简神经网络
model = torch.nn.Sequential(
torch.nn.Linear(10, 100),
torch.nn.ReLU(),
torch.nn.Linear(100, 1)
)
# 如果有 GPU,将模型和数据移到 GPU
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = model.to(device)
print(f"使用设备: {device.upper()}")
# 模拟数据
X = torch.randn(1000, 10).to(device)
y = torch.randn(1000, 1).to(device)
# 训练循环
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
start_time = time.time()
for epoch in range(5):
optimizer.zero_grad()
output = model(X)
loss = torch.nn.functional.mse_loss(output, y)
loss.backward()
optimizer.step()
print(f"Epoch {epoch + 1}, Loss: {loss.item():.4f}")
total_time = time.time() - start_time
print(f"总训练时间: {total_time:.2f} 秒")
print("==========================\n")
if __name__ == "__main__":
test_cuda_availability()
test_gpu_speed()
test_training()
-
修改启动选项:环境选择为torch,资源选择为GPU,python解释器需选择镜像中的python,其余不变。提交运行:

若选择Save as configuration保存当前参数设置,之后调用GPU时将弹出Quick GPU Run窗口,列出内容为保存的Configuration。您可直接选用以快捷启用GPU Run,或通过+ New Create重新设置参数。
输出内容案例:
======= CUDA 测试 =======
PyTorch CUDA 可用: ✅是
PyTorch CUDA 版本: 12.4
当前 GPU 设备: [你选择的显卡]
GPU 数量: 1
========================
======= GPU 速度测试 =======
CPU 计算时间: 0.1339 秒
GPU 计算时间: 0.0078 秒
GPU 比 CPU 快: 17.3 倍
==========================
======= 简单训练测试 =======
使用设备: CUDA
Epoch 1, Loss: 1.0850
Epoch 2, Loss: 1.0827
Epoch 3, Loss: 1.0805
Epoch 4, Loss: 1.0784
Epoch 5, Loss: 1.0763
总训练时间: 0.17 秒
==========================
使用Conda环境运行Demo
注:强烈推荐按照本文说明,使用miniconda做环境配置。
-
workshop创建成功后,进入远端页面,选择打开/root目录:

-
新建终端,在终端中安装miniconda,并确认安装在/root目录下:


- Conda配置方法
# 下载最新版 Miniconda (Linux 64位)
curl -L -O https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 运行安装脚本
bash Miniconda3-latest-Linux-x86_64.sh
# 安装时You can undo this by running `conda init --reverse $SHELL`?
# 此项必须选择Yes,安装完成后重启终端conda命令才能生效~
# 验证安装
conda --version
# 应该显示类似:conda 25.1.1
# 添加清华 conda 源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# 显示通道URL
conda config --set show_channel_urls yes
# 设置 pip 使用清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 成功安装miniconda后,需配置python解释器——新建一个python文件,点击远端页面右下角的python版本号,切换到conda环境中的python:
或使用Ctrl+Shift+P快捷键打开命令窗口,输入"Select Interpreter",更换python解释器。
重要 ❗:如不切换,调用GPU时将无法复用配置的环境,出现找不到已安装包的报错!

-
远端页面右下角的版本号出现conda环境名,环境切换成功:

-
接着安装torch,推荐安装12.4版以适配GPU:
配置科学上网后将显著提升下载安装速度,具体步骤参考学术资源加速。
#安装cuda 12.4
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
- 使用上述代码测试cuda是否安装成功,以及是否与当前环境GPU兼容:
import torch
import time
def test_cuda_availability():
print("\n======= CUDA 测试 =======")
# 检查 CUDA 是否可用
cuda_available = torch.cuda.is_available()
print(f"PyTorch CUDA 可用: {'✅是' if cuda_available else '❌否'}")
if cuda_available:
# 打印 CUDA 版本和设备信息
print(f"PyTorch CUDA 版本: {torch.version.cuda}")
print(f"当前 GPU 设备: {torch.cuda.get_device_name(0)}")
print(f"GPU 数量: {torch.cuda.device_count()}")
else:
print("⚠️ 请检查 CUDA 和 PyTorch 是否安装正确!")
print("========================\n")
def test_gpu_speed():
print("\n======= GPU 速度测试 =======")
# 创建一个大型张量
x = torch.randn(10000, 10000)
# CPU 计算
start_time = time.time()
x_cpu = x * x
cpu_time = time.time() - start_time
print(f"CPU 计算时间: {cpu_time:.4f} 秒")
if torch.cuda.is_available():
# 移动到 GPU 计算
x_gpu = x.to('cuda')
start_time = time.time()
x_gpu = x_gpu * x_gpu
torch.cuda.synchronize() # 确保 GPU 计算完成
gpu_time = time.time() - start_time
print(f"GPU 计算时间: {gpu_time:.4f} 秒")
print(f"GPU 比 CPU 快: {cpu_time / gpu_time:.1f} 倍")
else:
print("⚠️ GPU 不可用,跳过测试")
print("==========================\n")
def test_training():
print("\n======= 简单训练测试 =======")
# 定义一个极简神经网络
model = torch.nn.Sequential(
torch.nn.Linear(10, 100),
torch.nn.ReLU(),
torch.nn.Linear(100, 1)
)
# 如果有 GPU,将模型和数据移到 GPU
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = model.to(device)
print(f"使用设备: {device.upper()}")
# 模拟数据
X = torch.randn(1000, 10).to(device)
y = torch.randn(1000, 1).to(device)
# 训练循环
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
start_time = time.time()
for epoch in range(5):
optimizer.zero_grad()
output = model(X)
loss = torch.nn.functional.mse_loss(output, y)
loss.backward()
optimizer.step()
print(f"Epoch {epoch + 1}, Loss: {loss.item():.4f}")
total_time = time.time() - start_time
print(f"总训练时间: {total_time:.2f} 秒")
print("==========================\n")
if __name__ == "__main__":
test_cuda_availability()
test_gpu_speed()
test_training()