创建和导入系统镜像
创建镜像
LiCO 发布时会自带常用 AI 框架的镜像所需要的 bootstrap 文件,用户可以使用这些 bootstrap 文件创建镜像,这些 bootstrap 文件在管理节点的 /opt/lico/examples/image/
下。这些 bootstrap 文件的镜像如下:
框架 |
框架版本 |
CPU/GPU |
注释 |
---|---|---|---|
Caffe |
1.0 |
CPU |
|
Caffe |
1.0 |
Cuda9.1 |
支持 P100 和 V100
Caffe 官方不支持CUDA9,
我们修改了Caffe的make文件去支持CUDA9
|
TensorFlow |
1.6 |
CPU |
支持 P100 和 V100
|
TensorFlow |
1.6 |
Cuda9.0 |
支持 P100 和 V100
TensorFlow官方不支持CUDA9.1, 所以我们用CUDA9.0
|
Neon |
2.4 |
CPU |
|
Intel-Caffe |
1.0.4 |
CPU |
|
MXNet |
1.1 |
CPU |
|
MXNet |
1.1 |
Cuda9.0 |
支持 P100 和 V100
MXNet官方不支持CUDA9.1,所以我们用 CUDA9.0.
|
Note
如果集群中没有 GPU 节点,只需要创建 CPU 镜像。
集群节点的 GPU 驱动程序版本应该是 390.46。
准备一个制作镜像的节点,节点所需的最小内存空间为100G,且这个节点可以访问 Internet,
此节点的操作系统版本需要和集群中节点的版本相同,节点需要安装 singularity, 且要求其版本和集群中节点的版本(singularity-2.4 https://github.com/singularityware/singularity/releases/tag/2.4 )是相同的,
如果需要制作支持 GPU 的镜像,这个节点还需要安装 GPU 驱动,GPU 驱动也需要和集群中节点的 GPU 驱动相同。
拷贝管理节点上的 bootstrap 文件到这个制作镜像的节点。比如到 /opt/images
目录(此目录和 /var/tmp
目录不能被挂载)下,然后使用下面命令生成镜像(请确认已经安装了 squashfs-tools)。
$ sudo cd /opt/images/
$ sudo singularity build caffe-1.0-cpu.image caffe/caffe-1.0-cpu
$ sudo singularity build caffe-1.0-gpu-cuda91.image caffe/caffe-1.0-gpu-cuda91
$ sudo singularity build tensorflow-1.6-cpu.image tensorflow/tensorflow-1.6-cpu
$ sudo singularity build tensorflow-1.6-gpu-cuda90.image tensorflow/tensorflow-1.6-gpu-cuda90
$ sudo singularity build mxnet-1.1-cpu.image mxnet/mxnet-1.1-cpu
$ sudo singularity build mxnet-1.1-gpu-cuda90.image mxnet/mxnet-1.1-gpu-cuda90
$ sudo singularity build intel-caffe-1.0.4-cpu.image intel-caffe/intel-caffe-1.0.4-cpu
$ sudo singularity build neon-2.4-cpu.image neon/neon-2.4-cpu
导入系统镜像
将制作好的镜像拷贝到管理节点,比如 /opt/images
目录(此目录和 /tmp
目录不能被挂载)下, 然后使用 root 用户运行下面的命令将镜像导入 LiCO
$ sudo cd /opt/images
$ sudo lico import_system_image caffe-cpu $PWD/caffe-1.0-cpu.image singularity caffe
$ sudo lico import_system_image caffe-gpu $PWD/caffe-1.0-gpu-cuda91.image singularity caffe
$ sudo lico import_system_image tensorflow-cpu $PWD/tensorflow-1.6-cpu.image singularity tensorflow
$ sudo lico import_system_image tensorflow-gpu $PWD/tensorflow-1.6-gpu-cuda90.image singularity tensorflow
$ sudo lico import_system_image mxnet-cpu $PWD/mxnet-1.1-cpu.image singularity mxnet
$ sudo lico import_system_image mxnet-gpu $PWD/mxnet-1.1-gpu-cuda90.image singularity mxnet
$ sudo lico import_system_image intel-caffe $PWD/intel-caffe-1.0.4-cpu.image singularity intel-caffe
$ sudo lico import_system_image neon $PWD/neon-2.4-cpu.image singularity neon