MIC简介

MIC简介

一:MIC是什么?

(一)MIC是架构名称-Intel Many Integrated CoreIntel集成众核)

(二)众核协处理器(Co-Processor

       --通过PCIECPU通信

       --众核、重核

(三)基于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地址

通用的编程模型、语言和工具链

编程模型:MPIOpenMPOpenCl

编程语言:CC++Fortran

编程工具:vtuneMPITrace

编程库:MKL

编译器:icc/icpc/ifort

 

三:为什么要使用MIC

(一)并行计算式未来发展趋势

     通用架构并行

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

       --异构众核并行(细粒度)

         CPU+GPU异构协同计算

         CPU+MIC异构协同计算

(二)MIC技术优势

     1.微异构架构:开发和维护一份代码,单节点资源最大化利用(CPUMIC,不需要像GPU一样重新编译)

     2.高性能与低功耗

     3.软件编程高效

        MIC编程模式:

          MIC五种应用模式

             --串行+并行模式

                 并行度不高

                 CPU hosted

           --串行+高并行模式

               Offload(常用)

          --对称模式(Symmetric模式)

               进程并行(MPI

          --高并行+串行模式

                MIC hosted

                CPU co-processed

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

                MIC hosted

     GPU只支持offload模式(串行+高并行模式)

 

4.前期快速移植

1MIC移植:offload模式

--引语方式,类似OpenMP,不需要重写代码

--沿用原有OpenMPMPIOpenCL编程模型

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);

}

2GPU移植:offload模式

--采用新的CUDA编程模型,程序需要重写

--需要烤炉线程索引,数据映射等细节

 

5.编程复用性:CPUMIC公用代码

 

6.工具链丰富

 

7.计算规模易扩展

 

 

(四)什么时候使用MIC

  适合MIC的应用

  使用前提:完全拥有源代码(必须):软件自身源码+数学库源码

  应用所具备的特征

--高度并行

  并行度带到百级,最好千级以上

  并行效率较高,线程可扩展性好,能扩展到200以上线程并行

--计算密集型应用,F/B

  计算/PCIE传输比例高,计算能掩盖PCIE输出

  计算时间/访存时间高,没现成内存带宽较低

--SIMD模式,热点算法为向量化计算,向量化程度高

--数据可分块处理,突破MIC容量的瓶颈

--访存可实现连续,L1/L2Cache命中率高(局部性原理)

 

 

MIC VS GPUMICGPU的比较

算法特性

MIC

GPU

细粒度并行密集计算

ok

ok

并发性比较低

满足200个并行线程

线程+指令级并行

需要改变算法,增加并行性

多逻辑分支(if..else

ok

严重影响性能,需要设计并行算法来去除分支

大程序,复杂的结构

ok(用引语就好)

移植和优化周期长

并行外设方案,热分散

ok

no

 

转载于:https://www.cnblogs.com/qysqys/p/5184209.html

mic与gpu对比,GPGPU与MIC定位相似,两者都是相对于CPU具有较高性价比的高性能解决方案,甚至连外形都是一样使用PCI-E插槽的板卡。但对于“核”这个概念来说,两者却有很大的不同。GPGPU中所说的核,以CUDA为例,是指一个SP(即流处理器),SP的功能只有计算,以NVIDIA的Fermi GPU为例,32个SP组成一个SM(流处理器群),一个SM 才有两个控制单元。也就是说每16个GPU的“核”,必须执行同一条指令。而MIC得设计思路与GPGPU完全不同。MIC的每个“核”,可以简单看作一个X86核心,也就是与现有PC机或小型服务器上的CPU核心相同的核。因此MIC编程可以最大限度地沿袭已有CPU上的并行程序,甚至可以一定程度上认为MIC上的每个“核”都是独立的节点,亦即将MIC作为一个超小型的集群。MIC的“核”虽然是x86架构,虽然单核的功能比GPGPU的核强大不少,但要指望单兵作战接近主流CPU,暂时还是不现实的。MIC依靠和GPGPU一样,靠人海战术。说起“人数”,GPGPU动辄上百核,MIC只有几十核,几十单核性能再强,在并行应用中也掀不起多少浪花。由于MIC的核心是Intel的CPU,核心数即使上不去了,Intel处理器可以超线程。在MIC上,每个核心能同时并发执行4个线程,而且这4个线程被Intel成为“硬件线程”,其性能大幅提升,几乎可以把每个线程看作真正的核心。因此,MIC“执行核”的数量,核GPGPU实际差不多。 另外,MIC采用了SMP结构,以一致性共享缓存为中心,这种设计使得MIC可以使用传统CPU的编程模型,而不需要针对性的硬件,设计新的程序结构。 MIC对现有程序改动之小还体现在编程简易性和工具方面。编程简易性上,MIC常用的offload模式只需要加上少数几条编译指导语句,就可以使程序利用MIC进行运算,而此时的程序源代码,是可以与传统的CPU程序共用的,减少了维护成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值