跳转至

AutoDL 算力云体验

作为一名做网络系统的学生, 一般来说对GPU的需求并不强烈

之前对 GCP, AWS 之类的云服务很感兴趣, 不过价格太贵了, 用来折腾实在划不来

听很多人/网上博主都在推荐AutoDL的算力云服务, 今天想来尝试一下

所有内容来自于笔者跟随AutoDL Doc进行尝试的记录

特撰此文以记之!

快速开始

氪金充值

alt text

象征性地充了6块钱。准备马上租个1.08/h的简易GPU服务器

技术选型

笔者的选择如下:

虽然笔者的地理位置应该选择"西北B区", 但其CPU是AMD的。笔者对 Xeon CPU 有强烈需求与偏好, 因此选择的是"内蒙B区"

alt text

  • 按量计费
  • 内蒙B区
  • GPU2080Tix2 (主要是看价格便宜, 真就1.08/h)
  • 数据盘默认50GB
  • 基础镜像: 随便选, 我选的是系统自己配好conda

配置完毕

alt text

注意: SSH登录 处的 "登录指令" 和 "密码"

登录检测

(1) SSH连接

alt text

(2) 使用btop检查系统情况

Bash
1
2
3
4
5
6
7
8
# 安装btop
sudo apt install btop
# 安装UTF-8字体
sudo apt-get install -y locales
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
# 重新SSH进入server
btop

alt text

(3) 使用nvidia-smi检查显卡情况

Bash
1
nvidia-smi

alt text

基础操作

如何选择合适的GPU

传送门

数据操作

  • 上传数据
  • 下载数据
  • 公开数据: AutoDL提供了部分常用开源数据,供您在实例中进行使用,免去下载上传的烦恼
    • /root/autodl-tmp: 私有数据盘
    • /root/autodl-pub: 公开数据
Bash
1
2
3
# 将 "本地文件" 上传至 "远程服务器"
# scp -rP [Port] [pwd: Local File] [pwd: Remote]
scp -rP 35787 ./test_ssh.py root@connect.nmb1.seetacloud.com:/root/autodl-tmp
Bash
1
2
3
# 将 "远程服务器文件" 下载至 "本地位置"
# scp -rP [Port] [pwd: Remote File] [pwd: Local]
scp -rP 35787 root@connect.nmb1.seetacloud.com:/root/autodl-tmp/test_local.cpp .

alt text

远程连接

Bash
1
2
# "容器实例" 中的 SSH登陆指令
ssh -p 35787 root@connect.nmb1.seetacloud.com

VSCode的更加简单, 直接在Remote-SSH插件加一下就行

alt text

高级操作

SSH代理

代理实例中的端口到本地

上面操作的直观体现是将 jupyter notebook 映射回本地笔记本, 以在本机浏览器上可以看/修改内容 (因为服务器本身并没有浏览器显示)

Jupyter Notebook

(1) AutoDL 自带的 JupyterLab

JupyterLab基础操作-AutoDL

挺好, 省的自己把端口映射回来了

可以直接在网页里做:

alt text

(2) 自己做, 配环境 + SSH 端口映射

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# (1) 配置conda
# omitted here

# (2) 安装基础环境
(base) root@autodl-container-dc124d9a08-23609623:~# conda activate test
(test) root@autodl-container-dc124d9a08-23609623:~# pip install numpy matplotlib
(test) root@autodl-container-dc124d9a08-23609623:~# pip install -U "jupyter-server<2.0.0"

# (3) 在服务器上启动 JupyterNotebook
(test) root@autodl-container-dc124d9a08-23609623:~# jupyter notebook --allow-root
  1. 在你本地电脑上,打开一个新的终端窗口
  2. 运行 SSH 命令
    Bash
    1
    ssh -p 35787 -L 8889:localhost:8889 root@connect.nmb1.seetacloud.com
    
  3. 系统会提示你输入 root@connect.nmb1.seetacloud.com's password:, 输入你的服务器密码并回车
  4. 🌟重要🌟: 保持这个终端窗口不要关闭, 它维持着本地和服务器之间的连接通道
  5. 在你的本地电脑上,打开网页浏览器, 复制并粘贴下面的地址:
    Bash
    1
    http://localhost:8889/
    
  6. 输入 Token 登录:
    • 浏览器会显示 Jupyter 的登录页面
    • 请复制来自你服务器输出的 token, 粘贴到页面的输入框里,然后点击登录 alt text

最后场景形如:

alt text

alt text

关键指令:

Bash
1
2
3
4
5
# 在本地笔记本, 使用ssh进行端口映射, 随后可在浏览器上查看
# ssh -p []
# -L [LocalPort-for-Browser]:localhost:[RemotePort-by-Jupyter]
# username@IP
ssh -p 35787 -L 8889:localhost:8889 root@connect.nmb1.seetacloud.com

释放实例

笔者每次使用云平台, 最怕的就是忘记释放资源, 扣款如流水, 那叫一个哗哗而过

好在AutoDL的 "释放资源" 比较简单: 容器实例 > 操作 > 释放实例

alt text