版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AgendaIntroductionWhoCares?DefinitionLoopDependenceandRemovalDependencyIdentificationLabSummaryIntroductionLoopsmustmeetcertaincriteria…IterationIndependenceMemoryDisambiguationHighLoopCountEtc…WhoCares实现真正的并行:OpenMPAutoParallelization…显式的指令级并行ILP(InstructionLevelParallelism)StreamingSIMD(MMX,SSE,SSE2,…)SoftwarePipeliningonIntel®Itanium™ProcessorRemoveDependenciesfortheOut-of-OrderCoreMoreInstructionsruninparallelonIntelItanium-Processor自动编译器并行HighLevelOptimizationsDefinitioninta[MAX];for(J=0;J<MAX;J++){ a[J]=b[J];}LoopIndependence:IterationYofaloopisindependentofwhenorwhetheriterationXhappens图例OpenMP:TrueParallelismSIMD:VectorizationSWP:SoftwarePipeliningOOO:Out-of-OrderCoreILP:InstructionLevelParallelismGreen:BenefitsfromconceptYellow:SomeBenefitsfromConceptRed:NoBenefitfromConceptAgendaDefinitionWhoCares?LoopDependenceandRemovalDataDependenciesRemovingDependenciesDataAmbiguityandtheCompilerDependencyRemovalLabSummaryFlowDependencyReadAfterWriteCross-IterationFlowDependence:Variableswrittenthenreadindifferentiterationsfor(J=1;J<MAX;J++){ A[J]=A[J-1];} A[1]=A[0];
A[2]=A[1];Anti-DependencyWriteAfterReadCross-IterationAnti-Dependence:Variableswrittenthenreadindifferentiterationsfor(J=1;J<MAX;J++){ A[J]=A[J+1];}
A[1]=A[2]; A[2]=A[3];OutputDependencyWriteAfterWriteCross-IterationOutputDependence:Variableswrittenthenwrittenagaininadifferentiterationfor(J=1;J<MAX;J++){ A[J]=B[J]; A[J+1]=C[J];} A[1]=B[1];
A[2]=C[1];
A[2]=B[1]; A[3]=C[1];IntraIterationDependencyDependencywithinaniterationHurtsILPMaybeautomaticallyremovedbycompilerK=1;for(J=1;J<MAX;J++){ A[J]=A[J]+1; B[K]=A[K]+1; K=K+2;} A[1]=A[1]+1; B[1]=A[1]+1;for(J=1;J<MAX;J++){ A[J]=A[0]+J;}RemoveDependenciesBestChoiceRequirementfortrueParallelismNotalldependenciescanberemovedfor(J=1;J<MAX;J++){ A[J]=A[J-1]+1;}for(J=1;J<MAX;J+=2){ A[J]=A[J-1]+B[J]; A[J+1]=A[J-1]+(B[J]+B[J+1]);}IncreasingILP,withoutremovingdependenciesGood:UnrollLoopMakesurethecompilercan’tordidn’tdothisforyouCompilershouldnotapplycommonsub-expressioneliminationAlsonoticethatifthisisfloatingpointdata-precisioncouldbealteredfor(J=1;J<MAX;J++){ A[J]=A[J-1]+B[J];}InductionVariablesInductionvariablesareincrementedoneachtripthroughtheloopFixbyreplacingincrementexpressionswithpurefunctionofloopindexi1=0;
i2=0;
for(J=0,J<MAX,J++){
i1=i1+1;
B(i1)=…i2=i2+J;
A(i2)=…
}for(J=0,J<MAX,J++){
B(J)=...
A((J**2+J)/2)=...
}ReductionsReductionscollapsearraydatatoscalardataviaassociativeoperations:
TakeadvantageofassociativityandcomputepartialsumsorlocalmaximuminprivatestorageNext,combinepartialresultsintosharedresult,takingcaretosynchronizeaccessfor(J=0;J<MAX;J++)
sum=sum+c[J];DataAmbiguityandtheCompilervoidfunc(int*a,int*b){ for(J=0;J<MAX;J++){ a[J]=b[J]; }}Aretheloopiterationsindependent?TheC++compilerhasnoideaNochanceforoptimization-InordertorunerrorfreethecompilerassumesthataandboverlapFunctionCallsfor(J=0;J<MAX;J++){ compute(a[J],b[J]); a[J][1]=sin(b[J]);}GenerallyfunctioncallsinhibitILPExceptions:TranscendentalsIPOcompilesFunctionCallswithStateManyroutinesmaintainstateacrosscalls:MemoryallocationPseudo-randomnumbergeneratorsI/OroutinesGraphicslibrariesThird-partylibrariesParallelaccesstosuchroutinesisunsafeunlesssynchronizedCheckdocumentationforspecificfunctionstodeterminethread-safetyfor(J=MAX-1;J>=0;J--){<...>compute(J,...)<...>}ASimpleTestReversetheloop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子元器件市场双12宣传及营销方案
- 2026年春季健康养生知识常识
- 2026年幼儿园防汛知识普及
- 2026年化学实验室知识竞赛活动方案
- 2026年初中语文教学知识
- 数据结构(Java语言版)(第2版)(微课版) 教案9-2:动态表查找
- 2026年数据分析能力测试题库
- 2026年消防安全工程师案例分析题
- 2026年小学语文知识体系
- 2026年法考主观题商经法仿真题及解析
- 新司机岗前安全培训内容课件
- 生鲜运输仓库管理办法
- 2024副高(内科护理)考试真题卷及答案
- 互联网保险业务营销宣传管理细则考试题及答案
- 私募基金合规管理与招募说明书模板
- 2025年北京朝阳区高二(下)期末化学试题和答案
- 索尼A7M3使用说明书
- 山东省泰安市第一中学2024-2025学年高一下学期6月月考化学试卷
- 2025年护肤品行业白皮书
- 人工智能教育应用(北师大)2024学堂在线雨课堂网课章节测试答案和期末考试答案
- 小学生科普风力发电课件
评论
0/150
提交评论