版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Multicore
ProgrammingInstructor:
Zhang
Weizhe
(
)Computer
Network
and
Information
Security
TechniqueResearch
Center
,
School
of
Computer
Science
andTechnology,
Harbin
Institute
of
TechnologyLab
1.1:
In
CompilerSwitchesC++编译器英特尔C++编译器的主要功能与优点:支持英特尔多处理器以及现有的英特尔处理器与体系结构,针对英特尔处理器的先进优化功能可以帮助产生出众的应用程序性能。与针对
IA-32
的
VisualC++、Visual
C++
6.0
代码以及
VisualC++
.NET
保持跨体系结构的兼容性。针对
英特尔处理器的先进优化功能可以帮助产生出众的应用程序性能。LinuxWindows作用-O0/Od优化-g/Zi生成标记-O1/O1优化二进制代码-O2/O2优化速度(默认)-O3/O3优化数据缓存LinuxWindows作用-ip/Qip优化编译单个文件-ipo/Qipo通过内联函数优化交叉编译多个文件高级开关LinuxWindows作用-Xw/QxW为Pentium
4等支持MMX、SSE和SSE2指令的处理器专门优化-xP-axP/Qxp/Qaxp为酷睿等支持MMX
、SSE
、SSE2和SSE3指令的处理器专门优化高级开关LinuxWindows作用-openmp/Qopenmp打开OpenMP优化开关-openmp_report/Qopenmp_report提供优化报告、错误LinuxWindows作用-tckeck/Qtcheck支持线程检查器监测线程C++编译器(续)英特尔C++编译器支持以下语言标准:ANSI/ISO
标准,用于
C
语言编译
(ISO/IEC
9899:1990)ANSI/ISO
标准(ISO/IEC
14882:1998)用于C++语言OpenMP*
规范
2.5
版英特尔C++编译器与其他常用工具保持兼容,可以集成到广泛使用的开发环境,并且同其他广泛使用的编译器保持着特性源与二进制方面的兼容性。集成了
Visual
Studio
2005、VisualStudio.NET*
2002/2003
以及Visual
Studio
98提供扩展32
位和64
位多核英特尔处理器支持。C++编译器实验实验要求硬件英特尔多核处理器512
MB内存20
GB
硬盘支持32位像素显卡■Windows
Server2003Visual
Studio*.NET
2003英特尔C++编译器10.0或更高版本英特尔VTune性能分析器9.0或更高版本英特尔Thread
Checker
线程检查器3.1
或更高版本英特尔
Thre rofiler
线程
3.1
或更高版本实验代码C++编译器实验——高阶优化使用高阶优化编译开关(-O3)先清理以前生成的文件:nmake
/f
raytrace2.mak
clean打开-O3开关编译文件:nmake
/f
raytrace2.mak
CF="-O3"运行渲染图像程序:raytrace2
320
240Press
‘g
’
to
beginthe
renderPress
‘q
’
to
quit
the
application将屏幕上显示的运行时间记录下来
。C++编译器实验——原始编译用微软C++编译器编译将光盘内的code文件夹整个到硬盘,如E盘根 ,在上面令行界面输入:如下命令跳转到RayTrace2cd
E:\code\CompilerSwitches\raytrace2\source\RayTrace2\然后清理以前生成的文件:nmake
/f
raytrace2.mak
clean编译文件:nmake
/f
raytrace2.mak
CPP=cl.exe运行渲染图像程序:raytrace2
320
240Press‘g
’
to
begin
the
renderPress
‘q
’
to
quit
the
application将屏幕上显示的运行时间记录下来
。用英特尔C++编译器编译先清理以前生成的文件:nmake
/f
raytrace2.mak
clean编译文件:nmake
/f
raytrace2.mak运行渲染图像程序:raytrace2
320
240Press‘g
’
to
begin
the
renderPress
‘q
’
to
quit
the
application将屏幕上显示的运行时间记录下来
。C++编译器实验——过程间优化使用过程间优化开关(-Qipo)先清理以前生成的文件:nmake
/f
raytrace2.mak
clean打开-O3开关编译文件:nmake
/f
raytrace2.mak
CF="-Qipo"
LF="-Qipo"运行渲染图像程序:raytrace2
320
240Press
‘g
’
to
beginthe
renderPress
‘q
’
to
quit
the
application将屏幕上显示的运行时间记录下来
。C++编译器实验——
导引优化使用
导引优化开关(-Qprof_gen,
-Qprof_use)先清理以前生成的文件:nmake
/f
raytrace2.mak
clean编译产生 导引优化二进制指令:nmake
/f
raytrace2.mak
CF="-Qprof_gen
-Qprof_dir
..\RayTrace2"运行渲染图像程序:raytrace2
320
240Press
‘g
’
to
begin
the
renderPress
‘q
’
toquit
the
application将屏幕上显示的运行时间记录下来
。注:因为要生成使用刚才生成的导引优化的记录信息,会消耗大量时间。导引优化信息再次编译:nmake
/f
raytrace2.mak
cleannmake
/f
raytrace2.mak
CF="-Qprof_use
-Qprof_dir..\RayTrace2"注:可忽略“no.dpi
information”提示。运行渲染图像程序:raytrace2
320
240Press
‘g
’
to
begin
the
renderPress
‘q
’
toquit
the
application将屏幕上显示的运行时间记录下来
。C++编译器实验——矢量化优化用矢量化开关优化(-QxP)先清理以前生成的文件:nmake
/f
raytrace2.mak
clean打开-O3开关编译文件:nmake
/f
raytrace2.mak
CF="-QxP"运行渲染图像程序:raytrace2
320
240Press
‘g
’
to
beginthe
renderPress
‘q
’
to
quit
the
application将屏幕上显示的运行时间记录下来
。C++编译器实验——综合优化使用上述所有优化开关(-O3,-QxP,
IPO
and
PGO)先清理以前生成的文件:nmake
/f
raytrace2.mak
clean打开-O3开关编译文件:nmake
/f
raytrace2.mak
CF="-O3
-QxP
-Qipo
-Qprof_use
-Qprof_dir
..\RayTrace2"
LF="-Qipo"导引优化信息,使用之前第四小节生成的信息即注:不必再次收集可。运行渲染图像程序:raytrace2
320
240Press
‘g
’
to
begin
the
renderPress
‘q
’
to
quit
the
application将屏幕上显示的运行时间记录下来
。Lab
1.2:
Vtune
PerformanceyzerVTune性能分析器英特尔VTune性能分析器的主要功能包括:取样功能、调用图功能、计数器监视器以及经过改进的In
调优助手在Windows下同时提供图形化与命令行界面允许选择是否与Visual
Studio
.NET
集成为基于IA-32与英特尔安腾处理器的Linux应用程序提供
支持可以对基于In
PXA250、PXA255
与PXA26x
处理器的应用程序进行取样VTune性能分析器——取样VTune性能分析器中的取样功能可以帮助开发者分辨程序中最消耗时间的函数和模块,并给出操作系统和应用程序的详细视图。VTune性能分析器——调用曲线图调用曲线图通过分析程序运行时函数的 点和出口点,生成一张调用曲线图并且确定调用顺序和显示关键路径。VTune性能分析器——计数器器计数器 器在运行时 系统活动,确定是否会因为可用内存减少或文件输入/输出性能问题而导致应用程序速度变慢。VTune性能分析器——调优助手根据丰富的知识库分辨性能问题,自动
代码改进办法,帮助提高开发者的工作效率。它提供了基于性能计数器的视图,以及关于Windows操作系统和英特尔
处理器的建议,以及源代码的改进建议。性能分析器实验——寻找热点区域问题:gzip.exe中哪个函数消耗了最多的时间?gzip.exe中哪个函数CPI最高?
gzip.exe源代码中哪一行时钟周期最多?gzip.exe是多线程程序吗?Lab
1.3:
In
MKLMKL数学 函数库英特尔数学 函数库(MKL)是一套经过高度优化的、线程安全的数学例程、函数,并在此基础上加入了在
Linux集群环境下的ScaLAPACK(Scalable
LAPACK),它们专门针对计算性能要求很高的科学、工程及金融等领域的应用程序而设计。此内核库的功能领域包括:线性代数——BLAS、LAPACKScaLAPACKPARDISO稀疏矩阵解算器离散
变换(Discrete
Fouriertransforms,DFTs)矢量数学库(Vector
Math
Library,VML)矢量统计库(Vector
Statistical
Library,VSL)——随机数生成器MKL数学函数库性能英特尔安腾2
处理器FFT单双精度,1维实数FFT
在n=2、4、8、16、32、64
和128时速度最多提高了3
倍VMLLn、Log10、Asin、Acos、Sinh、Cosh
函数的性能提高了25-83%长矢量(双精度n>250,000
或单精度n>500,000)的性能平均值提
高了60%以上。这使每个元素的性能限定在小矢量性能的20%以内。VSL和多元 分布 的性能分别提高了
35%
和15%。MKL数学函数库性能(续)英特尔酷睿2
双核处理器BLASZDOTU、ZDOTC-缓存数据的性能提高了10-35%VSL性能提高了大约13%VMLVML
中Div
和Inv
函数的性能提高了2.7
倍Asin
和Acos
函数的性能提高了5-20%其他提升MKL数学函数库实验——矩阵乘法演示了原始计算、一级BLAS、二级BLAS、三级BLAS的性能特征和它们之间的差异。请按照以下实验步骤执行:定位到文件夹code\MKL_Overview\DGEMM,打开文件mkl_lab_solution.c,仔细查看4段不同方法实现同一矩阵乘法的代码;检查文件Makefile中的include和library路径,修改为与本机一致;打开开始菜单->所有程序->In
(R)
Software
Development
Tools->In(R)
C++
Compiler
9.0->Build
Environment
forIA-32Applications,输入:nmake,编译完成后
下会生成一个matrix.exe文件,输入:matrix.exe运行程序,会提示输入矩阵的维数(输入的数字尽量大些,如1000),记录运行结果并观察它们的差异:roll_your_own:
DDOT:
DGEMV:
DGEMM:
MKL默认使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版旧机动车在线评估及购买合同范本3篇
- 金融科技招投标承诺函样本
- 水利水电冲击钻作业合同
- 基层医疗卫生机构村医生聘用
- 精英社区房产打印社交圈层
- 学校活动学生接送客车租赁合同
- 农业机械焊接施工合同
- 2025版车抵押财产保全执行合同范本3篇
- 农业项目电子招投标实施办法
- 工业厂房电梯施工合同
- 锚杆密实度检测
- 跳绳兴趣小组活动总结
- 文物保护项目加固工程监理细则
- 肋骨骨折查房演示
- 五年级语文备课组工作总结三篇
- 浙江农林大学土壤肥料学
- “戏”说故宫智慧树知到答案章节测试2023年中央戏剧学院
- 四大名著《西游记》语文课件PPT
- 三年级道德与法治下册第一单元我和我的同伴教材解读新人教版
- 红星照耀中国思维导图
- YY/T 0506.8-2019病人、医护人员和器械用手术单、手术衣和洁净服第8部分:产品专用要求
评论
0/150
提交评论