加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

酷睿i5机能刹时晋升20倍的法门!

发布时间:2018-12-10 16:15:05 所属栏目:电商 来源:互联网
导读:Intel Distribution for Python在本年二月举办了更新英特尔宣布了Update 2版本。以加快为焦点的它,对比原生Python情形有多大晋升呢? 雷锋网获知,并行计较专家、前英特尔高级工程师James Reinders对老雇主的产物举办了测试。他对外公布:在配备四核i5的i
副问题[/!--empirenews.page--]

  Intel Distribution for Python在本年二月举办了更新——英特尔宣布了Update 2版本。以“加快”为焦点的它,对比原生Python情形有多大晋升呢?

  雷锋网获知,并行计较专家、前英特尔高级工程师James Reinders对老雇主的产物举办了测试。他对外公布:在配备四核i5的iMac上实现了20倍的机能加快,至于他是怎么做到的,请继承往下看(含代码)。

  ames Reinders:操作Intel Distribution for Python,我实现了 Python 的20倍加快,而且可用单个呼吁封锁/启用。这还不是在最优环境下,而在假造情形——在 VirtualBox(下文简称VBox)上运行的openSUSE Linux Tumbleweed(即“转动版本”),行使的呆板是四核iMac。

  这在Windows, Linux或OS X都能实现。英特尔并没有把openSUSE插手经他们测试过的Linux设置列表中(SUSE Enterprise在表中),但我在运行中并没有碰着任何题目。

  这就是我怎么做的:

  下载Anaconda呼吁行安装措施,地点为https://www.continuum.io/downloads 。

  安装:% bash Anaconda2-4.3.0-Linux-x86_64.sh

  安装英特尔加快器,作为一个单独的、可开启封锁的“情形”%conda config --add channels intel % conda create --name intelpy intelpython2_full python=2

  运行示例措施,看到在我的openSUSE VBox配置上有15到20倍的速率晋升。

  % source deactivate intelpy

  % python < myprog.py

  np.sin

  102400 10000 36.1987440586

  np.cos

  102400 10000 36.1938228607

  np.tan

  102400 10000 51.487637043

  % source activate intelpy

  % python < myprog.py

  np.sin

  102400 10000 1.76131296158

  np.cos

  102400 10000 1.83870100975

  np.tan

  102400 10000 3.38778400421

  That’s all! The speed-ups are 20.6X, 19.7X, and 15.2X in this quick test running on a virtual machine.

  Here’s my little Python program:

  % cat myprog.py

  import numpy as np

  import time

  N = 102400

  x = np.linspace(0.0123, 4567.89, N)

  def mine(x,Z,func,name):

  print name;

  start = time.time()

  for z in range ( 0, Z ) :

  y = func(x);

  end = time.time()

  print N, Z, end - start

  return

  mine(x,10000,np.sin,'np.sin')

  mine(x,10000,np.cos,'np.cos')

  mine(x,10000,np.tan,'np.tan')

  我花很短时刻搞起来这个措施,用来验证英特尔对加快NumPy中transcendental expression的理睬。Cosine, sine和tangent 是我还能记得的、搞TI calculator时辰用的transcendental,以是我用它们来试。我抉择对每一个举办十亿级测试——运行高出十万个数字的函数,一再高出一万次。

  固然未必是一个很故意思的措施,但对付加快而言是个不错的测试。

  随时加快Python

  我此前写过一篇文章,接头“Python 加快”(“accelerated Python”)使其更合用于大数据和 HPC 应用。 在速率更快之外,我还展示了,行使Conda来开启/封锁加快是何等得轻易。这很是赞,让安装它的抉择变得越发安详、没有记挂——由于该成果是一个可选项。(对新手的提示: Anaconda 是针对 Python 算法包的荟萃,Conda则是package manager,即算法包揽理器。我两个都用而且都很喜好。)

  我行使 “conda create”来缔造被我称之为intelpy的情形。然后,我可以或许行使“source activate intelpy”、“source deactivate intelpy”来激活、封锁它。

  Intel Distribution for Python 带来的大幅加快手段,让 “accelerated Python” 变得更适用更让人佩服。

  值得留意的是,“accelerated Python” 只是行使更快的Python算法库,不必要对代码做任何窜改。虽然,我们的Python代码必需行使了某些加快的对象,才气从中获益。

  英特尔通过三大方面实现Python加快:

  操作多核;

  操作矢量指令(SIMD),好比 SSE, AVX, AVX2和AVX-512;

  行使英特尔 Math Kernel Library (Intel MKL) 的更先辈算法。

  对付运行于矢量或矩阵上的措施,上述这些城市见效。对付无意的单独cosine,我们不该该等候大幅速率晋升。同样的,对付单核CPU,我们也不该该有机能晋升的理想。虽然,英特尔72核协处理赏罚器Xeon Phi会在大量多核应用的跑分中领先。在我的例子中,我的假造机只操作iMac i5的四个焦点。

  FFT在4核假造机上有八倍机能晋升

  我也试了下Fast Fourier Transforms (FFT)。行使与原始措施沟通的配置,我只是凭证如下方法运行FFT措施:

  % source deactivate intelpy

  % python < myfftprog.py

  fft

  5000 2.22796392441

  fft

  7000 8.74916005135

  % source activate intelpy

  % python < myfftprog.py

  fft

  5000 0.277629137039

  fft

  7000 1.11230897903

  速率晋升为8和7.9倍。虽然,照旧运行于四核iMac上的openSUSE和VBox。这是我的快速FFT措施:

  % cat myfftprog.py

  import numpy as np

  import numpy.random as rn

  import time

  def trythis(Z):

  mat = rn.rand(Z,Z) + 1j * rn.randn(Z,Z)

  print 'fft'

  start = time.time()

  # 2D transform on a complex-valued matrix:

  result = np.fft.fft2(mat)

  end = time.time()

  print Z, end - start

  return

  trythis(5000);

  trythis(7000);

  新 Python 加快

  笔者相识到,以下是Intel Distribution for Python全新Update 2版本中,获得了新的速率晋升的方面:

  优化NumPy的算术和transcendental表达

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读