专利名称:用于有效生成处理器体系结构模型的方法和设备的制作方法
技术领域:
本发明的各实施例一般涉及处理器领域,并且更具体地涉及用于有效生成处理器 体系结构模型的方法和设备,该处理器体系结构模型可精确地预测处理器的性能以最小化 仿真时间。
背景技术:
随着处理器体系结构相比于前一代处理器体系结构而言变得更加复杂并且具有 更多的晶体管数目,仿真这样的处理器以确定它们在各种情况下的性能就变得耗时并且需 要密集的处理器时钟周期。这种密集耗时的计算产生了阻碍,耗尽了对新的和现有的处理 器体系结构特性的设计空间拓展。在没有充分的设计空间拓展的情况下,无法为目标工作 负载环境选择最佳的可能处理器设计或配置。举例来说,为在10个不同的处理器仿真器参数(诸如,指令窗口(instruction window, Iff)大小、数据高速缓存单元(data cache unit, D⑶)大小,等等)上待拓展的一 组目标基准测试程序(benchmark)(诸如,微软Microsoft Word 2007,微软Microsoft Excel 2007,微软Microsoft Internet Explorer ,等等)或基准测试程序的一部分(诸 如,微软Microsoft WOTdTM2007的特性子集,等等)而拓展处理器性能将需要大约100亿 次仿真运行,其中每个参数具有5个可能值(诸如,指令窗口(也被称为重新排序缓冲器) 具有48、64、80、96或112个条目,或者,数据高速缓存大小为2、4、8、16或32KB)。术语“追 踪”(trace) —般定义为将要在处理器上执行的工作负载(可和术语“基准测试程序”互换 使用)子集。假设每个追踪耗时三小时在一个处理器上进行仿真,并且有5000个处理器专用 于仿真1000个追踪,那么这5000个专用处理器将耗时超过700年的处理器仿真时间来确 定针对这1000个追踪的处理器体系结构的性能。具有这样的处理器仿真时间的设计空间 拓展是不可行的。虽然仿真可以被处理器性能预测模型来替代,但是这种模型在它们的创建、精确 性和速度方面专用的基准测试程序。使用新基准测试程序来拓展处理器设计空间需要研发 新的性能预测模型并且随后使用该模型在该基准测试程序的不同配置下为该基准测试程 序预测处理器性能(衡量为每周期执行的指令数目(IPC)和/或以瓦(Watt)为单位的功 率消耗数)。当确定处理器体系结构性能和功率消耗涵盖大范围的基准测试程序(诸如,超 过1000个基准测试程序)时,一种利用自定义模型的方法无法在速度和精确性两方面有所 提升。附图简述可以参考下文的详细说明以及本发明的各实施例的附图来充分理解本发明的各 实施例,但是,这些描述和附图并非旨在将本发明限定为这些特定的实施例,而仅仅是作为 解释和说明之用。图IA是根据本发明的一个实施例,用于有效生成一用于预测处理器性能的处理器性能模型的上位流程图;图IB是根据本发明的一个实施例,示出仿真器参数和它们各自的数值的图表;图2是根据本发明的一个实施例,示出性能预测误差灵敏度与训练数据数目之比 的曲线图;图3是根据本发明的一个实施例,用于生成用于多个基准测试程序的处理器性能 模型的详细流程图;图4A是根据本发明的一个实施例,用于生成处理器性能模型的非二进制特性标 记矩阵;图4B是根据本发明的一个实施例,用于生成处理器性能模型的二进制特性标记 矩阵;图5是根据本发明的一个实施例,示出与有效生成该处理器体系结构模型有关的 硬件的系统。详细描述本发明的各实施例涉及用于有效生成单个处理器体系结构模型的方法和设备,该 单个处理器体系结构模型能通过对大规模数量级(诸如,超过1000个)的处理器基准测试 程序的仿真时间进行最小化,从而精确地预测该处理器的性能。在一个实施例中,处理器基准测试程序被包含在特性-标记配对(feature-label pair)中(将在下面进行说明),从而允许处理器性能预测模型为大范围的基准测试程序来 预测功率消耗和处理器性能。以下描述的实施例将可替换地使用术语“性能”和“功率”,这 是因为处理器性能模型可以预测与IPC有关的处理器性能和与以瓦(Watt)为单位的处理 器功率消耗有关的处理器性能中的任何一个或全部两者。在一个实施例中,大范围基准测试程序的区间为从无限数目的基准测试程序到少 量的基准测试程序采样(包括单个基准测试程序)。进一步的,用于有效生成单个处理器体 系结构性能预测模型的方法和设备提供了低误差率(诸如,相对于真实基准测试程序仿真 来说小于3%的误差)以及高预测速度(诸如,几分钟,而不是几年)。附
图1是根据本发明的一个实施例,用于有效生成处理器体系结构模型的流程图 100。在块101中,标识处理器的性能基准测试程序。在一个实施例中,标识一个或多个处理 器基准测试程序,用于生成性能预测模型。在一个实施例中,基准测试程序包括以下范围 诸如多媒体应用程序、办公应用程序、游戏应用程序和服务器应用程序。在一个实施例中, 处理器是单核处理器。在其他的实施例中,处理器是多核处理器。本发明的多个实施例不 限于任何特定类型的处理器体系结构。在块102中,采样用于所标识的性能基准测试程序的设计空间的一部分。在一个 实施例中,对该设计空间的该部分的采样需要生成对该给定处理器的大量随机配置。在一 个实施例中对于每个配置都随机选择每个仿真器参数的值。处理器的配置的含义是用于该 处理器的体系结构设置。例如,处理器的一个配置可具有与第二级(Level-Two)高速缓冲存储器一样大小 的第一级(Level-One)高速缓冲存储器。在另一个配置中,第一级高速缓存的大小比第二 级高速缓存要小。类似地,一个配置可以具有单个处理器核,而其他配置可以具有超过一个 处理器核,即,多核处理器。上述的各个配置仅仅是示例性的,且并不意味着将处理器配置
7限制为上述示例所描述的那样。在一个实施例中,仿真器参数确定处理器体系结构设计空间的大小。在一个实施 例中,设计空间越小,用于该处理器的性能预测模型就越精确。在一个实施例中,仿真器参数的一个示例是处理器中高速缓冲存储器的大小。通 常,第一级高速缓存的大小比第二级高速缓存要小。这意味着用于第一级高速缓存的仿真 器参数值应该被设置为小于用于第二级高速缓存的仿真器参数值,用于来生成精确的性能 预测模型。反之,则性能预测模型将不那么精确,因为它的训练数据中包括了第一级高速缓 存大于第二级高速缓存的处理器配置,这将无法反映真实世界的处理器中的高速缓冲存储 器的配置方式。在这样一个实施例中,生成性能预测模型的一部分训练数据对于构成该性 能预测模型来说是被浪费的训练数据。一个原因是这些训练数据被认为是被浪费的训练 数据是因为在真实世界中高速缓冲存储器不会被配置为使第一级高速缓存的大小大于第 二级高速缓存的大小,因为这样的配置不会导致更高的处理器性能。在一个实施例中,每个仿真参数均被赋予来自预定数值范围中的一个值。附图IB 示出了根据本发明的一个实施例的图表120,其中具有多个仿真器参数以及它们各自的值。 例如,在一个实施例中,行121列出了仿真器参数,行122列出了与这些仿真器参数相关的 度量,诸如,参数的个数,参数的大小,参数的状态,行123包括这些仿真器参数的值的预定 范围。在一个实施例中,每个仿真参数都被随机地赋予一个值,该值是选自一可能值的范围 中均勻间隔的一组未排序的可能值。在一个实施例中,该范围是这些可能值的预定范围。为了使以下的实施例更清楚起见,使用指令窗口(IW)的大小和数据高速缓存单 元(DCU)的大小来解释用于有效生成处理器体系结构性能预测模型的方法,其中指令窗口 也被称为重新排序缓冲器并且被表述为多个条目,数据高速缓存单元被表示为以KB为单 位。其他仿真器参数,诸如处理器保留站、负载缓冲器、存储缓冲器、中级高速缓存、指令高 速缓存、回退宽度(retire width),等等,具有它们各自可能值的预定范围,也可被用于生 成处理器体系结构性能预测模型。在一个实施例中,如果处理器的IW中的可能值的预定范围是48到112(如行123 所示),并且增加值是16,那么参数值的未排序集合将会是{48,64,80,96,112}。在另一个 实施例中,从可能值范围上以二的次方增大的一组可能值的未排序集合对仿真参数进行赋 值。例如,如果处理器的DCU大小的预定范围是2KB到32KB,则参数值的未排序集合将会是 {2,4,8,16,或 32KB}。回到附图1A,在块103中,通过对采样的设计空间进行仿真来生成用于处理器性 能模型的训练数据。在一个实施例中,并非产生多个处理器模型且每个均对应于一个基准 测试程序,而是产生用于该多个基准测试程序的单个处理器模型。单个处理器模型实现了 对大量基准测试程序(诸如,超过1000个基准测试程序)的有效预测,而不需要为每个基 准测试程序生成个性化的预测模型。在一个实施例中,训练数据包括基准测试程序数目(诸如,100,表示第100个基准 测试程序),被仿真的基准测试程序的类型(诸如,微软Microsoft Word 2007),仿真参数 值(诸如,第一级高速缓冲存储器和第二级高速缓冲存储器的大小),以及IPC (诸如,为被 仿真的特定类型的基准测试程序所执行的指令数目)。这样的实施例允许训练单个处理器 模型,其包括了关于多个基准测试程序的信息。
在块104中,根据来自块103的训练数据生成单个处理器性能模型。在一个实施 例中,通过执行统计方法来生成该性能模型。在一个实施例中,该处理器性能模型是单处理 器性能模型。在一个实施例中,统计方法是Vowpal Wabbit(Vff)统计方法,用于执行来自块 103的训练数据以生成处理器性能预测模型。在其它实施例中,可以使用其他统计方法以根 据来自块103的训练数据来生成性能预测模型,而不改变本实施例的原理。将在下文中参 考附图3、4A和4B详细描述生成性能预测模型的细节。回到附图1A,在块105中,通过执行单处理器性能预测模型,预测处理器在整个设 计空间的性能。处理器性能预测模型允许预测未见过的(unseen)处理器配置的性能和功 率。在一个实施例中,通过标识每个处理器配置的所有排列,来生成所有处理器配置的完整 列表。在一个实施例中,通过调节仿真器参数的突出点(knob)来标识这些排列。在一个实 施例中,所有处理器配置的完整列表被输入处理器性能模型。产生的预测是处理器的穷举 的设计空间。在一个实施例中,同样调节突出点来减少预测与真实仿真数据相比下的误差。在 这样一个实施例中,性能预测模型被重新训练,并生成更新的更精确的处理器性能预测模 型。在一个实施例中,通过从训练数据中移除不相关的参数即重新调整之前的训练数据来 重新训练性能预测模型。将在下文中讨论相关和不相关的训练数据。在一个实施例中,如 果误差过高(诸如,大于10% ),则搜集更多的训练数据而不是重新训练已有的数据,以生 成更新的更精确的处理器预测模型。在块106中,选择一个处理器预测性能结果的采样。在一个实施例中,该采样表示 在块101中所标识的性能基准测试程序的激励。在一个实施例中,执行该选择过程以在特 定性能结果上以及在与该性能结果有关的突出点、参数和基准测试程序上进行删减。在一 个实施例中,选择是基于成本度量和收益度量。如果仅仅提供一个度量,则限制了对有利配 置进行选择的能力。例如,在一个实施例中,可以从消耗大约80%的处理器原始功率的初始处理器设 计点中标识出数千个(甚至数万个)减衰(decremented)后的处理器配置。处理器的原始 功率表示当处理器不减衰时处理器的功率消耗。而减衰后的处理器相比于原始处理器得到 的20%的功率节约就是收益度量。成本度量是与减衰后的处理器设计有关的相比于原始处 理器设计的性能衰减。在一个实施例中,当综合收益和成本度量时,可以获得具有期望的功 率节约的最佳性能的处理器配置。在块107中,所选的采样被仿真以更好地理解该性能基准测试程序的特定采样。 在一个实施例中,从仿真器中生成真实性能数据。在块108中,通过仿真所选的采样而生成的性能数据被与用于该采样的预测性能 相比较。在一个实施例中,该比较允许对处理器性能模型进行调整。在一个实施例中,比较 生成误差。在一个实施例中,该误差被定义为对于给定采样的处理器预测性能和真实仿真 性能之间的差别。在其他实施例中,可以使用其他误差的表示方式而不背离实施例的原理。在块109中,对从比较生成的误差是否大于预定阈值作出判定。在一个实施例中, 预定阈值为4%。在其他实施例中,更低或更高的阈值可以被用于在性能预测模型的精确性 和对处理器性能的预测速度之间进行折衷。在一个实施例中,如果误差超过预定阈值,则(通过参考块105而讨论的突出点)来调整性能预测模型使其接近于仿真结果。在一个实施例中,通过移除与处理器性能无关 的用于特定参数的训练数据,来进行对性能预测模型的调整。例如,在一个实施例中,如果处理器性能被发现为对IW的大小不敏感,即,IW的大 小与处理器的性能无关,则该IW的大小不被用作为创建/生成处理器性能预测模型的训练 参数。在这样一个实施例中,移除该IW的大小参数会减少性能预测模型的误差,因为该性 能预测模型不再要求其学习训练数据中的模式,其中针对该训练数据无法学习到可靠的模 式。在一个实施例中,如果误差小于预定阈值则在块110中完全对处理器性能的预测。附图2是示出根据本发明的一个实施例的性能预测误差灵敏度相比于训练数据 的曲线图200。χ轴是被用于生成性能预测模型的训练数据数目。y轴是以百分比表示的误 差率。该曲线图示出预测处理器性能中的误差随着训练数据数目的增加而减少。在该示例 中,从大约IlK的用于预测处理器性能的训练数据中获得的误差率为4%。附图3是根据本发明的一个实施例,用于生成用于多个基准测试程序的处理器性 能预测模型的详细流程图300。在一个实施例中,在块301中,标识出追踪(trace)。在块 302中,为仿真参数调节突出点。在块303中,仿真器接收所标识的追踪以及仿真器参数。仿 真器使用仿真器参数对所标识的追踪进行仿真,以针对每个追踪和参数生成训练数据。以 下将结合附图1详细讨论块301-303。回到附图3,在块304中,通过将训练数据转换为单个矩阵而将由多个文件(诸如, 数千个文件)组成的训练数据重新组织为单个矩阵,该单个矩阵具有特性-标记配对。在 一个实施例中,特性-标记配对与所识别的性能基准测试程序相关联。该矩阵的一个示例被示出在由附图4A和4B所图示的实施例中。附图4A是根据 本发明的一个实施例,具有特性401和标记402的非二进制单个矩阵400。为了清楚起见, IW和DCU的仿真器参数被用于解释该单个矩阵。在一个实施例中,所有的特性和标记都被 组织为单个矩阵400的401和402中的行和列。在一个实施例中,IW和D⑶的特性分别在 附图4A的401和附图4B的411中被配对。这些特性包括来自预定数值集合(参见附图IB 的123)的各种随机配置(诸如,Iff取48和96,DCU取16和4)。在附图4A的实施例中,考虑三个追踪,这会产生六个随机配置,每个追踪二个配 置。在一个实施例中,标记402被赋予特性401的每一行。在附图4A和4B的实施例中,相 对IPC是被赋予特性401和411的行的、402和412中的标记。相对IPC表示当与执行追踪 且IPC为1. 00的原始处理器相比较时,执行相同追踪的处理器配置的IPC。附图4B是根据本发明的一个实施例,具有特性411和标记412的二进制单个矩阵 410。在一个实施例中,附图4B中的特性411包括二进制格式的追踪IW和D⑶。在一个实 施例中,特性配对回避了对仿真器参数之间关系(诸如,仿真器参数之间的相关度)的明显 揭示的需求,由此提供了不需要了解哪些处理器参数对处理器的性能而言最不重要或最重 要的训练数据。在一个实施例中,单个矩阵410是附图4A中的非二进制单个矩阵400的二进制形 式。在一个实施例中,二进制单个矩阵410与非二进制单个矩阵400相比,提供了使用VW 统计方法的更加精确的性能预测模型生成。使用二进制单个矩阵410的更加精确的预测建 模的一个原因是单个矩阵的二进制化使得特性411在处理器性能上的非线性行为可通过 另外的线性VW统计方法来捕捉。
例如,在一个实施例中,不使用用于具有多个可能值(诸如,2、4、8、16、32KB)的 DCU大小的单个特性,而使用用于每个可能设置(DCU_2、DCU_4、DCU_8、DCU_16、DCU_32)的 单个特性。在这样一个实施例中,用于每个可能参数值的单个特性实现了在相同处理器参 数的不同值和处理器性能之间的非线性关系。在一个实施例中,以原始的非二进制格式 (诸如,附图4A),Vff统计方法必须学习例如DCU大小和处理器性能之间的单个线性函数。 但是,在一个实施例中,DCU和处理器性能之间的关系不一定是线性的,可能当DCU大小从 8KB增加到16KB大小时性能增强,但在从16KB增大到32KB的DCU大小时性能维持恒定。 在这样一个实施例中,不存在线性函数可以在所有的三个DCU大小上表征DCU大小和处理 器性能之间的关系。然而,如果特性是在具有二进制特性的单个矩阵内被二进制化,VW统 计方法会对每个D⑶大小而学习一线性函数。因此,在一个实施例中,这些三个D⑶大小和 处理器性能之间的关系可以被三个线性函数来表征,这使得模型更为精确。回到附图3,在块304中生成的单个矩阵(附图4A中的400或附图4B中的410)随 后在块305中在统计应用程序上被执行。在一个实施例中,统计应用程序执行VW统计方法 来生成性能预测模型。在一个实施例中,统计方法对在块304中生成的矩阵中的每一个特 性(附图4A中的401,附图4B中的411)赋予权重。在一个实施例中,对每一行输入数据的 每个特性所赋予的权重的总和是对应于该行的标记(附图4A中的401,附图4B中的412)。 在一个实施例中,统计方法对特性赋予权重以最小化标记的平方误差。在一个实施例中,如 果仿真器参数在所有的基准测试程序上都与处理器性能高度相关,则对该特性赋予大的权 重(诸如,1.0)。在一个实施例中,如果参数与处理器性能无关,则对该特性赋予小的权重 (可能是0)。在一个实施例中,统计方法包括二次特性配对。在这样一个实施例中,不仅仅对单 个特性赋予权重,而是对两个特性的组合赋予权重。例如,对D⑶大小赋予权重、对指令高 速缓存大小(参见附图1B)赋予权重,以及对DCU和指令高速缓存的组合赋予权重。在这 样一个实施例中,对两个参数的组合赋予的权重捕捉了二阶效果,诸如任何两个特定配置 (诸如,指令高速缓存大小和DCU大小)的相互影响。在一个实施例中,二阶效果使得性能 预测模型更为精确,导致更小的误差。二次特性配对在预测处理器性能方面具有多个优点。以下将描述两个示例性的优 点,仅作为具体作用。第一个是,在一个实施例中,当被配对的特性是追踪和参数对时,特性配对通过基 于参数的影响将合适的权重赋予参数,从而在学习追踪模型中帮助学习追踪专用的模式 (trace-specific patterns)。例如,在一个实施例中,一矩阵包括三个追踪X,Y,Z。在一个实施例中,追踪X示 出了仅仅源自大的DCU大小(诸如,32KB)的更好的处理器性能,即,追踪X示出了性能对 IW大小的不敏感性。对追踪X的IW就将不赋予权重。在上述示例中,根据一个实施例,假 设对DCU大小和IW大小均赋予相同的权重因为这些参数均影响性能,那么追踪Y将提供更 好的处理器性能。类似的,根据一个实施例,追踪Z示出了根据DCU大小或IW大小均没有 额外的处理器性能优势,因此对追踪Z的任何一个参数均不赋予权重。第二,在一个实施例中,当被配对的特性均是参数(不同于上述的追踪和参数 对),则模型将学习这些处理器参数如何互相影响。
例如,在一个实施例中,被配对的特性是第一级高速缓存和第二级高速缓存。通 常,大于第一级高速缓存的第二级高速缓存会产生更高的处理器性能,导致相比于第二级 高速缓存,对第一级高速缓存分配更多的权重。但是,在第一级高速缓存已经较大的实施例 中,即便是更大的第二级高速缓存,其增加的优势也将小于初始时第一级较小的情况。通过 将上述两个高速缓存特性进行配对,可以确定参数互相之间的影响,以对上述用于模型生 成的参数进行更为精确的权重赋值。在一个实施例中,性能预测模型不仅仅对特定特性(诸如,DCU大小)进行赋值, 也对该特征以及每个数据行的基准测试程序的配对(诸如,(DCU大小,追踪1)、(DCU大小, 追踪幻)进行赋值,以确定一参数一般是类似地还是唯一地影响所有的基准测试程序。在 这样一个实施例中,模型使用上述确定来更好地猜测之前未见过的处理器-基准测试程序 特性标记配对的性能。例如,在一个实施例中,当对于某些基准测试程序,仿真器参数与处理器性能是高 度相关的,则对这些参数-追踪特性配对赋予权重。在这样一个实施例中,在之前未见过的 处理器体系结构上为已知的基准测试程序预测处理器性能时,性能预测模型了解对于每个 仿真器参数,该参数一般是类似地影响所有的基准测试程序(即,恰好在该特性上有大的 权重),还是唯一地取决于该基准测试程序(即,仅仅在与所影响的基准测试程序有关的特 性-追踪对上有大的权重)。这样的知识增强了对未见过的处理器的性能预测。在一个实施例中,统计方法使用三次样条函数(cubic splines)对特性和标记 (参见附图4)之间的关系进行建模。三次样条函数是适合训练数据的非线性曲线。在这样 一个实施例中,指定多个突出点(或除法器),用于为每个特性适配一样条。在一个实施例 中,样条被特定数量的突出点分开,并且学习每个突出点之间的非线性曲线。例如,如果一 样条包括2个突出点,则在整个样条之上就有三个分别学习得到的曲线。在一个实施例中, 更多的突出点可以在特性和标记之间创建更有力的函数,但使用过多的突出点会存在将统 计性能预测模型与训练数据过度适配的风险。例如,在一个实施例中,如果对特定的参数存在5个可能值,并且样条不被任何突 出点所分隔,那么参数与特性的非线性关系将很难把所有的数据点适配在单条线段上。术 语“很难”(hard)表示数据点与样条的接近度。在一个实施例中,样条被分隔为5个突出 点,以将每个数据点适配到其自有的线段上。在该情况中,对于训练数据来说适配过程是过 度灵敏的,以致于无法提供对未见过的数据点的精确估计。回到附图3,在块306,测试来自初始随机采样的被用于创建处理器统计模型的训 练数据。在一个实施例中,执行N重交叉验证(N-fold cross-validation)以检测该模型 的精确性。在一个实施例中,N为5。在其他实施例中,可以执行更少次或更多次的交叉验 证来测试该模型的精确性。交叉验证的次数越多,模型精确性的置信度越高。例如,对于N= 5的实施例,采样的数据被划分为5个等分部分。在一个实施例中, 采样的数据的四个部分被用于训练性能预测模型,且第五部分被用作测试数据以测试模型 预测的误差。在一个实施例中,上述方法被执行5次——每次使用采样的数据的一个不同 部分来测试。随后计算每次交叉验证的误差。在一个实施例中,生成平均误差以反映当性 能预测模型被用于预测未见过的配置时可能出现的误差百分比。在块307中,对模型的精确性进行判定。在一个实施例中,如果平均误差高于预定阈值(诸如,4% ),则通过执行与块301-302相关的方法进行数据的重新训练。在一个实施例中,在重新采样阶段(块301-302),回顾一些仿真器参数以基于它 们与处理器性能的相关度与其他仿真器参数的比较来提高精确性。在一个实施例中,高度 相关(不论是正相关还是负相关)的参数提高通过该统计方法所生成的模型的精确性。高度相关的参数是直接影响处理器性能的参数。无关的参数是不影响处理器性能 的参数。在一个实施例中,抛弃与处理器性能无关的仿真器参数,因为这些无关的参数在 性能预测模型中引入了噪声并由此减低了精确性。在一个实施例中,上述讨论的重新训练 过程被重复多次以获得期望的百分比误差。在块307,如果平均误差被判定为小于预定阈值,则在块308中生成所有处理器配 置的排列(同样参见附图1块10 。在块309,执行性能预测模型以预测处理器性能。附图5是根据本发明的一个实施例的系统500,示出了与有效生成处理器体系结 构预测模型相关的硬件。在一个实施例中,系统500包括处理器501、芯片组502、其上存储 有指令505以执行上述方法的存储器504。在一个实施例中,系统的上述组件通过网络总 线503而互相之间耦合。在一个实施例中,处理器501包括逻辑单元和具有指令以执行上 述方法的存储器。各实施例的元件也可以作为机器可读介质(也被称为计算机可读介质)来提供, 机器可读介质上存储有计算机可执行的指令(诸如,附图5的50 ,在执行时使得计算机或 机器执行一方法(诸如,附图1和附图3的方法)。机器可读介质可包括,但不限于,存储器 (诸如,附图5的504)、闪存、光盘、CD-ROM、DVD-ROM、RAM、EPR0M、EEPR0M、磁卡或光卡、或适 于存储电子或计算机可执行指令的其它类型的机器可读介质。例如,本发明的实施例可作 为计算机程序(诸如,BIOS)来下载,其中该程序可以通过通信链路(诸如,调制解调器或 网络链接)以数据信号的方式从远程计算机(诸如服务器)传送到作出请求的计算机(诸 如,客户机)。在本说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用 意味着结合这些实施例所描述的特定特征、结构或特性被包括在至少某些实施例中,但不 一定被包括在所有实施例中。“实施例”、“一个实施例”、或“一些实施例”的多次出现不一 定都指代相同的实施例。如果本说明书描述了一组件、特征、结构或特性是“可以”、“可能”、 “能”被包括的,那么这些特定组件、特征、结构或特性不是必须被包括在内的。如果本说明 书或权利要求书涉及“一”个组件,则不表示仅仅只存在一个该组件。如果本说明书或权利 要求书涉及“一个额外”的组件,则不排除具有超过一个上述额外的组件。虽然本发明参考特定实施例进行了描述,但参考以上的描述,本领域技术人员可 以显而易见地认识到多种改动、修改和变形。例如,被用于生成性能预测模型的统计方法VW可以被其他统计方法来代替,其他 统计方法可包括分段多项式回归方法(piecewise polynomial regression method)、神 经网络(neural network)、或一些支持向量机的变形。本发明的多个实施例旨在包括以上 这些改动、修改和变形,并属于所附上的权利要求书的范围内。
1权利要求
1.一种方法,包括标识处理器的性能基准测试程序;为所标识的性能基准测试程序采样设计空间的一部分;仿真所采样的设计空间的那部分,以生成训练数据;通过修改所述训练数据,根据所述训练数据生成处理器性能模型,以预测整个设计空 间;以及通过执行所述处理器性能模型,为整个设计空间预测处理器的性能。
2.如权利要求1所述的方法,其特征在于,所述处理器性能模型是表示多个性能基准 测试程序的单个性能预测模型。
3.如权利要求1所述的方法,其特征在于,还包括选择所预测的性能的一个采样,所述采样表示所标识的性能基准测试程序的激励; 仿真所预测的性能的所述采样,以生成性能数据;以及 将所述性能数据与所选择的所预测的性能的所述采样相比较。
4.如权利要求3所述的方法,其特征在于,所述选择是基于成本度量和收益度量的。
5.如权利要求3所述的方法,其特征在于,还包括 通过所述比较来计算预测误差;以及通过对设计空间的一部分进行重新采样来修改所述训练数据,以减少所计算的预测误差。
6.如权利要求1所述的方法,其特征在于,所述预测性能包括以下至少一个 预测处理器的功率消耗;以及预测处理器的每秒指令数。
7.如权利要求1所述的方法,其特征在于,为所标识的性能基准测试程序采样设计空 间的一部分包括生成处理器的随机配置,每个配置具有参数_数值配对;以及对所述参数_数值配对中的每个参数随机赋值,其中所述值确定设计空间的大小。
8.如权利要求7所述的方法,其特征在于,随机赋值包括 标识所述值的预定范围;以及随机从所述预定范围内赋值。
9.如权利要求1所述的方法,其特征在于,为整个设计空间预测处理器的性能包括 生成处理器的所有配置的排列;将所述排列提供给所述处理器性能模型;以及 使用所提供的排列来执行所述处理器性能模型。
10.如权利要求1所述的方法,其特征在于,通过修改所述训练数据,根据所述训练数 据生成处理器性能模型,以预测整个设计空间包括将所述训练数据转换为单个矩阵,所述单个矩阵具有与所标识的性能基准测试程序相 关的特性和标记;将所述单个矩阵提供给统计应用程序;以及 执行所述统计应用程序。
11.如权利要求10所述的方法,其特征在于,所述统计应用程序是VowpalWabbit方法。
12.如权利要求10所述的方法,其特征在于,所述特性是二进制格式的。
13.一种计算机可读介质,其中包括计算机可读指令,当所述计算机可读指令在计算机 上执行时,使该计算机执行一种方法,所述方法包括标识处理器的性能基准测试程序;为所标识的性能基准测试程序采样设计空间的一部分;仿真所采样的设计空间的那部分,以生成训练数据;通过修改所述训练数据,根据所述训练数据生成处理器性能模型,以预测整个设计空 间;以及通过执行所述处理器性能模型,为整个设计空间预测处理器的性能。
14.如权利要求13所述的计算机可读介质,其特征在于,所述处理器性能模型是表示 多个性能基准测试程序的单个性能预测模型。
15.如权利要求13所述的计算机可读介质,其特征在于,包括计算机可读指令,当所述 计算机可读指令在计算机上执行时,使该计算机进一步执行一种方法,所述方法包括选择所预测的性能的一个采样,所述采样表示所标识的性能基准测试程序的激励; 仿真所预测的性能的所述采样,以生成性能数据;以及 将所述性能数据与所选择的所预测的性能的所述采样相比较。
16.如权利要求15所述的计算机可读介质,其特征在于,所述选择是基于成本度量和 收益度量的。
17.如权利要求15所述的计算机可读介质,其特征在于,包括计算机可读指令,当所述 计算机可读指令在计算机上执行时,使该计算机进一步执行一种方法,所述方法包括通过所述比较来计算预测误差;以及通过对设计空间的一部分进行重新采样来修改所述训练数据,以减少所计算的预测误差。
18.如权利要求13所述的计算机可读介质,其特征在于,所述预测性能包括以下至少 一个预测处理器的功率消耗;以及 预测处理器的每秒指令数。
19.如权利要求13所述的计算机可读介质,其特征在于,为所标识的性能基准测试程 序采样设计空间的一部分包括生成处理器的随机配置,每个配置具有参数_数值配对;以及对所述参数-数值配对中的每个参数随机赋值,其中所述值确定设计空间的大小。
20.如权利要求19所述的计算机可读介质,其特征在于,随机赋值包括 标识所述值的预定范围;以及随机从所述预定范围内赋值。
21.如权利要求13所述的计算机可读介质,其特征在于,为整个设计空间预测处理器 的性能包括生成处理器的所有配置的排列;将所述排列提供给所述处理器性能模型;以及使用所提供的排列来执行所述处理器性能模型。
22.如权利要求13所述的计算机可读介质,其特征在于,通过修改所述训练数据,根据 所述训练数据生成处理器性能模型,以预测整个设计空间包括将所述训练数据转换为单个矩阵,所述单个矩阵具有与所标识的性能基准测试程序相 关的二进制格式的特性和标记;将所述单个矩阵提供给统计应用程序;以及 执行所述统计应用程序。
23.—种系统,包括 网络总线;以及存储器,与处理器相耦合,具有指令以执行预测目标处理器性能的方法;以及 处理器,通过所述网络总线与所述存储器相耦合,所述处理器具有逻辑单元以执行所 述指令以执行一方法,所述方法包括标识目标处理器的性能基准测试程序;为所标识的性能基准测试程序采样设计空间的一部分;仿真所采样的设计空间的那部分,以生成训练数据;通过修改所述训练数据,根据所述训练数据生成处理器性能模型,以预测整个设计空 间;以及通过执行所述处理器性能模型,为整个设计空间预测目标处理器的性能。
24.如权利要求23所述的系统,其特征在于,所述处理器性能模型是表示多个性能基 准测试程序的单个性能预测模型。
25.如权利要求23所述的系统,其特征在于,所述处理器的逻辑单元用于进一步执行 一方法,所述方法包括选择所预测的性能的一个采样,所述采样表示所标识的性能基准测试程序的激励; 仿真所预测的性能的所述采样,以生成性能数据;以及将所述性能数据与所选择的所预测的性能的所述采样相比较,其中所述选择是基于成 本度量和收益度量的。
26.如权利要求25所述的系统,其特征在于,所述处理器的逻辑单元用于进一步执行 一方法,所述方法包括通过所述比较来计算预测误差;以及通过对设计空间的一部分进行重新采样来修改所述训练数据,以减少所计算的预测误差。
27.如权利要求23所述的系统,其特征在于,所述预测性能包括以下至少一个 预测处理器的功率消耗;以及预测处理器的每秒指令数。
28.如权利要求23所述的系统,其特征在于,为所标识的性能基准测试程序采样设计 空间的一部分包括生成处理器的随机配置,每个配置具有参数-数值配对;以及 对所述参数-数值配对中的每个参数随机赋值,其中所述值确定设计空间的大小,其 中随机赋值包括标识所述值的预定范围;以及 随机从所述预定范围内赋值。
29.如权利要求23所述的系统,其特征在于,为整个设计空间预测处理器的性能包括 生成处理器的所有配置的排列;将所述排列提供给所述处理器性能模型;以及 使用所提供的排列来执行所述处理器性能模型。
30.如权利要求23所述的系统,其特征在于,通过修改所述训练数据,根据所述训练数 据生成处理器性能模型,以预测整个设计空间包括将所述训练数据转换为单个矩阵,所述单个矩阵具有与所标识的性能基准测试程序相 关的二进制格式的特性和标记;将所述单个矩阵提供给统计应用程序;以及 执行所述统计应用程序。
全文摘要
描述了一种用于有效生成处理器体系结构模型的方法和设备,该处理器体系结构模型可以更精确的预测处理器的性能以最小化仿真时间。在一个实施例中,一种方法包括标识处理器的性能基准测试程序;为所标识的性能基准测试程序采样设计空间的一部分;仿真所采样的设计空间的那部分,以生成训练数据;通过修改所述训练数据,根据所述训练数据生成处理器性能模型,以预测整个设计空间;以及通过执行所述处理器性能模型,为整个设计空间预测处理器的性能。
文档编号G06F9/455GK102110013SQ20101061956
公开日2011年6月29日 申请日期2010年12月22日 优先权日2009年12月23日
发明者A·W·布莱西, H·王, M·迈德哈弗 申请人:英特尔公司