训练和推理都需要 GPU 服务器,但是本地环境没有,借助 Dev Containers 可以在容器中进行开发和调试。Dev Containers 的使用步骤为:
- 和 GPU 服务器建立 SSH 连接
- 将代码克隆至 GPU 服务器的某个目录上
- 使用 VS Code 或 Pycharm 等使用 Dev Container 进行开发
VS Code
添加 SSH

连接到服务器

连接过程中可能要输入服务器密码
使用 Dev Container
切换到项目路径下,这里演示路径为 /data/ultraalgorithm

切换到项目路径后,VS Code 会自动识别(右下角),或者可以输入命令> dev containers reopen in containers
进入到 Dev Container
这样即可在容器中进行开发,且变更后的代码会同步到服务器 /data/ultraalgorithm 项目路径下
Pycharm
添加 SSH


新建 Dev Container

使用 Dev Container
Pycharm 下,使用 Dev Container 需要 Java 17+ 环境,可以使用以下命令安装
1
| sudo apt install -y openjdk-17-jdk
|

Dev Container 配置
在项目根目录 .devcontainer 下,有一个名为 devcontainer.json 的配置文件(没有也可以手动新建),内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| { "name": "UltraAlgorithm-DevContainer", "image": "ultraalgorithm-detect:v1.0.0", "runArgs": ["--gpus=all"], "mounts": [ { "source": "/data/ultraalgorithm", "target": "/app/ultraalgorithm", "type": "bind" }, { "source": "/opt/task-def", "target": "/opt/", "type": "bind" }, { "source": "/opt/datasets", "target": "/datasets", "type": "bind" }, { "source": "/opt/datasets-nfs", "target": "/datasets-nfs", "type": "bind" } ], "forwardPorts": [9000], "customizations": { "vscode": { "extensions": [ "ms-python.python", "davidanson.vscode-markdownlint", "python.test-unittest", "python.test-pytest" ], "settings": { "editor.fontSize": 16, "python.interpreterPath": "/usr/bin/python3.10", "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": false } } } }
|
VS Code 的 Dev Container 体验比 Pycharm 更好,速度更快!
VS Code 和 Pycharm 都需要安装 Dev Container 插件
如果没有 GPU 的需求,那么不必 SSH 到服务器上,本地启动 Dev Container 也可以,这样相当于容器在本地启动。