酷睿i5性能這樣瞬間提升20倍!

2021-01-12 快科技

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表達

Transcendental expressions包含我在快速示例程序裡用的cosine, sine和tangen。這些優化的核心是對NumPy的改變,使得 primitives (在 ndarray 數據上進行運算)能選擇性地使用英特爾MKL Short Vector Math Library (SVML) 和MKL Vector Math Library (VML) 的能力。這使得 Python 利用處理器的最新矢量能力,包括多核優化和 AVX/AVX2/AVX-512。英特爾團隊表示,他們利用 Xeon Phi,實現過 NumPy 算術和 transcendental 運算在 vector-vector 和 vector-scalar 上最高400倍的速度提升。

優化NumPy和SciPy的FFT

這些優化的核心是英特爾MKL,一系列 NumPy、SciPy 函數都能用到它對 FFT 的原生優化。這些優化包含真實、複雜的數據類型,單精度和雙精度都包含 (single and double precision),從一維到多維的數據,in place 或者 out of place。英特爾團隊見到過這項更新帶來60倍的性能提升。這使得 Python 的性能可與原生 C/C++ 程序相媲美。

優化內存管理

Python是一門動態語言,為用戶管理內存。Python 應用的性能,在很大程度上取決於內存運行的性能,這包括內存分配、再分配(de-allocation)、複製和移動。英特爾提供的加速版本Python,能在NumPy分配數組時保證最佳的alignment,所以NumPy、SciPy的運算函數,能從相應排列的 SIMD 內存訪問指令獲益。英特爾表示最大的提升來自於對內存複製和移動運算的優化。

更快——能用Conda方便地關閉/啟用

Anaconda英特爾渠道的最新加速版本 Python,為Python程序帶來顯著性能優化,而無需改變代碼。下載、安裝也很方便。

我真的特喜歡用Conda把它開啟/關閉這一功能。這方便了性能對比,並且讓我感到安心——沒有這個功能的話,我會對切換到超快的數學函數感到猶豫。

相關焦點

  • 華為發布新版MateBook D筆記本:11代酷睿、核顯性能1.6倍提升
    今天下午的發布會上,除了nova 8系列手機之外,華為還推出了升級版的MateBook D14及MateBook D15筆記本,100% sRGB屏,全線升級11代酷睿,核顯性能最多提升1.6倍。此外,MateBook D14/D15 2021的屏幕還提升了護眼水平,支持低藍光、無頻閃、防炫光等功能。MateBook D14/D15 2021讀兒歌升級重點就是處理器,從之前的十代酷睿也升級到了最新的十一代酷睿,也就是10nm Tiger Lake系列,最高可選酷睿i7-1165G7,集成Xe架構顯卡。
  • 華為發布新版MateBook D筆記本:11代酷睿、核顯性能1.6倍提升-華為...
    今天下午的發布會上,除了nova 8系列手機之外,華為還推出了升級版的MateBook D14及MateBook D15筆記本,100% sRGB屏,全線升級11代酷睿,核顯性能最多提升1.6倍。
  • intel十代酷睿桌面版CPU性能終極曝光,i5-10400成性價比之王
    十代酷睿處理器最詳細的一份性能測試(數據來自wccftech)。1000W電源、系統Windows 10 1909(對比測試為AMD Ryzen R7 3700X、R5 3600X CPU)Cinebench R15理論性能測試:擁有了超線程技術之後十代酷睿i5直接超越了上代的酷睿i9.提升可謂是巨大,但是對比AMD的R7 3700X 和 3600X,intel十代酷睿i5仍舊不敵。
  • 拒絕洩密門,酷睿i5 AES-NI技術解析
    以英特爾酷睿i5處理器為例,它擁有可自動智能超頻的睿頻加速技術,也有可提升性能的超線程技術,還有提升訪問速度的智能高速緩存,以及更低功耗、更快運算速度、更強性能和更小尺寸的32納米智能架構,帶來。但是,消費者往往忽視了一些內在的技術,比如我們今天要說的英特爾AES-NI。
  • 英特爾酷睿i5-9600K:遊戲,有它就夠了
    英特爾酷睿i9-9900K首次將i9帶到消費級,著實震撼;英特爾酷睿i7-9700K相較於前代英特爾酷睿i7-8700K,增加兩個核心,性能提升巨大;反觀英特爾酷睿i5-9600K,乍看之下與英特爾酷睿i5-8600K僅有頻率的提升,性能提升似乎不大,但真的是這樣嗎?
  • 最實用的主流U 酷睿i5-4590西安促銷
    Intel最新一代Haswell Refresh平臺處理器已經正式登陸市場,相比去年推出的Haswell架構處理器,雖然核心架構並沒有改變,但在各個價位段上都有主頻提升的型號,讓新裝機用戶有了性能更佳的產品可以選擇。
  • i5-10400F最深度測試-Intel,十代酷睿,i5-10400F...
    - 就CPU的綜合性能而言,i5-10400F大致介於銳龍5 2600X和銳龍5 3600之間。與i5-9400F相比提升了超過20%,從Intel自身來看其實提升幅度並不小。- 搭配獨顯的部分,i5-10400F由於主頻不高,遊戲性能並不出彩,但是依然可以高於銳龍5 3600。
  • i5 10400F相比9400F性能提升有多大?9400F和i5-10400F對比評測
    intel十代酷睿i5 10400F從命名來看,無疑是九代酷睿i5-9400F升級版,那麼i5 10400F相比9400F性能提升有多大?下面給大家分享一下i5-9400F和i5-10400F性能對比評測。我們先來了解一下intel酷睿i5 9400F和intel酷睿i5 10400F參數對比情況,初步來了解一下兩款CPU的差異。
  • 酷睿i5 我的數碼編輯利器
    回到北京後,在自己的酷睿 i5平臺上,才把這些都一一搞定。    下面,我通過兩套平臺對比,以幾個常見的應用來告訴大家什麼是影像處理的最佳配置。    主要原因是方案A的酷睿i5-750 四個物理的內核發揮了很大的作用。二. 照片的合併拼接    現在把幾張照片合併成一張照片是經常的事。面對連綿山脈或是寬延的海邊美景,你的拍攝位置並不理想,卻希望留下這幅完整影像。從左向右逐一拍攝一組連續的照片,通過Photoshop自帶的照片拼合工具生成一張全景照片。
  • 關於Intel七代酷睿 你必須知道這些
    在率先登場的Y、U系列產品中,Y系列屬於超低壓版,作為近三代酷睿中首發登場的U,在經歷了兩代Core m的命名後,Intel似乎覺得這樣的命名方式始終給人一種節能有餘,性能不足的印象。所以大筆一揮,在保持最低端的Core m3系列命名不變的基礎上將Core m5/m7命名改成了Core i5/i7,目的是為了向更高端的產品看齊!U系列的命名則不變,還是以Core i3/i5/i7相稱。
  • 酷睿i5-10500處理器天梯榜評測:溫度與功耗表現更好的酷睿i7-8700
    不過這兩款產品終歸是高端產品,面向的大都是發燒級玩家,而對於主流級玩家來說,酷睿i5級別的處理器顯然要更親民一些,而且第10代的酷睿i5處理器還全線配置了超線程技術,規格提升非常明顯,對於大部分玩家來說顯然更具吸引力。目前已經有多款第十代酷睿i5處理器進入市場,酷睿i5-10500就是首發產品之一。
  • Intel十代酷睿i5-10600K評測 勝過i7的中端神U
    Intel第十代桌面酷睿i5-10600K評測前不久,Intel正式發售了第十代智能英特爾酷睿臺式機處理器,代號Comet Lake-S,雖然還是基於14nm工藝製程,但是在單核性能、超頻特性等方面均有相應的提升。
  • 英特爾酷睿i5-9400F告訴你
    今年第一季度,英特爾酷睿i5-9400F首次亮相,不到半年這款6核心6線程的處理器就迅速攻陷了各大裝機市場,成為新一代大熱門。其神奇之處,不僅是因為它是英特爾主流級i5處理器的新品,還因為辦公遊戲皆可的通用性以及實惠的價格。不誇張的說,目前酷睿i5-9400F是英特爾最具性價比的產品。
  • Rocket Lake架構11代酷睿僅用於i5及以上系列,i3及以下仍為Comet...
    主板的變化由於第11代酷睿處理器(僅限i5、i7、i9)將採用全新設計的Rocket Lake架構,對供電設計提出了新的要求,不一定能安裝在B460或更級別的主板上,問題在於供電的設計。大部分Z490主板可以支持,個別低端的Z490主板就不行了。
  • 銳龍5 3600 VS 酷睿i5-10400F對比評測
    本文轉自【快科技】;一、前言:二款處理器規格如此接近5月20日,Intel解禁了第十代酷睿處理器,我們先後為大家帶來了i9-10900K與i5-10600K處理器的評測,不過就價格來說,i5-10400F才是十代酷睿明星產品,而今天我們除了對這款處理器進行測試之外
  • 選高性能i7還是高性價比i5 開學季酷睿筆記本總有一款適合你
    隨著新一代英特爾酷睿處理器的發布,較上一代同級別產品,增加了核心數量的八代酷睿處理器不管是在處理器性能還是效率上都有了大幅度的提升。其中主流筆記本電腦的處理器又分為i5處理器和i7處理器,選擇高性價比還是高性能成了困擾小夥伴選購時最大的困惑。
  • Tick-Tock逐步提升! 四五代酷睿對比測試
    【PConline 對比評測】全新的英特爾第五代酷睿處理器已經正式在市場上登陸,不少OEM已經跟進了配置五代酷睿的新產品。雖然五代酷睿比預期的要跳票一段時間,但似乎人們對於它的性能以及能耗關注的聲浪已經將跳票晚來的哀怨蓋過去了。
  • 英特爾酷睿i5及i7差別對比 哪款處理器更適合你?
    英特爾酷睿i5及i7可以說是市場中最主流的桌面處理器,大量的筆記本和臺式機都採用這兩款處理器。那麼,如果你要購買一款電腦,應該考慮i5還是i7呢?一起來看看它們之間的主要差異。  時鐘頻率  時鐘頻率也就是處理器的主頻,是衡量處理器性能的主要部分。由於酷睿i5和i7都建立在相同的架構,所以時鐘頻率越高、便意味著性能更出色。不過,需要注意的是四核處理器的主頻有時會比雙核低一些,這意味著高主頻的雙核處理器單核性能可能更強。
  • 14nm製造工藝終章 九代酷睿處理器首發性能測試
    接下來就讓我們進入今天的主角九代酷睿處理器。為了更好的幫助大家了解九代酷睿處理器的性能,我們將對i9-9900K、i7-9700K、i5-9600K的默頻性能以及三款處理器的超頻性能進行測試,本代酷睿處理器在GTX 1080顯卡下的性能與上代進行對比(受限於時間以及平臺關係,未選用RTX 20系戲顯卡對時下主流處理器進行性能對比)。
  • 十代酷睿i5對比三代銳龍5 追求性價比該買誰?
    所以為了向大家展示三代銳龍的真實性能,我們決定這次選用三代銳龍中的AMD銳龍5 3600和英特爾十代酷睿i5-10400F進行一次對比測試,給大家看看一看三代銳龍的實戰性能到底與同級別十代酷睿性能上會有什麼差別。