英特尔® 集成众核架构的编程和编译

英特尔® MIC 架构的编译方法

借助该编译方法,您可以确定在英特尔® 集成众核架构(英特尔® MIC 架构)上是否能够实现应用的性能提升

按照顺序完成以下每项任务。

  1. 面向英特尔® MIC 架构进行应用的适用性分析
  2. 对用户源代码更改进行预测

              缓存模块化技术

              内存布局转换

              大型页面考虑因素

              数据访问的元素智能对齐要求

  • 全新用户编译器的基本用法
  1.     编译器要素以及附带的 QUICKLAB 练习
  2.     编译指示/指令
  • 高效并行化
  1.     OpenMP* - 英特尔编译器 OpenMP 入门  

           缓存模块化技术

           内存布局转换

           大型页面考虑因素

           数据访问的元素智能对齐要求

  2.     使用英特尔® MPI实现并行化
  3.     借助英特尔® Cilk™ Plus 实现并行化
  4.     使用英特尔® 线程构建模块(英特尔® TBB)实现并行化
  • 矢量化要点
  1.     英特尔® Cilk™ Plus 阵列标记和基本函数支持 C 语言或 C++ 用户实现矢量化
  2.     导向自动并行化 (GAP)
  3.     Fortran 阵列数据、参数和矢量化
  4.     矢量化和优化报告o     

         vec-report 和全新 -vec-report6 选项概述

        如何将 vec-report 行号与源代码行号联系起来

  5.     数据对齐有助于实现矢量化
  6.     指针别名与矢量化
  7.     外层循环矢量化
  8.     通过英特尔® Cilk™ Plus 阵列标记(面向 C/C++ 用户)实现外层循环矢量化
  9.     权衡阵列标记长矢量和短矢量编码 (面向 C/C++ 用户)
  10.     使用全矢量和 -opt-assume-safe-padding 选项
  11.     使用随机数函数实现循环矢量化
  12.     避免人工循环展开
  13.     其它常见矢量化技巧
  1.     浮点模型  - 平衡性能与精确度和再生性
  2.     至强和 MIC 之间的浮点差异
  3.     低精度优化
  4.        英特尔® MIC 架构预取
  5.     英特尔® MIC 架构上的多线程调度
  6.     英特尔® MIC 架构的数据流库 (Streaming Stores)
  7.     选择性地使用 gatherhint/scatterhint 指令
  8.     数据首个触摸考虑因素和优化
  • 本机和卸载编程模式
  1.     构建面向英特尔® MIC 架构的本机应用
  2.     异构卸载编程模式
  3.     高效使用面向卸载的编译特性
  4.     异步卸载
  5.     如何实现最高传输速率
  6.     减少与卸载相关内存分配费用的技术
  7.     充分利用卸载指针关联和 alloc/into 关键词
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione