传统开发模式快速开始
本节将会介绍如何通过传统开发模式进行远程开发,完成GPU调用。
此方法启动的workshop启动完成即对GPU计费,必须手动停止workshop后才会停止计费。
停止workshop后您在workshop中运行的训练任务也会同时终止,同理,只要不停止workshop,您的训练任务就不会停止,无需守护进程。
使用GPU新建workshop
-
在AladdinEdu控制台内创建工作台,选择集群分区、镜像:

-
接着,资源类型选择GPU,选择您需要调用的GPU数量与卡型,完成workshop的创建:

再次提醒,使用了GPU启动的workshop将会在启动完成即对GPU计费,必须手动停止workshop后才会停止计费。
使用Terminal软件远程开发
本案例将使用Xterminal演示Demo的运行,MAC用户也可以使用自带终端进行连接。
-
创建成功后,点击“连接命令”后的复制按钮,复制已经创建好的SSH连接指令:

-
在新终端中粘贴ssh连接命令,回车:

-
接着复制登录密码,粘贴在终端内,密码粘贴后不会显示,直接回车即可:

若输入密码后返回Permission denied, please try again.,可能是因为本地缺失公钥文件导致的,可按以下步骤解决:

-
连接成功如下图所示,红框内为您连接workshop的id:

-
使用以下测试代码新建测试文件:
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()
-
使用python命令运行Demo,查看输出:

-
使用完成后,一定要关闭workshop,才会停止计费:

使用IDE进行远程开发
本案例将使用VSCode演示Demo的运行,也可以使用Pycharm等其他IDE进行连接。
-
打开您本地的VSCode开发插件菜单,在扩展程序中搜索Remote-SSH并安装: (如果您本地VSCode开发工具已安装Remote-SSH,可跳过此步骤。)

-
按照下图操作,添加ssh主机:


-
获取并复制您工作台的SSH登录信息,图示以
ssh 83bmlomdyit6ke6n@60.171.65.44 -p 16001为例。回车键继续操作:
-
回车后会弹出以下自定义SSH config 文件的弹窗,不需要选择直接回车即可,然后点击连接:


-
输入密码,等待连接完成:

-
连接完成后,点击“打开文件夹”,打开
/root目录:
-
可直接拖动小文件至资源管理器内,也可通过SFTP等工具上传,请参考文件传输:
