集群中的环境配置¶
运行环境是用户前期使用集群最关注的问题之一。在萤火集群上,您可以通过如下三种方式配置环境:
使用
haienv
调用集群默认环境使用
haienv
自建虚拟环境使用
hfai images
构建镜像
上述三种环境配置方式难度逐级提升,在前者满足需求的基础上不用轻易尝试后者。
集群默认环境 |
自建虚拟环境 |
镜像 |
|
---|---|---|---|
使用方式 |
提交任务时指定默认环境 |
开发容器中用 |
通过 |
是否支持自定义 |
不支持 |
支持扩展基础环境,或自定义虚拟环境 |
支持构建,需要管理员协助 |
是否支持本地使用 |
不支持 |
仅当本地环境与集群环境匹配时可使用,包括系统、GPU驱动、CUDA版本等 |
支持 |
使用 haienv 调用集群默认环境¶
集群基础环境包含大部分主流依赖包,建议用户在开始使用时先测试该环境是否可以满足您的代码运行需求。使用有如下两种方式:
开发容器中直接使用,激活环境:
source haienv 202111
在使用
hfai python
、hfai bash
或hfai exec
提交任务时,命令行中指定运行环境:HF_ENV_NAME=py38-202111 hfai python sample.py -- -n 1 --name test_202111
202111
是集群目前维护比较完善的环境,其详细配置如下:
环境代号 |
环境名称 |
torch版本 |
cuda版本 |
---|---|---|---|
202111 |
ubuntu2004-cu113-ext |
1.10.0+cu113 |
11.3 |
使用 haienv 自建虚拟环境¶
如果您有自己特殊环境的需求,幻方AI在 studio 中提供了开发容器,支持用户直接从集群基础环境中扩展配置用户个人环境。这种方式是增量的,仅需要安装集群默认环境里缺少的依赖即可。开发容器功能入口如下图所示:
幻方AI提供两种资源模式的开发容器
mig-gpu 开发容器 |
spot 开发容器 |
|
---|---|---|
创建入口 |
||
资源分配 |
多个用户容器共享节点,每个容器绑定一个mig切分GPU |
每个容器独占一个节点(8卡) |
生命时长 |
默认24小时,活跃期间随时可续 |
无固定时长,根据集群资源需求随时回收 |
启动条件 |
用户配额内随时可启动 |
根据集群资源需求动态开放 |
注意:这种操作无法将配置好的环境拉取到本地,代码无法在本地进行测试调优。如果您需要 Debug 代码,可以在开发容器中执行。
具体的使用方式如下:
首先进入开发容器命令行,通过如下命令创建用户环境:
haienv create <myenv>
注意不加 --no_extend
命令表示从集群默认环境扩展构建用户环境,最大降低环境配置的工作量。
和默认环境的使用一样,使用自建环境有如下两种方式:
开发容器中直接使用,激活环境:
source haienv <myenv>
在使用
hfai python
、hfai bash
或hfai exec
提交任务时,命令行中指定运行环境:HF_ENV_NAME=<myenv> hfai python sample.py -- -n 1 --name test_myenv
使用 hfai images 构建镜像¶
hfai images
解决的是一些非 Python 环境安装的问题,比如物理仿真里要安装模拟器,分子计算工具等。
幻方 AI 对集群中的镜像进行了深度优化和封装,以满足萤火集群高性能的深度学习训练要求。因此 hfai 虽支持用户的自有镜像构建,但需要符合 hfai 的规范和流程,其过程需要幻方管理员的参与和支持。
流程包含如下几步:
获取集群中的 base 镜像的 tar 包。我们提供了 cuda_111 和 cuda_113 两个版本,基于 Ubuntu 20.04;
在本地加载上述 tar 包,比如
registry.high-flyer.cn/platform/hf_training:ubuntu2004-cu113-20221019
;基于上述 image 构建自己的镜像;
docker save
上述镜像,保存成 tar 包(比如 abc.tar),通过hfai workspace
上传到萤火集群;打开 Studio 进入 workspace 目录,使用
hfai image load abc.tar
;等待完成,可以通过
hfai images list
命令查看;
加载完成后返回如下结果:
注意,等状态变成 loaded
之后,您可以通过 hfai python test.py -- -n 1 --image registry.high-flyer.cn/hfai/python:3.8-alpine
来使用您构建的镜像了。