开始使用英特尔® 机器学习扩展库

简介

英特尔® 机器学习扩展库(英特尔® MLSL)能够高效地实施深度学习中使用的通信模式。它针对深度学习框架开发人员设计,可帮助他们从项目扩展中受益。

英特尔 MLSL 的部分特性包括:

  • 基于 MPI 构建,支持使用其它通信库
  • 经过专门的优化,可以提高通信模式的可扩展性
  • 支持各种互连结构:英特尔® Omni-Path 架构、InfiniBand* 和以太网
  • 使用通用 API 支持深度学习框架(Caffe*、Theano*、Torch* 等)

安装

下载英特尔® MLSL 软件包

  1. 转至https://github.com/01org/MLSL/releases并下载:
     
    • intel-mlsl-devel-64-<version>.<update>-<package>.x86_64.rpm用于 root 安装,或者
    • l_mlsl_p_<version>.<update>-<package>.tgz 用于用户安装。
  2. 在相同的页面上,下载源代码压缩文件(.zip.tar.gz)。该压缩文件包含 LICENSE.txtPUBLIC_KEY.PUB 文件。PUBLIC_KEY.PUB 对于 root 安装是必须的。

系统要求

操作系统

  • Red Hat* Enterprise Linux* 6 或 7
  • SuSE* Linux* Enterprise Server 12

编译器

  • GNU*:C, C++ 4.4.0 或更高版本
  • 英特尔® C/C++ 编译器 16.0 或更高版本

安装英特尔® MLSL

英特尔® MLSL 软件包包含英特尔 MLSL 软件开发套件 (SDK) 和英特尔® MPI 库运行时组件。按照下面的步骤安装软件包。

Root安装

  1. 作为root登录。
  2. 安装软件包:
     
    rpm --import PUBLIC_KEY.PUB
    rpm -i intel-mlsl-devel-64-<version>.<update>-<package>.x86_64.rpm

    在软件包名称中,<version>.<update>-<package> 代表字符串,例如 2017.1-009

英特尔 MLSL 将会安装在 /opt/intel/mlsl_<version>.<update>-<package>

用户安装

  1. 将软件包提取至目标文件夹:
     
    tar -xvzf l_mlsl_p_<version>.<update>-<package>.tgz -C /tmp/
    
  2. 运行 install.sh 脚本并按照说明操作。
     
    ./install.sh
    

英特尔 MLSL 将会安装在 $HOME/intel/mlsl_<version>.<update>-<package>

开始使用

成功安装产品后,您可以使用其全部功能。

如欲了解英特尔 MLSL 如何工作,以及如何使用库 API,建议构建并启动随英特尔 MLSL 提供的示例应用。示例应用模拟了深度学习框架的运行,同时大量使用英特尔 MLSL API 以实现并行化。

按照下面的步骤构建并启动示例应用:

  1. 设置英特尔 MLSL 环境:
    source <install_dir>/intel64/bin/mlslvars.sh
  2. 构建 mlsl_test.cpp:
    cd <install_dir>/test
    make
    
  3. 启动 mlsl_test 二进制,mpirun 为所需的的节点数量 (N)。mlsl_test 包含两个参数:
    • num_groups – 定义并行化的类型,基于以下逻辑:
      • num_groups == 1 – 数据并行化
      • num_groups == N – 模式并行化
      • num_groups > 1 and num_groups < N – 混合并行化
    • dist_update – 支持分布式权重更新

启动命令示例:

# use data parallelism
mpirun –n 8 -ppn 1 ./mlsl_test 1
# use model parallelism
mpirun –n 8 -ppn 1 ./mlsl_test 8
# use hybrid parallelism, enable distributed weight update
mpirun –n 8 -ppn 1 ./mlsl_test 2 1

应用实施英特尔 MLSL 的标准工作流。如欲获得详细的示例说明,以及通用的分布式工作流和 API 参考,请访问随英特尔 MLSL 提供的 开发人员指南和参考

有关编译器优化的更完整信息,请参阅优化通知