公开“英特尔多核平台编程优化大赛”优化报告及源代码

本系列文章欢迎转载、打印、分发等,但不可用于商业用途,任何时候必须保留全文完整,并声明转载自恋花蝶的博客(http://blog.csdn.net/lanphaday),谢谢。

这次Intel的优化比赛时间比较长,所以我也能够在周未和晚上的业余时间里参加了这个比赛,感觉学到很多东西,所以就在CSDN论坛上号召大家公开各自己的优化报告和源代码,得到了大家的响应,这让我由衷地高兴。参加比赛的很多高手,达到了匪夷所思的速度,这些公开的优化报告和源代码,必定能够增进大家的知识,我很乐意参与比赛,更乐意公开自己的优化报告和源代码。

在比赛中,我通过以面若干种优化方法优化后,我还尝试了手写SSE2进行汇编优化,但因为并不十熟悉汇编,所以没有能够成功。为了方便查看,制作了下面的数据比对表:
优化方法                                     运行时间                                        加速比(相对于上一种优化) 
最初未优化版本                              4.55s                                               -- 
用乘法替换pow函数                      3.28                                                1.38 
启用SSE2                                       2.84                                                1.15 
使用ICC                                          1.99                                                1.42 
使用MKL vdInvSqrt函数                 1.21                                               1.64 
使用OpenMP,static调度             0.95                                               1.27 
使用OpenMP,guided调度,倒序循环 0.64                                     1.48 
使用/fp:fast参数,针对CPU优化,利用数学公式减少常数运算 0.57 1.12 
提高cache命中率                           0.51                                                  1.11 
参照上表,我们可以看出用乘法替换pow函数、使用ICC、使用MKL和使用guided调用方法和倒序循环取得了极佳的优化效果,这些对以我们以后在其它工作中进行优化提供了高阶的指导方针。

因为使用WPS进行排版的文档粘贴到CSDNblog时效果不好,所以变成上图那样了,呵呵,大家可以下载完整版本的文档跟源码来查看。下面是文档的目录:

程序编译和运行的方法                                                                                                  1
1、编辑环境:                                                                                                                   1
2、编译步骤:                                                                                                                   1
3、运行方法:                                                                                                                   3
优化工作的主要步骤与优化方法的说明                                                                    3
1、Vtune分析热点,替换pow函数为两数相乘的宏,减少变量使用                         4
2、启用SSE2优化                                                                                                            4
3、使用ICC                                                                                                                       5
4、使用MKL vdInvSqrt()函数                                                                                          5
5、并行,OpenMP的ShowTime                                                                                   5
6、新并行!TProfiler临危救主!                                                                                   6
7、零碎而有效的几点优化方式                                                                                      7
8、Vtune,王者归来,提高cache命中率                                                                    7
数据比对                                                                                                                            7
参赛感受                                                                                                                            8

大家可以从以下地址下载优化报告和源代码压缩包:

http://www.cppblog.com/Files/laiyonghao/LaiYonghao_potential.rar

公开“英特尔多核平台编程优化大赛”优化报告及源代码相关推荐

  1. 英特尔多核平台编程优化大赛报告

    前言 本次优化使用的CPU是Intel Xeon 5130 主频为2.0GHz 同Intel酷睿2一样是基于Core Microarchitecture 的双核处理器.本次优化在Intel的工具帮助下 ...

  2. 英特尔多核平台编码优化大赛就顺便试试身手了

    这段正好在看<并行编程模式>这本书,看见英特尔多核平台编码优化大赛就顺便试试身手了,由于本人对汇编不熟,intel的编译器和工具以是临时抱佛脚,所以比起其他高手应该还差得多了,所以只将重点 ...

  3. 在英特尔® 架构平台上开发和优化基于 NDK 的 Android 游戏应用

    作者:杜伟 Android 原生开发套件 (NDK) 是 Android SDK 的附带工具.借助该工具,您可以使用诸如 C 和 C++ 等本地代码语言实现部分应用. 您可以从以下网址下载该 NDK ...

  4. Unity3d面向英特尔® x86 平台的 Unity* 优化指南: 第 3 部分

    目录 编辑器优化 遮挡剔除 LOD:细节级别 阴影 使用一个摄像头 渲染队列排序 光照贴图 针对复杂模型,使用简单的碰撞器代替网格碰撞器 返回至第 2 部分教程: 面向英特尔® x86 平台的 Uni ...

  5. Unity3d面向英特尔 x86 平台的 Unity* 优化指南: 第 2 部分

    目录 优化 脚本优化 脚本视锥剔除和协同例程 智能内存管理 缓存频繁使用的对象和组件 使用 Unity 物理系统的最佳实践 禁用完全透明对象 返回至教程第 1 部分: 面向英特尔 x86 平台的 Un ...

  6. CSDN 英特尔多核计算技术版精华贴整理(1)

    CSDN 英特尔多核计算技术版精华贴整理(1) 蒙celineshi版主厚爱,我现在也忝列英特尔多核计算技术版版主了.上任时日虽然不久,但一直都想把本版最有价值贴子(MVP?)整理起来奉献给大家.拖之 ...

  7. 英特尔® 至强融核™ 处理器优化教程

    原文链接  下载文件 1. 简介 本教程将介绍多种优化应用,以支持其在英特尔® 至强融核™ 处理器上运行. 本教程中的优化流程分为三个部分: 第一部分介绍用于对代码进行矢量化(数据并行化)处理的通用优 ...

  8. 【英特尔oneAPI——异构计算编程】

    英特尔oneAPI--异构计算编程 初识oneAPI oneAPI简介 选择oneAPI的理由 使用 oneAPI 可以做什么 oneAPI包含的内容 异构计算编程 什么是异构计算编程 异构编程学习参 ...

  9. [转]《英特尔多核/多线程技术》

    Technorati 标签: 多核,多线程,intel 原文地址:http://software.intel.com/zh-cn/articles/32067/ 提示:相关章节的电子版请到原文地址页下 ...

最新文章

  1. 注意,免费的 CentOS 落幕,将于本月底终止维护!
  2. Linux下C语言的调试--转
  3. 成功解决but is 0 and 2 (computed from start 0 and end 9223372 over shape with rank 2 and stride-1)
  4. SpringBoot配置文件绑定到Java Bean
  5. 更换高端游戏计算机故障电源,加内存条后电脑重启的解决办法游戏设备故障解决分享!...
  6. 远程控制 开源 鳄梨_开发人员关系与鳄梨的共同点
  7. hadoop合并日志_【hadoop】24.MapReduce-shuffle之合并
  8. 你们身边有没有程序媛?
  9. R︱Softmax Regression建模 (MNIST 手写体识别和文档多分类应用)
  10. 【深度学习】卷积神经网络(Convolutional Neural Network)
  11. FireMonkey 做界面的一个小技巧
  12. rtl8111gr服务器系统,6款主板板载网卡对比
  13. Excel的FIND函数及其用法
  14. 360全景的原理与展示
  15. UG CAM 开发获取工序导航器当前选择的操作、程序组、几何体、刀具方法,获得名字并修改名字
  16. 德声科技代理M-Live音视频播放器
  17. Centos7下安装FastDFS服务
  18. 二十三、从句_地点原因方式条件状语从句
  19. 33岁的外行妈妈,转行金融业可行吗?(此贴仅限于个人感悟)
  20. busybox rootfs

热门文章

  1. Pxxx-本地套接字通信
  2. 指标实现层级_层次分析法指标权重的确定(C语言实现)
  3. Python + Selenium(二十六)模拟手机浏览器
  4. H5 和 C3 的新特性
  5. Java集合(List、Set)
  6. 基于JavaScript实现前端数据多条件筛选功能
  7. Visual studio code 汉化插件
  8. vector的初始化_C++的vector使用方法
  9. [转载]十六进制数的两种不同表示:0x和H
  10. JSTL : 标签库详解