DeepSpeed的hostfile文件

一. hostfile文件

DeepSpeed多机多卡训练时,需要配置hostfile文件, hostfile文件是一个主机名(或 SSH 别名)列表,这些机器可以通过无密码 SSH 访问,并且还包括 slot counts,用于指定系统上可用的 GPU 数量。如下所示:

worker-1 slots=8
worker-2 slots=8
hostname1 slots=8
hostname2 slots=8

上述示例指定了**四个别名(别名创建看下面第二节)**为 worker-1 ,worker-2,hostname1,和hostname2 的机器,每台机器都有8个 GPU 用于训练。

可以使用 --hostfile 命令行选项指定 hostfile。如果没有指定 hostfile,则 DeepSpeed 会搜索本机器 /job/hostfile系统配置文件路径 。如果没有指定或找到 hostfile,则 DeepSpeed 查询本地计算机上的 GPU 数量,以发现可用的本地 slot 数量。

二. linux别名创建

通常使用以下任意一种方式通过 SSH 连接到远程系统。

使用 IP 地址:

ssh 192.168.225.22

或使用端口号、用户名和 IP 地址:

ssh -p 22 [email protected]

或使用端口号、用户名和主机名:

ssh -p 22 [email protected]
22 是端口号,
sk 是远程系统的用户名,
192.168.225.22 是远程系统的 IP,
server.example.com 是远程系统的主机名。

我相信大多数人都会以这种方式通过 SSH 连接到远程系统。但是,如果你通过 SSH 连接到多个不同的系统,记住所有主机名或 IP 地址,还有用户名是困难的,除非你将它们写在纸上或者将其保存在文本文件中。这时可以通过为 SSH 连接创建别名(或快捷方式)轻松解决。

2.1 使用 SSH 配置文件

创建别名的首选方法。

可以使用 SSH 默认配置文件来创建 SSH 别名。为此,编辑 ~/.ssh/config 文件(如果此文件不存在,只需创建一个):

vi ~/.ssh/config

添加所有远程主机的详细信息,如下所示:

Host worker-0
    HostName 192.168.225.22
    User ostechnix
    User sk

Host worker-1
    HostName server.example.com
    User ostechnix
    User root

Host hostname1
    HostName 192.168.225.25
    User ostechnix
    Port 2233
 
 Host hostname2
    HostName 192.168.225.25
    User ostechnix
    Port 2233

使用 SSH 配置文件在 Linux 中创建 SSH 别名
将 Host、Hostname、User 和 Port 配置的值替换为你自己的值。添加所有远程主机的详细信息后,保存并退出该文件。

现在你可以使用以下命令通过 SSH 进入系统:

ssh worker-0
ssh worker-1
ssh hostname1
ssh hostname2

三. 参考文档

1. 如何在 Linux 中创建 SSH 别名
2.【DeepSpeed 教程翻译】开始,安装细节和CIFAR-10 Tutorial
3. deepspeed多机多卡训练踏过的坑
4. deepspeed多机多卡训练

猜你喜欢

转载自blog.csdn.net/flyingluohaipeng/article/details/132594321