天天看點

MIC簡介

MIC簡介

一:MIC是什麼?

(一)MIC是架構名稱-Intel Many Integrated Core(Intel內建衆核)

(二)衆核協處理器(Co-Processor)

       --通過PCIE與CPU通信

       --衆核、重核

(三)基于x86架構和x86指令集

二:MIC特性

MIC卡:

最高61 cores

主頻1.2GHz

244 Threads 但是最多能開240個線程,有4個線程跑OS

最高記憶體容量16GB,記憶體帶寬352GB/s

單卡雙精度峰值性能>1.2TFLOPS

MIC Core的組成

X86架構普通指令單元

512bit向量寬度VPU

内嵌LinuxOS,可配置IP位址

通用的程式設計模型、語言和工具鍊

程式設計模型:MPI、OpenMP、OpenCl

程式設計語言:C、C++、Fortran

程式設計工具:vtune、MPITrace

程式設計庫:MKL

編譯器:icc/icpc/ifort

三:為什麼要使用MIC?

(一)并行計算式未來發展趨勢

     通用架構并行

       --同構多核并行(粗粒度)

       --異構衆核并行(細粒度)

         CPU+GPU異構協同計算

         CPU+MIC異構協同計算

(二)MIC技術優勢

     1.微異構架構:開發和維護一份代碼,單節點資源最大化利用(CPU和MIC,不需要像GPU一樣重新編譯)

     2.高性能與低功耗

     3.軟體程式設計高效

        MIC程式設計模式:

          MIC五種應用模式

             --串行+并行模式

                 并行度不高

                 CPU hosted

           --串行+高并行模式

               Offload(常用)

          --對稱模式(Symmetric模式)

               程序并行(MPI)

          --高并行+串行模式

                MIC hosted

                CPU co-processed

          --高并行模式(Native模式)

                MIC hosted

     GPU隻支援offload模式(串行+高并行模式)

4.前期快速移植

(1)MIC移植:offload模式

--引語方式,類似OpenMP,不需要重寫代碼

--沿用原有OpenMP、MPI、OpenCL程式設計模型

Main()

{ double pi=0.0f;long i;

#pragma offload target (mic)

#pragma omp parallel for reduction(+:pi)

for(i=0;i<N;i++)

{

double t=(double)((i+0.5)/N);pi+=4.0/(1.0+t*t);

}

printf(“pi=%f\n”,pi/N);

}

(2)GPU移植:offload模式

--采用新的CUDA程式設計模型,程式需要重寫

--需要烤爐線程索引,資料映射等細節

5.程式設計複用性:CPU和MIC公用代碼

6.工具鍊豐富

7.計算規模易擴充

(四)什麼時候使用MIC

  适合MIC的應用

  使用前提:完全擁有源代碼(必須):軟體自身源碼+數學庫源碼

  應用所具備的特征

--高度并行

  并行度帶到百級,最好千級以上

  并行效率較高,線程可擴充性好,能擴充到200以上線程并行

--計算密集型應用,F/B高

  計算/PCIE傳輸比例高,計算能掩蓋PCIE輸出

  計算時間/訪存時間高,沒現成記憶體帶寬較低

--SIMD模式,熱點算法為向量化計算,向量化程度高

--資料可分塊處理,突破MIC容量的瓶頸

--訪存可實作連續,L1/L2Cache命中率高(局部性原理)

(MIC VS GPU)MIC和GPU的比較

算法特性 MIC GPU
細粒度并行密集計算 ok ok
并發性比較低

滿足200個并行線程

線程+指令級并行

需要改變算法,增加并行性
多邏輯分支(if..else) ok 嚴重影響性能,需要設計并行算法來去除分支
大程式,複雜的結構 ok(用引語就好) 移植和優化周期長
并行外設方案,熱分散 ok no

繼續閱讀