zoukankan      html  css  js  c++  java
  • 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 ”,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

  • 相关阅读:
    画了朵花
    定位
    浮动
    盒模型
    html+css笔记1
    闭包
    高阶函数
    函数
    Map Set iterable
    git stash clear/drop 后代码如何恢复
  • 原文地址:https://www.cnblogs.com/qysqys/p/5184209.html
Copyright © 2011-2022 走看看