EN | 中文

🚀 MTCode RemoteGPU

MTCode GPU Server 的用户端客户端。直接在 VS Code 或 MTCode Studio 中使用授权的远程 GPU 运行 Python 项目——上传文件、启动执行、流式查看输出并下载结果。

🛡 隐私 — 应用数据采用端到端加密,且不通过 MTCode 基础设施中转。
⚡ 极简 — 无需公网 IP、域名、VPN 或端口转发。
🚀 性能 — 点对点直连数据路径,没有中继跳转。

什么是 MTCode RemoteGPU?

MTCode RemoteGPU 是用于使用 MTCode GPU Server 的 VS Code 扩展。它让您选择已授权的 GPU 服务器、上传 Python 项目、远程运行任务,并将结果实时流式传回编辑器——无需 SSH 访问,也无需手动配置服务器。

GPU 服务器访问仅限受邀用户。如果您已收到邀请,请点击邀请邮件中的链接创建自己的用户账户,然后在 RemoteGPU 扩展中登录。

该扩展可在 VS Code 和 MTCode Studio 中使用。在 MTCode Studio 中,Python 项目配置对话框与 RemoteGPU 扩展共享相同的 launch.json 格式,因此您可以先在本地配置任务,然后在需要更多算力时,将同一任务运行到远程 GPU 上。

MTCode RemoteGPU 基于 MTCode DirectLink 平台所使用的同一核心库构建,可作为独立扩展运行。无需单独安装 MTCode Portal。

观看 RemoteGPU 实战演示

观看下方视频,了解 MTCode RemoteGPU 的完整流程——从登录、选择 GPU 服务器,到上传项目、启动执行,并将结果实时流式传回编辑器。

点击预览即可播放完整演示

快速开始

初次使用 MTCode RemoteGPU?请先观看上方的演示视频,了解每个步骤的操作方式。

1

安装扩展

从下载的 mtcode-remotegpu.vsix 文件安装 MTCode RemoteGPU(点击此处下载)。也可以直接使用已预装该扩展的 MTCode Studio

2

登录

点击侧边栏标题栏中的 Login 按钮,并使用您的账户登录。如果您是管理员,请使用管理员账户。如果您还没有账户,请点击登录对话框中的注册链接。凭据会通过 VS Code 的 Secrets API 安全存储。

3

选择 GPU 服务器

面板顶部的 “GPU servers” 下拉菜单会列出所有可用服务器。选择一台服务器后,扩展会自动连接,并显示该服务器的账户名、计算机名和 GPU 信息。

4

上传与运行在线执行

加载项目文件夹,选择或配置任务,上传项目文件,然后点击 “开始执行”。输出会实时流式显示在 RemoteGPU 扩展的 VS Code 输出控制台中。注意:如果您登出账户、关闭 VS Code / MTCode Studio,或网络连接中断,在线执行会被停止。

5

离线执行

点击 “提交离线任务”,任务会在 GPU 服务器上独立运行。提交后您可以安全断开连接。输出会保存到项目输出目录下的 *_output.log 文件中。打开 “Project Output” 标签页并点击 “刷新” 可查看所有输出文件。使用 ShiftCtrl + 左键点击 选择多个文件夹和文件,然后右键下载所选内容。

GPU 控制面板

侧边栏分为两个可调整大小的区域:顶部的服务器区域和下方的项目区域。可拖动的分隔条允许您调整大小。

服务器区域

  • GPU servers 按钮 — 刷新可用服务器列表
  • 服务器下拉菜单 — 选择服务器(显示账户、计算机、GPU 型号)
  • 服务器信息按钮 — 显示服务器详细规格,包括 CPU、内存、GPU 和显存
  • 设置齿轮 — 打开 Python 解释器管理和关于信息
  • GPU 利用率 — 已连接服务器的每 GPU 使用百分比
  • 磁盘利用率 — 您已使用的磁盘空间与分配配额的对比

项目区域(3 个标签页)

  • 项目内容 — 文件树,带同步状态、上传控件。任务配置包括脚本和参数设置。服务器共享和用户上传的数据集也在此显示。
  • 项目输出 — 浏览和下载服务器上的输出文件
  • 用户目录 — 浏览您在服务器上的所有文件,下载或删除

标签页上方:项目下拉菜单用于切换项目,"从服务器获取"用于列出服务器端项目,"加载项目"用于添加本地文件夹。

项目上传与同步

项目内容标签页显示项目的文件树,带实时同步状态指示器。选择要上传的文件,扩展高效处理验证和传输。

文件同步状态

  • ✓ 已同步 — 服务器上的文件与本地版本匹配
  • ↑ 待上传 — 本地文件已更改,需要上传
  • ↑ 未上传 — 新文件尚未在服务器上
  • ↓ 有更新 — 服务器版本较新
  • ↓ 仅服务器 — 文件仅存在于服务器上
  • 已更改 / 新增 — 检测到本地更改

智能上传

  • 批量验证 — 上传前,扩展将文件元数据(路径、大小、时间戳)发送到服务器。仅传输新增或更改的文件。
  • 文件监视器 — 扩展实时监控项目的文件更改(保存、创建、删除),自动标记需要上传的文件
  • 未保存文件检查 — 上传前,如有文件存在未保存的更改,会提示"保存所有并继续"、"仍然继续"或"取消"
  • 停止上传 — 上传可随时通过优先级停止消息取消

任务配置与执行

文件树下方是执行配置区域,用于设置要在远程 GPU 上运行的内容。

任务设置

  • 活动任务下拉菜单 — 从已配置的任务中选择,或点击"新建任务"创建
  • 脚本下拉菜单 — 从项目中的 Python 文件填充;选择入口脚本
  • 参数 — 脚本的命令行参数(如 --epochs 50 --batch-size 32
  • 数据集路径 — 使用 ${env:dataset-1}${env:dataset-2}${env:dataset-3} 引用服务器共享数据集
  • 选择解释器 — 选择服务器上使用的 Python 解释器
  • 更新 launch.json — 将任务配置保存到 .vscode/launch.json

执行模式

  • 在线执行 — 点击"开始执行"运行脚本。输出实时流式传输到 VS Code 输出通道。运行期间跟踪 GPU 利用率。
  • 离线执行 — 点击"提交离线任务"将脚本排入服务器队列。输出记录到服务器上的文件。您可以断开连接,稍后检查结果。
  • 停止/取消 — 运行中的脚本可通过绕过正常队列的优先级消息停止。服务器先发送 SIGINT 进行优雅关闭,然后再强制终止。
  • 运行状态 — 当在线或离线任务正在运行时,一个齿轮会不断旋转。服务器区域实时显示 GPU 利用率。当执行完成或停止时,会弹出通知告知完成状态。

输出与结果

执行完成后,切换到项目输出或用户目录标签页浏览和下载结果。

📂

项目输出

显示服务器上项目输出文件夹的目录树。刷新查看新文件。可以选择任何文件夹和文件下载到本地。

📁

用户目录

浏览您账户下存储在服务器上的所有文件和数据集 — 跨所有项目。选择文件夹或文件进行下载或从服务器删除。

📥

下载或删除

在树视图中选择文件夹和文件(Shift+点击选择范围,Ctrl+点击切换选择),然后点击下载或删除。下载时可选择本地目标文件夹。

数据集管理

本地与服务器数据集

  • 本地和上传的数据集 — 从您的电脑中选择数据集文件夹,并将其单独或随项目一起上传。每个数据集都会显示文件数量状态,指示本地副本和服务器副本中的文件数量。
  • 共享数据集 — 由 GPU 服务器管理员共享的数据集。每个数据集都会显示文件数量、文件夹数量和总大小。双击共享数据集即可浏览其文件树。

在脚本中使用数据集

在脚本参数中使用环境变量语法引用数据集路径:

参数:--data ${env:dataset-1} --val ${env:dataset-2}

扩展在执行时将这些解析为服务器上的实际路径。管理员共享的数据集和您自己上传的数据集都可以访问。

Python 解释器与包管理

使用 Python 解释器对话框,可以为当前任务选择服务器端 Python 环境,并在不使用 SSH 或终端的情况下管理用户安装的包。您可以从服务器区域的设置齿轮打开该对话框,也可以在任务配置区域点击 选择解释器 打开。

解释器选择

  • 可用解释器 — 查看 GPU 服务器提供的 Python 解释器,包括系统 Python、Conda 环境、虚拟环境,或管理员配置的其他解释器。
  • 按任务选择 — 从下拉菜单中为当前活动任务选择解释器。该任务以在线方式运行或作为离线任务提交时,都会使用所选解释器。
  • 包列表显示 — 选择解释器后,包列表会更新,显示该解释器下由管理员维护的系统包,以及您自己安装的用户包。

包管理

  • 系统包 — 由 GPU 服务器管理员安装和维护。用户可以查看,但不能修改或删除。
  • 用户包 — 安装到所选解释器对应的个人包环境中,您可以按需定制依赖,而不会影响其他用户。执行 Python 脚本时,如果用户私有环境中安装的包与系统包同名,用户安装的包会优先于系统包被使用。
  • 安装用户包 — 点击 添加包,输入包名以及可选的版本说明符,例如 torch==2.1.0,即可在服务器上安装。
  • 移除用户包 — 选择一个或多个用户安装的包,将其从您的个人环境中移除。
说明:包的安装和移除只作用于所选解释器下您的个人包环境,不会改变管理员维护的系统包,也不会影响同一 GPU 服务器上的其他用户。

与 MTCode Studio 集成

MTCode RemoteGPU 已包含在 MTCode Studio 发行版中。MTCode Studio 中的 Python 项目配置对话框和 RemoteGPU 扩展共享相同的 .vscode/launch.json 格式。在 MTCode Studio 的配置对话框中配置您的 Python 任务(脚本、参数、数据集路径)。在本地运行任务进行快速测试,然后切换到远程 GPU 执行进行完整训练 — 相同配置,无需更改。

× ×