您現在的位置:海峽網>新聞中心>IT科技>科技數碼
      分享

      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 隨時加速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 這是我的快速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把它開啟/關閉這一功能。這方便了性能對比,并且讓我感到安心——沒有這個功能的話,我會對切換到超快的數學函數感到猶豫。

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

      責任編輯:海凡

      最新科技數碼 頻道推薦
      進入新聞頻道新聞推薦
      福州:鮮花代替紙錢 “云端”寄托思念
      進入圖片頻道最新圖文
      進入視頻頻道最新視頻
      一周熱點新聞
      下載海湃客戶端
      關注海峽網微信
      ?

      職業道德監督、違法和不良信息舉報電話:0591-87095414 舉報郵箱:service@hxnews.com

      本站游戲頻道作品版權歸作者所有,如果侵犯了您的版權,請聯系我們,本站將在3個工作日內刪除。

      溫馨提示:抵制不良游戲,拒絕盜版游戲,注意自我保護,謹防受騙上當,適度游戲益腦,沉迷游戲傷身,合理安排時間,享受健康生活。

      CopyRight ?2016 海峽網(福建日報主管主辦) 版權所有 閩ICP備15008128號-2 閩互聯網新聞信息服務備案編號:20070802號

      福建日報報業集團擁有海峽都市報(海峽網)采編人員所創作作品之版權,未經報業集團書面授權,不得轉載、摘編或以其他方式使用和傳播。

      版權說明| 海峽網全媒體廣告價| 聯系我們| 法律顧問| 舉報投訴| 海峽網跟帖評論自律管理承諾書

      友情鏈接:新聞頻道?| 福建頻道?| 新聞聚合
      亚洲国产另类久久久精品黑人| 麻豆亚洲av熟女国产一区二| 日韩精品一区二区亚洲AV观看| 亚洲视频在线一区二区| 亚洲AV无码一区二区三区电影| 亚洲w码欧洲s码免费| 亚洲午夜电影在线观看| 亚洲人成在线播放网站岛国| 亚洲VA中文字幕不卡无码| av在线亚洲欧洲日产一区二区| 亚洲AV蜜桃永久无码精品| 国产产在线精品亚洲AAVV| 在线视频亚洲一区| 亚洲?V无码成人精品区日韩| 久久久久亚洲国产AV麻豆| 欧美亚洲国产SUV| 日韩亚洲国产综合久久久| 色窝窝亚洲AV网在线观看| MM1313亚洲精品无码久久| 亚洲av无码成人影院一区| 国产精品无码亚洲精品2021| 亚洲国产成人久久综合| 亚洲aⅴ无码专区在线观看春色| 亚洲国产精品成人综合色在线| 亚洲AV综合色区无码一二三区| 亚洲国产成人精品无码区二本| 亚洲欧美一区二区三区日产| 亚洲AV无码男人的天堂| 免费亚洲视频在线观看| 亚洲精品tv久久久久| 国产国拍亚洲精品福利 | 亚洲熟妇无码久久精品| 亚洲婷婷在线视频| 亚洲人成人77777网站不卡| 亚洲视频无码高清在线| 亚洲精品天堂成人片AV在线播放| 亚洲AV永久无码精品放毛片| 亚洲 小说区 图片区 都市| 中文字幕亚洲无线码a| 亚洲AV无码一区东京热| 亚洲高清日韩精品第一区|