如何在GpuMall智算云平台实现开发工具与远程实例无缝对接

#智算云GpuMall#

#社区云# #高可用云#
#免费# #租赁# #GpuMall#

在人工智能和机器学习的快速发展浪潮中,分布式算力正成为这一浪潮中不可或缺的重要角色。随着大模型和深度学习框架的渐趋复杂,对高效、强大的计算资源的需求亦日益增长,这就催生了GPU云、AI云、智算云、云服务器、AI云服务器等高性能计算平台的出现。GPU云主机、GPU云服务器等服务提供了面向AI应用的专业计算能力,让研究人员和开发者能够轻松访问到如NVIDIA的3090、4090、A100及最新的H100等高端图形处理单元,大大提升了AI模型训练和推理的效率。云计算的进一步发展,正在推动“云上开发”成为新范式。本文为开发者介绍一下远程开发的一些案例和方法。

#gpumall.com#

GpuMall智算云

一、开发工具连接实例远程开发

远程开发主要基于将开发环境(包括代码编辑、编译、运行等)从本地机器转移到远程服务器上,这个过程涉及几个关键组件和概念:

1.远程服务器

远程服务器是托管远程开发环境的中心,可以是一个物理服务器,也可以是云中的虚拟机,比如在 GpuMall 平台,远程服务器为平台的 实例,服务器需要配置可以运行代码的环境。

2.网络连接

远程开发重依赖于网络连接,允许开发者的本地电脑与远程服务器进行通信,这包括文件传输、命令执行、结果返回等。

3.开发工具和IDE

开发者在本地电脑上使用的集成开发环境(Pychrm或VS Code或者其它IDE)通常具有连接远程服务器并在远程环境中执行任务的能力。

在 GpuMall 平台使用远程开发的适用场景如下:

本地电脑没有GPU或本地电脑硬件配置无法运行当前项目。

本地安装环境较为复杂,不想折腾调试本地环境。

本地调试后再上传到GPU服务器麻烦,不如在服务器上调试后直接 run。

统一开发环境,防止本地调试完成可以正常 run 后,代码上传到实例中却报一堆错误。

提示

远程开发非常依赖网络稳定性,在 GpuMall 平台使用 IDE 工具进行远程开发,网络连接方式为:本地电脑 IDE -> GpuMall 平台网络转发服务器 -> 实例,以下情况可能会发生本地 IDE 与实例服务器网络断开连接。

本地电脑睡眠、本地电脑 Wifi 连接网络出现断连。

本地网络出现波动,与 GpuMall 网络转发服务器断开连接。

GpuMall 网络转发服务器流量过载主动断开连接。

实例所在机房流量过载导致网络延迟、网络波动、从而中断连接。

综上所述:通过开发工具IDE连接实例进行远程开发仅适合调试代码,如有长时间训练需求,如连续 N 个小时或 N 天,请通过 ssh 登录到实例终端,配合 tmux、screen、nohup 等工具将训练进程放到后台运行,以免因网络中断而导致训练进程异常关闭。

二、PyCharm 连接 GpuMall 实例进行远程开发

使用 PyCharm IDE 工具进行连接 GpuMall 平台实例进行远程开发。

确保您的 Pycharm 为专业版,社区版无远程开发功能。

在 PyCharm 中进行数据集同步非常慢,仅适合代码文件进行同步到服务器端。

本次文档中演示 PyCharm 版本为 2023.3 (Professional Edition),内部版本号#PY-233.11799.259,已安装汉化插件。

该文档使用macOS版本进行演示,Windows版本与macOS版本可能有少许差别。

1. 新建项目

在 PyCharm 中新建一个项目,如果您的项目已经在本地电脑存在,则绕过该步骤;我这里为了演示代码同步,所以需要准备一个项目,我从 GitHub 拉取了 Yolov5 的项目来进行演示,并且使用本地解释器打印了一个测试页面。

2. 配置远程连接到实例及Python解释器

1. macOS 点击 PyCharm -> Settings

2. 项目 -> Python解释器 -> 添加解释器 -> SSH

3. 到 GpuMall 控制台 -> 个人空间 -> 实例管理,找到对应实例的 登录,然后复制 登录指令 与 登录密码

复制后粘贴到任意文件中,内容如下

登录指令:ssh -p 11111 root@xxxxxxxx.gpumall.com
登录密码:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

命令拆解如下:
实例SSH主机:xxxxxxxx.gpumall.com
实例SSH端口:11111
实例登录用户名:root
实例登录密码:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

然后把以上对应信息复制到下图中对应框中

  1. 1号标记填入您实例对应SSH主机
  2. 2号标记填入您实例对应的SSH端口
  3. 3号标记填入您实例对应的用户名

然后点击4号标记进行下一步

4. 然后把对应的实例登录密码输入进去,然后点击下一步

5. 这一步会检测通过SSH登录目标实例和Python环境,检测完成后点击下一步

6. 配置远程服务器实例上的Python解释器

根据下图标记操作:

  1. 1号标记选择 Conda 环境,因为平台的官方镜像中默认已安装 Conda 以及在 base 环境中安装了 框架、CUDA、Python。
  2. 2号标记,默认情况下PyCharm会先进行检测 Conda 可执行文件,如果检测不到,可以直接输入该路径 /usr/local/miniconda3/bin/conda。
  3. 3号标记,点击加载环境,PyCharm会加载目标实例的 Conda 环境。
  4. 4号标记,使用现有环境,如果现有的 base 环境中的框架、python等不符合您的要求,可以点击创建新环境,不过创建新环境里默认没有框架和Python,需要您后续自行安装。
  5. 5号标记,选择现有环境。
  6. 6号标记,选择要同步到远程服务器实例中的文件目录(具体请看下张图片)。
  7. 同时需要选中自动上传项目文件到服务器

配置本地代码同步到远程服务器实例中的路径

1.1号标记为本地电脑项目路径,需要把该目录中的所有代码文件同步到远程服务器实例中 (本地电脑代码项目所在的目录中,比如我本地的 /opt/yolov5 目录中,一定不能存在数据集,该代码文件建议控制在 50MB 以内,否则本地电脑通过 PyCharm 同步该目录到实例中时间会无限长以及超时问题的发生)

1.2号标记为本地电脑项目路径同步到实例中的路径,选择同步到实例中所存储的位置,我这里把项目文件同步到实例中的 /gm-data/yolov5 文件中。

3.选择完成后,点击确定

7. 然后点击创建 -> 完成

PyCharm会自动同步 /opt/yolov5 目录中的数据到实例的 /gm-data/yolov5 目录下

8. 在本地电脑 PyCharm 中运行代码,可以看到输出使用的是远程服务器实例中的解释器

9. 通过 PyCharm 终端登录实例

  1. 点击左下角终端
  2. 选择创建的 SSH 服务器

3. 测试运行项目

展示测试运行 yolov5 过程

查看 GPU 利用率

(base) root@492132307857413:~# nvidia-smi
Tue Dec 12 19:48:41 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.08              Driver Version: 545.23.08    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3090        On  | 00000000:21:00.0 Off |                  N/A |
| 50%   50C    P2             162W / 350W |  22807MiB / 24576MiB |     88%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
+---------------------------------------------------------------------------------------+

目前,云平台正通过提升协作工具、加强代码托管服务、丰富系统集成选项、简化部署流程和拓展产品API来优化开发者的云端开发体验。我们为开发者提供更多多款主流大模型镜像,打通闲置算力和数据,通过算力提供更好的云端开发体验。欢迎关注我们的官网,查看和体验更多的工具体验:https://gpumall.com/index。

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值