以下是实现这一目标的最佳实践步骤:
核心逻辑
- Windows: 安装 VS Code 和远程插件。
- Linux 宿主机: 运行 SSH 服务,并将你的代码放在 1.8T 的
/data分区。 - Docker 容器: 运行 ROCm 镜像,通过
-v参数把宿主机的代码目录“挂载”进去。 - 连接方式: VS Code (SSH) -> Linux 宿主机 -> VS Code (Attach) -> Docker 容器。
第一步:准备 Linux 宿主机(SSH 与 权限)
安装并启动 SSH 服务:
sudo apt update sudo apt install openssh-server -y sudo systemctl enable --now ssh关键一步:免 sudo 运行 Docker
VS Code 的插件需要有权限直接操作 Docker,而不需要每次输密码。sudo usermod -aG docker $USER newgrp docker # 使设置立即生效测试:输入
docker ps,如果不报错,说明成功了。
第二步:Windows VS Code 插件安装
在 Windows 的 VS Code 中安装以下两个核心插件:
- Remote - SSH (由 Microsoft 出品)
- Dev Containers (或者直接安装 Remote Development 插件包,包含了以上所有)
第三步:连接并映射项目路径
在 Windows VS Code 中连接 Linux:
- 按
F1或Ctrl+Shift+P,输入SSH: Connect to Host...。 - 输入
root@192.168.1.1并输入密码。 - 连接成功后,左下角会显示
SSH: 192.168.1.1。
- 按
创建/打开项目文件夹:
- 在 VS Code 中打开
/data/my_project(建议放在大硬盘分区)。
- 在 VS Code 中打开
启动 Docker 容器并挂载路径:
在 VS Code 的集成终端(Terminal)里运行启动命令(注意-v参数):docker run -it \ --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 8G \ -v /data/my_project:/workspace \ --name my_rocm_env \ rocm/pytorch:rocm7.2_ubuntu24.04_py3.12_pytorch_release_2.9.1这样,你在 Windows 上修改
/data/my_project里的文件,容器里的/workspace会实时同步。
第四步:VS Code 进入 Docker 内部(终极体验)
虽然你现在可以在宿主机终端运行代码,但 VS Code 的 IntelliSense(代码补全) 此时还识别不到容器里的 PyTorch。我们需要让 VS Code “钻”进容器里。
- 在连接了 SSH 的 VS Code 窗口左侧,点击 Docker 鲸鱼图标。
- 在 Containers 列表里找到正在运行的
my_rocm_env。 - 右键点击容器名称 -> 选择 Attach Visual Studio Code。
- VS Code 会新开一个窗口,此时左下角显示
Container: my_rocm_env。
现在,你的状态是:
- 编辑器:在 Windows 上操作。
- 代码补全/解释器:直接使用容器里 PyTorch 7.2 的环境。
- 运行:直接调用宿主机的 AMD GPU。
- 文件存放在:宿主机的 1.8T 硬盘上(即使容器删了,代码还在)。
进阶:配置 devcontainer.json(可选,推荐)
如果你觉得每次敲 docker run 命令太长太麻烦,你可以利用 VS Code 的 Dev Containers 功能:
- 在项目根目录创建一个
.devcontainer文件夹。 - 新建一个
devcontainer.json:
{
"name": "ROCm Development",
"image": "rocm/pytorch:rocm7.2_ubuntu24.04_py3.12_pytorch_release_2.9.1",
"runArgs": [
"--device=/dev/kfd",
"--device=/dev/dri",
"--group-add=video",
"--ipc=host",
"--shm-size=8G"
],
"workspaceFolder": "/workspace",
"mounts": [
"source=${localWorkspaceFolder},target=/workspace,type=bind"
],
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-toolsai.jupyter"
]
}
}
}
- 以后你只需要点击 VS Code 左下角的蓝色图标,选择 Reopen in Container,它会自动帮你把显卡挂载、路径映射全做好了。