最近,关于用conda输入的Numpy的速度要比使用pip输入的Numpy快一些(尽管原始文章不是最近的),对此已有一些讨论。在本文中,我将说明如果您设计安装程序,scikit-learn也可以更快地工作。
简介
文章," Anaconda的NumPy看起来很快,所以我尝试了。"
https://tech.morikatron.ai/entry/2020/03/27/100000
我最近在Twitter时间轴上见过
多次(尽管原始文章写于2008年3月)。
据说conda安装的Numpy比pip安装的Numpy快。
为什么这么快?
在以上文章中," Intel Core i7-9750H"用于CPU。
该CPU的规格如下。
https://www.intel.co.jp/content/www/jp/ja/products/processors/core/i7-processors/i7-9750h.html
在本规范的"指令集扩展"中描述了" Intel?SSE4.1,Intel?SSE4.2,Intel?AVX2"是一种味mis。
AVX2安装在指令集扩展中。
此外,AVX-512还安装在相对较新的高性能Intel CPU中。
对于AVX,详细页面如下,但它是流式SIMD扩展指令的后继页面。
"关键是它是一个功能,可以用一条指令执行多项操作。"
https://ja.wikipedia.org/wiki/流式SIMD扩展
Intel MKL(数学内核库)是Intel CPU的一项功能,通过使用该AVX2或更高版本的AVX2可以加快数学运算。
https://www.xlsoft.com/jp/products/intel/perflib/mkl/index.html
通过使用AVX2或AVX-512执行各种计算,它可以加快速度。
如果CPU与AVX兼容,则将使用此Intel MKL计算安装了
conda的Numpy,因此处理速度会更快。
英特尔的努力
在GPU时代,英特尔也在2017年左右努力工作,
我们已经发布了Numpy和sckit-learn库,它们支持Intel CPU(例如Intel MKL)上的加速。
pip install intel-scikit-learn
https://pypi.org/project/intel-scikit-learn/
pip install intel-numpy
https://pypi.org/project/intel-numpy/
通过这些,即使从pip安装,也可以从一开始就使用高速版本。
英特尔很早以前就发布了这样的版本,但是
该版本尚未赶上原始的Numpy和sklearn,并且尚未维护,因此
我们不建议使用这些。
加速scikit学习
我介绍的第一篇文章" Anaconda的NumPy看起来很快,所以我尝试了。"
https://tech.morikatron.ai/entry/2020/03/27/100000
即使在
,
的句子中
其他各种模块都采用了英特尔MKL。大!
NumPy
NumExpr
SciPy
Scikit-Learn
Tensorflow…在Windows中,它是一个单独的软件包,称为tensorflow-mkl
PyTorch…似乎还通过pip
使用了英特尔MKL
从
中可以看到,使用conda安装时,未经许可即安装了使用Intel MKL的快速版本。
但是,如果要使其最快地工作,请按照scikit-learn安装页面上的说明进行操作。
https://scikit-learn.org/stable/install.html
在此页面上
" scikit-learn的第三方分发"
写在
"英特尔conda频道"
英特尔conda频道
英特尔维护一个专用的conda通道,该通道提供了scikit-learn:
$ conda install -c intel scikit-learn
此版本的scikit-learn带有一些通用估计器的替代求解器,这些求解器来自DAAL C库,并针对多核Intel CPU进行了优化。
请注意,默认情况下未启用这些求解器,请参阅daal4py文档以获取更多详细信息。
通过自动连续集成运行完整的scikit-learn测试套件,检查与标准scikit-learn解算器的兼容性,如https://github.com/IntelPython/daal4py上所述。
如果将sckit-learn放在
的Intel conda通道上,则不仅是Intel MKL,而且是
某些scikit-learn处理已被Intel多核优化功能处理所取代。
它是
,因此,如果要使用最快版本的scikit-learn,请使用
$ conda安装scikit-learn
代替
$ conda install -c intel scikit-learn
我们建议使用
进行安装(在支持Intel AVX2或更高版本的CPU环境中)。
终于
AWS,深度学习图像和Azure DSVM(数据科学虚拟机)基于conda进行管理。
并且scikit-learn与conda一起安装。
我不知道它们是否是英特尔优化版本(如果有人知道,请告诉我)。
如果使用conda重新创建虚拟环境,则可以安装上述高速版本???
(您需要检查IaaS机器的CPU,以查看其是否支持AVX2。如果它是简易机器,则可能仅支持AVX)。
如上所述,这是一种加速Ccikit学习的方法,例如Conda Numpy。
(我在CPU方面不是很强壮,所以如果您输入有误,请发表评论)
备注
[信息传输]
最近,我在Twitter上发布了有关AI,业务和管理的信息,例如我发现有趣的文章和网站,以及对我阅读的书的印象。
小川裕太郎@ISID_AI_team
https://twitter.com/ISID_AI_team
我看到的信息既有趣又重要!我正在分享我的想法。
[其他]我领导的AI技术部开发团队正在寻找成员。如果您有兴趣,请单击此处
[免责声明]本文内容仅是作者的观点/传播方式,而不是作者所属公司的正式意见。