创建和导入系统镜像

创建镜像

LiCO 发布时会自带常用 AI 框架的镜像所需要的 bootstrap 文件,用户可以使用这些 bootstrap 文件创建镜像,这些 bootstrap 文件在管理节点的 /opt/lico/examples/image/ 下。这些 bootstrap 文件的镜像如下:

框架

框架版本

CPU/GPU

注释

Caffe

1.0

CPU

Caffe

1.0

Cuda9.1

支持 P100V100
Caffe 官方不支持CUDA9,
我们修改了Caffe的make文件去支持CUDA9

TensorFlow

1.6

CPU

支持 P100V100

TensorFlow

1.6

Cuda9.0

支持 P100V100
TensorFlow官方不支持CUDA9.1, 所以我们用CUDA9.0

Neon

2.4

CPU

Intel-Caffe

1.0.4

CPU

MXNet

1.1

CPU

MXNet

1.1

Cuda9.0

支持 P100V100
MXNet官方不支持CUDA9.1,所以我们用 CUDA9.0.

Note

  1. 如果集群中没有 GPU 节点,只需要创建 CPU 镜像。

  2. 集群节点的 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