代写CS 6290: High-Performance Computer Architecture
CS 6290:高性能计算机体系结构
项目 1
此项目旨在帮助您了解无序处理器的分支预测和性能。您将再次需要“CS6290 Project VM”虚拟机,与我们用于 Project 0 的虚拟机相同。就像项目 0 一样,您将把答案放在此 Word 文档的红色框中,然后在 Canvas 中提交(提交的文件名现在应PRJ1.docx)。
在每个答案框中,您必须首先提供实际问题的答案(例如一个数字)。然后,您可以使用方括号提供问题没有要求但您认为可能有助于我们为您的答案评分的任何解释。例如,答案 9.7102 可以输入为 9.7102 [因为 9.71+0.0002 是 9.7102]。对于问“为什么”和/或“解释”的问题,正确的答案是简明扼要地说明问题所描述的原因,并说明你有什么证据。猜测,即使完全正确,也只能产生此类问题的 50% 的分数。
本文档的每个部分都指定了要上传的其他文件。提交文件时,请勿存档(zip、rar 或其他任何内容)——每个文件都应单独上传,并带有此分配中指定的文件名。如果不遵循文件提交和 CS 6290:高性能计算机体系结构命名指南,您将失去最多 20 分,如果缺少任何文件,您将失去与丢失文件相关的任何答案的所有分数(是的,这意味着如果缺少PRJ1.docx文件,则自动获得零分)。此外,如果不是很清楚哪个提交的文件与哪个请求的文件匹配, 代 写CS 6290: High-Performance Computer Architecture我们会将提交视为缺少该文件。如果您提交的多个文件似乎与同一请求的文件匹配(例如,多个同名文件),情况也是如此。简而言之,如果对应使用哪些提交的文件进行评分有任何歧义,则评分将像根本没有提交这些模棱两可的文件一样进行。
大多数数值答案应至少有两位小数的精度。加速应使用周期数计算到至少 4 位小数的精度,而不是 IPC(report.pl 报告的 IPC 四舍五入到仅两位小数)。如果四舍五入到比要求的小数点少,或者截断数字而不是正确舍入(例如,四舍五入到小数点后 3.141592 的加速是 3.1416,而不是 3.1415),则会丢分。
正如课程规则中所解释的,这是一个个人项目:不允许与其他学生或其他任何人合作。
第 1 部分 [20 点]:分支的配置[ 请注意,在本项目中,“分支”用于指代影响控制流的所有指令,其中包括分支指令,但也包括跳转、函数调用等。此外,“分支预测”是指对下一条指令地址的整体预测,而不仅仅是对方向的预测(采取或不采取)。预测
配置文件中描述了模拟计算机的硬件。在这个项目中,我们将再次使用 cmp4-noc.conf 配置文件,但这次我们将修改这个文件,所以现在是制作副本的好时机,这样我们就可以在需要时恢复原始配置。
处理器(内核)在文件开头附近的“cpucore”参数中指定。在本例中,该文件指定计算机具有 4 个编号为 0 到 3 的相同内核(procsPerNode 参数为 4),并且每个内核在 [issueX 部分中描述]。转到 [issueX] 部分,我们看到一个内核有很多参数,其中我们看到时钟频率设置为 1GHz,这是一个无序内核(无序设置为 false),每个周期最多获取、发出和停用 2 条指令(“issue”参数在文件前面设置为两个)。内核具有 [BPredIssueX] 部分中描述的分支预测器,从 [IMemory] 部分中描述的名为“IL1”的结构中获取指令(这是由 instrSource 参数指定的),并从 [DMemory] 部分中描述的名为“DL1”的结构读取/写入数据。在这个项目的这一部分中,我们将修改分支预测器,所以让我们仔细看看 [BPRedIssueX] 部分。它说预测变量的类型是“混合”(这并不能告诉我们太多),然后指定该预测变量的参数。
“混合”预测器实际上是一个锦标赛预测器。现在,您需要查看其源代码(位于 BPred.h 中,BPRed.cpp 文件位于 ~/sesc/src/libcore/ 目录中),并确定配置文件中的哪些参数控制预测器的哪个方面。提示:“混合”预测器是在 BPHybrid 类中实现的,因此它的构造函数和预测方法将告诉您需要了解的大部分内容。
A)此混合预测器中的元预测器是一个包含条目的表,每个条目都是一个 –bit 计数器。该元预测器根据 PC 地址(即我们从中获取分支/跳转指令的地址)决定是使用简单(无历史)计数器数组进行预测,还是使用(是本地还是全局?)历史预测器。更简单的(非历史记录)预测器使用 -bit 计数器,并具有 -bit 计数器(此数字使用配置文件的 BPredIssueX 部分中的参数标签指定)。基于历史记录的预测器具有历史记录位,这些历史记录与 PC 地址相结合,以索引到具有
条目(此条目数在配置文件中使用参数标签指定),每个条目都是一个 -bit 计数器。
第 2 部分 [30 点]:更改分支预测器
现在我们将比较一些分支预测变量。我们在 Project 0 中使用的 LU 基准测试并没有真正强调分支预测器,因此我们将使用光线追踪基准测试:
cd ~/sesc/apps/Splash2/raytrace
做
现在是时候做一些模拟了:
A)使用未修改的
cmp4-noc 配置(使用“混合”预测器)。以下内容应为单个命令行,在 -ort.out 之前有一个空格。和以前一样,此命令行中的破折号应该是减号字符,但复制粘贴可能会导致其他看起来相似但不是减号字符的内容,因此请注意您正在复制粘贴。
~/sesc/sesc.opt -f HyA -c ~/sesc/confs/cmp4-noc.conf -ort.out -ert.err raytrace.mipseb -m128 输入/reduced.env
然后我们将修改配置文件,因此如果您尚未这样做,请复制它。然后,通过将预测器的“类型”从“Hybrid”更改为“Oracle”来更改配置以对预言机(完美)方向预测器进行建模,然后重新运行仿真(将 -f 参数更改为 -f OrA,以便将仿真结果写入其他文件)。请注意,在这种情况下,整体分支预测精度并不完美 - 只有方向预测器是完美的,但目标地址预测器是(非预言机)BTB!之后,将处理器配置为使用简单的 predict-not-taken 预测器 (type=“NotTaken”) 并再次运行模拟(现在使用 -f NTA)。在 Canvas 中提交三个仿真报告文件(sesc_raytrace.mipseb.HyA、sesc_raytrace.mipseb.OrA 和 sesc_raytrace.mipseb.NTA)以及此项目的其他文件。
B)在下表中,对于每个仿真,请填写总体精度(report.pl 输出中 BPred 下的数字)、循环次数以及与使用混合预测器的配置相关的加速。
BPred 精度循环加速与混合
未采取 % C X
混合 % C X
甲骨文 % C X
C)现在将处理器的 renameDelay 参数(在配置文件的 issuesX 部分中)从 1 更改为 7。这使得处理器的管道延长了 6 个阶段。重复这三个模拟,在 Canvas 中提交模拟报告文件(sesc_raytrace.mipseb.HyC、sesc_raytrace.mipseb.OrC 和 sesc_raytrace.mipseb.NTC)以及此项目的其他文件。
D)In the table below, fill in the number of cycles with each type of predictor from Part A (simulations with the default pipeline depth) and from Part C (when the pipeline is 6 stages deeper), then compute the speedup of shortening the pipeline for each type of predictor, assuming that the clock cycle time stays the same (so the speedup can be computed using the number of cycles instead of execution time).
Cycles w/ renameDelay=1 Cycles w/ renameDelay=7 Speedup of changing renameDelay
from 7 to 1
NotTaken C C X
Hybrid C C X
Oracle C C X
E)The results in Part D) lead us to conclude that better branch prediction becomes (fill in either “more” or “less”) important when the processor’s pipeline depth increases. Now explain why the importance of branch prediction changes that way with pipeline depth:
F)From simulation results you have collected up to this point, there are at least two good ways to estimate how many cycles are wasted when we have a branch misprediction in the processor that has the default pipeline depth, i.e. what the branch misprediction penalty (in cycles) was for simulations in Part A). Enter your best estimate here and then explain how you got it:
Part 3 [50 points]: Which branches tend to be mispredicted?
In this part of the project we again use the cmp4-noc configuration. You should change it back to its original content, i.e. what it had before we modified it for Part 2. We will continue to use the Raytrace benchmark with the same parameters as in Part 2.
Our goal in this part of the project is to determine for each instruction in the program how many times the direction predictor (Hybrid or NotTaken) correctly predicts and how many times it mispredicts that branch/jump. The number of times the static branch/jump instruction was completed can be computed as the sum of two (correct and incorrect predictions) values for that static branch/jump instruction. You should change the simulator’s code to count correct and incorrect predictions for each static branch/jump instruction separately, and to (at the end of the simulation) print out the numbers you need to answer the following questions. The printing out should be in the order in which the numbers are requested below, and your code should not be changing the simulation report in any way. Then you should, of course, run the simulation and get the simulation results with the Hybrid and also with the NT predictor.
G)In both simulations, the number of static branch/jump instructions that are completed at least once but fewer than 20 times (i.e. between 1 and 19 completions) is , the number of static branch/jump instructions with 20 to 199 completions is , the number of static branch/jump instructions with 200 and 1999 completions is , and the number of static branch/jump instructions with 2000+ completions is .
H)The accuracy for the direction predictor, computed separately for the four groups of static branch/jump instructions (1-19, 20-199, 200-1999, and 2000+ completions), is a follows:
Hybrid Accuracy NT Accuracy
I)We cannot run the raytrace benchmark with a much larger input because the simulation time would become excessive. But if we did, concisely state what would happen to the overall direction predictor accuracy of the Hybrid predictor and of the NT predictor, and then explain why the predictor accuracy should change in the way you stated.
J)Submit the BPred.h and BPred.cpp files that you have modified to produce the numbers you needed for Part 3 of this project. If you have modified any other source code in the simulator, create an OtherCode.zip file that includes these files and submit it, too. Also submit the output of the simulator for the two runs (as rt.out.Hybrid and rt.out.NT) Note that there is no need to submit the simulation report files (these should be the same as those from Part A).
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp
- 电报最佳群发工具推荐,Telegram全能群发助手,TG拉群发策略
- 石墨烯云平台:引领新材料时代,开启智能化新篇章
- Instagram营销群发软件,Ins一键群发工具,助你实现营销梦想!
- 东莞市铭轩编织材料有限公司——非遗手工,爱意传承!
- 稳中求进,碧桂园服务发布2023年年度业绩
- instagram营销群发软件,ins批量私信群发工具,ig营销引流
- Ins/Instagram最强营销群发利器,ins一键解锁引流营销工具!
- 精准目标:zalo筛选器帮你精确锁定海外市场的核心受众
- Instagram批量养号 - ins自动登录/ig采集指定地区/ins群发软件/前所未有的引流
- Ins高效群发软件,Instagram智能监控引流软件带你成为外贸专家!
- instagram群发采集神器,高效引流爆粉,助你成为社交达人!
- 中国装饰材料交易网:打造一站式采购平台,引领装饰材料行业新风尚
- TG群发营销神器,电报高效群发软件,Telegram群发助手推荐
- 年度新品:Fit.Q有机生酮咖啡,高效燃脂健康瘦!
- 代做Lab 6 Structs、代写c/c++编程设计
- COMP 3027J代做、代写Python/Java程序
- 中国节能灯:照亮未来,点亮绿色生活
- 龙年首发丨蓝芯科技FR3400L喜迎开门红
- 世贸通欧盟绿卡移民大利好:马耳他移民申请有重大变化
- Telegram营销引流怎么做到自动获客?TG群发营销助手推荐
- Instagram群发助手 - ins定位采集/ig私信博主/ins批量养号/ig私信助手
- COMP1721代写、代做java编程语言
- ws/WhatsApp营销软件,ws协议号群发工具/ws拉群工具/ws劫持号
- 代写CS 61B、java设计编程代做
- 海尔生物医疗发布生命科学战略——向深而行 撬动产业高质量发展
- 全球营销:如何通过WhatsApp筛选器找到最具潜力的群众
- EF重启尼泊尔支教之旅项目
- 无线投屏器推荐,皓丽基础款、专业款、升级款投屏器怎么选?
- 电报/TG群发提高转化软件,Telegram/TG自动化营销工具,TG/纸飞机群发拉群系统
- Ins引流助手,Instagram打粉工具,助你轻松赢得市场!
推荐
- 丰田章男称未来依然需要内燃机 已经启动电动机新项目 尽管电动车在全球范围内持续崛起,但丰田章男 科技
- 疫情期间 这个品牌实现了疯狂扩张 记得第一次喝瑞幸,还是2017年底去北京出差的 科技
- 升级的脉脉,正在以招聘业务铺开商业化版图 长久以来,求职信息流不对称、单向的信息传递 科技
- 智慧驱动 共创未来| 东芝硬盘创新数据存储技术 为期三天的第五届中国(昆明)南亚社会公共安 科技
- B站更新决策机构名单:共有 29 名掌权管理者,包括陈睿、徐逸、李旎、樊欣等人 1 月 15 日消息,据界面新闻,B站上周发布内部 科技
- 创意驱动增长,Adobe护城河够深吗? Adobe通过其Creative Cloud订阅捆绑包具有 科技
- 苹果罕见大降价,华为的压力给到了? 1、苹果官网罕见大降价冲上热搜。原因是苹 科技
- 老杨第一次再度抓握住一瓶水,他由此产生了新的憧憬 瘫痪十四年后,老杨第一次再度抓握住一瓶水,他 科技
- 如何经营一家好企业,需要具备什么要素特点 我们大多数人刚开始创办一家企业都遇到经营 科技
- 全力打造中国“创业之都”名片,第十届中国创业者大会将在郑州召开 北京创业科创科技中心主办的第十届中国创业 科技