面向机器学习和深度学习的英特尔优化工具和框架

本文介绍了面向机器学习和深度学习的英特尔优化工具和框架,还展示了集成至上述优化工具和框架的英特尔库(有助于充分利用优化工具和框架,在英特尔® 架构上实现最佳性能)。这些信息对初次使用的用户、数据科学家和机器学习工作人员非常实用,能够帮助他们快速了解英特尔优化工具和框架。

简介

机器学习 (ML) 属于一般意义上的人工智能 (AI),基于一系列用于数据分析的算法。深度学习 (DL) 是一项专门的机器学习技术,基于一系列算法,这些算法利用包含多个处理层的图,模拟高级别的数据抽象(https://en.wikipedia.org/wiki/Deep_learning)。

如今,机器学习,尤其是深度学习,在应用和行业中得到了越来越广泛的应用,如图像和视频识别/分类、面部检测、自然语言处理和财务预测。

英特尔机器学习和深度学习优化框架是利用深度学习的最简单的方法。使用英特尔优化工具和框架训练、部署深度学习,将确保这些工具以最高效的方式利用英特尔® 架构。以下链接显示了面向英特尔架构优化框架的实例,还提供了优化框架速度提升(相比于未经优化的框架)的表格,https://software.intel.com/zh-cn/ai/deep-learning

(请访问http://itpeernetwork.intel.com/myth-busted-general-purpose-cpus-cant-tackle-deep-neural-network-training/

http://itpeernetwork.intel.com/myth-busted-general-purpose-cpus-cant-tackle-deep-neural-network-training-part-2/ 获取实例)。

从图中我们可以发现,英特尔机器学习和深度学习解决方案堆栈跨越不同的层。在硬件上开发的高度优化数学库支持以最高效的方式利用若干英特尔® 处理器产品家族。这些优化的数学库为更高级别的工具和框架提供了基础,帮助解决不同领域的机器学习和深度学习问题。

我们将在下一部分简要总结用于优化框架的英特尔库和工具。尽管这些工具和库用于优化面向英特尔框架的机器学习和深度学习框架,也可以将其应用于其他需要高度优化数值例程的应用或软件包,便于它们利用英特尔® 硬件的矢量化、多线程和分布式计算功能。

面向机器学习和深度学习的英特尔® 软件工具

英特尔正积极与开源社区合作,面向英特尔架构优化现有的和全新的框架,还借助库的强大功能,优化机器学习和深度学习工具,这些库通过构建模块加速任务。

英特尔开发了 3 个在英特尔上架构上运行的高度优化的库。

  • 英特尔® 数学核心函数库(英特尔® MKL)(https://software.intel.com/zh-cn/intel-mkl) 提供一系列面向深度学习的高度优化性能基元 (https://software.intel.com/zh-cn/node/684759)。这个库还包括高度优化(矢量化和线程化)的功能,使每个英特尔® 处理器产品家族达到最高性能。这些功能针对单核矢量化和高速缓存内存利用率而优化,实现多核与众核处理器的自动并行性。

    英特尔 MKL 为常见的数学库(如 BLAS、LAPACK 和 FFTW)提供标准 C 和 Fortran API,无需更改代码。重新连接应用后,英特尔 MKL 将使每个英特尔处理器产品家族的性能达到最高。以最小的付出实现深度学习应用的强大性能。

    英特尔 MKL 面向最新版英特尔处理器而优化,包括英特尔® 至强处理器和英特尔® 至强融核™ 处理器。尤其是面向英特尔® 高级矢量扩展指令集 2 和英特尔® 高级矢量扩展指令集 512 ISA 进行了优化。

    英特尔® MKL 库可以通过 Community Libraries 项目免费下载(https://software.intel.com/sites/campaigns/nest/)。
     
  • 面向深度神经网络的英特尔® 数学核心函数库(英特尔® MKL-DNN)(https://01.org/mkl-dnn)是一款面向深度学习应用的开源性能库,用于实现英特尔架构的最高性能。

    它提供了经过优化的深度神经网络基元,能够快速地集成深度学习框架。鼓励社区开发人员开发新的功能,并在推出英特尔 MKL 版本前,快速应用该功能。因此,深度学习科学家和软件开发人员都能够为这个开源库贡献出自己的力量,并从中受益。
     
  • 英特尔® 数据分析加速库是一款性能库,由高度优化的算法构建模块构成,适用于所有的数据分析阶段(预处理、转换、分析、建模、验证和决策制定)。专门用于常见的数据平台,包括 Hadoop*、Spark*、R* 等,能够提高数据访问的效率。通过英特尔® 性能库社区许可,可以免费获取该库 (https://software.intel.com/sites/campaigns/nest/)。
     

深度学习框架

英特尔机器学习和深度学习优化框架利用上述库的功能,支持利用英特尔处理器高效地执行训练和推断。

英特尔正积极将数学库集成至各种框架,使这些框架的用户可以在英特尔处理器上高效地运行深度学习训练和推断任务。例如,英特尔® Caffe* 分发包和英特尔® Theano* 优化包集成了最新版英特尔 MKL。英特尔正将多模功能集成至这些框架,以在多个节点间分配训练工作负载,减少总体训练时间。

以下结构图显示了上述不同的库和框架之间的交互,以及如何在若干优化库中将英特尔 MKL 和英特尔 MKL-DNN 库用作构建模块。

深度学习技术的使用包含两个主要步骤:

  • 训练:在这个步骤中,我们尝试基于标记数据(如标记图像)创建模型
  • 推断(又称评分):模型创建成功后,将被用于数据预测(例如,在未标记的图像中发现对象)

运行于英特尔架构上的英特尔机器学习和深度学习优化框架将实现两个步骤的最高性能。

由于深度学习任务(训练和推断)需要大量的计算,因此,利用针对基础硬件优化的框架和工具来完成深度学习任务,这点非常重要。虽然许多常见的深度学习框架(如 Caffe、Theano 等)属于开源软件,但是没有经过优化,无法在英特尔架构上高效运行。只有运行经过英特尔优化的框架版本,才能在英特尔架构上实现最佳性能。

不管您是想要学习机器学习和深度学习的新手,还是执行特定机器学习或深度学习任务的数据科学家,都可以通过使用英特尔优化框架而获益。探索英特尔优化工具的最佳方式是访问面向人工智能的英特尔® 开发人员专区门户,https://software.intel.com/ai,通过该门户,您将更详细地了解支持人工智能的英特尔® 技术。

如欲下载英特尔优化框架,并安装文档和训练,请访问 https://software.intel.com/ai/deep-learning

该网页提供下载优化框架所需的 GitHub* 页面链接,以及多种文档、视频和示例的链接。

如果您是一名软件开发人员,并对创建或优化个人工具和框架感兴趣,可以查看英特尔现代代码工程师专家优化常用框架的实例。其中一个实例可以通过以下链接获取 https://software.intel.com/videos/getting-the-most-out-of-ia-using-the-caffe-deep-learning-framework

您将从中了解如何利用现代代码技术优化常见的 Caffe* DL 框架,也可以通过这些技术,分析和优化机器学习和深度学习工具或框架,在英特尔架构上实现前所未有的高效性。

除了英特尔优化框架以外,英特尔还发布了一款深度学习 SDK,它是一种集成环境,支持用户实时查看深度学习过程的不同方面,并能直观地表示深度学习模型。英特尔计划继续开发这款面向深度学习的高级工具。如欲获取新工具的更多信息,请访问 https://software.intel.com/zh-cn/deep-learning-sdk

结论

数据分析(尤其是机器学习和深度学习)的使用为许多行业带来了更大的竞争优势。如今,机器学习和深度学习工具的开发节奏不断加快,利用面向硬件优化与调试的工具和框架,对机器学习从业人员和数据科学家来说非常重要。这是因为,优化这些工具和框架需要花费大量的时间和资源;而使用未经优化的工具,将延长处理时间,导致失去竞争优势。英特尔正积极与开源社区合作,优化机器学习和深度学习工具与框架,支持用户以最小的付出在英特尔架构上实现最佳性能,如欲利用英特尔优化工具,满足机器学习与深度学习的需求,请访问 https://software.intel.com/zh-cn/ai

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