一种面向多节点计算系统的片间互连分层精确建模仿真方法
本发明涉及计算机体系结构与集成电路设计自动化,具体涉及一种面向多节点计算系统的片间互连分层精确建模仿真方法,用于对片间互连中的通信端口、交换结构、链路传输以及相关调度与资源分配行为进行分层建模、性能评估和参数筛选。
背景技术:
1、随着目标工作负载规模的持续增长,计算系统逐渐由单芯片架构向多芯片协同计算架构发展。在多节点计算系统中,多个计算芯片之间通过片间互连进行数据交换,片间互连的带宽、时延、调度策略、缓冲资源及拓扑结构将直接影响系统整体性能。
2、在多节点计算系统的设计过程中,通常需要借助仿真方法对片间互连架构进行性能评估。然而,现有仿真方法通常存在以下问题:
3、其一,部分仿真方法采用过于简化的分析模型或数据包级抽象,难以刻画通信端口、链路层及协议层中的关键时序行为,导致仿真结果难以真实反映底层片间互连的实际运行特征。
4、其二,部分仿真方法采用全局周期精确建模方式,虽能提高局部时序精度,但在多节点、大规模并发通信场景下会带来较高的仿真开销,难以兼顾仿真精度与系统规模。
5、其三,片间互连架构设计往往需要同时考虑数据分片方式、调度策略、缓冲资源、虚通道数量、端口配置及交换结构参数等多个因素;若缺乏兼顾精度与效率的仿真基础,则难以支撑后续架构参数评估与优选。
6、因此,亟需一种针对片间互连中的通信端口、交换结构、链路传输及相关调度与资源分配行为采用差异化建模精度,并能兼顾仿真准确性与可扩展性的分层精确建模仿真方法。
技术实现思路
1、本发明的目的在于提供一种面向多节点计算系统的片间互连分层精确建模仿真方法,以解决现有技术中片间互连仿真精度不足、全局周期精确建模开销过高以及难以支撑后续架构参数评估的问题。其核心在于:根据片间互连不同组成部分的时序敏感程度及规模特征采用差异化的仿真推进机制,对通信端口内部的协议处理、缓冲及流水线行为进行周期级精确建模,对交换结构和链路传输过程进行事件驱动建模,并通过先进先出队列连接各建模对象,形成由协议级片间互连通信命令流驱动的统一仿真框架;在此基础上,针对互连参数配置的候选取值空间重复调用该仿真框架进行性能评估,并据评估结果筛选优选参数配置。
2、本发明的技术方案如下:
3、一种面向多节点计算系统的片间互连分层精确建模仿真方法,所述多节点计算系统包括多个计算节点、通信端口、交换结构和链路传输模块;该方法包括如下步骤:
4、步骤1,输入配置:获取待仿真目标计算系统的片间互连拓扑信息、协议级片间互连通信命令流及互连参数配置。所述片间互连拓扑信息包括计算节点数量和标识、交换结构标识、片间通信端口映射关系及互连连接关系;所述协议级片间互连通信命令流包括多个待传输事务,每个事务至少包括源节点标识、目的节点标识、事务类型、事务长度及对应时序信息,用于表征待仿真的通信事务序列;所述互连参数配置包括数据分片参数、调度参数、缓冲参数、虚通道参数和链路参数中的一种或多种。从互连参数配置空间中选取一组配置,作为当前轮次仿真的模型配置。
5、步骤2,通信端口周期级建模:根据片间通信端口映射关系及当前互连参数配置,为各片间通信端口分别建立发送路径建模实例和接收路径建模实例;所述发送路径建模实例包括协议打包模块和发送缓冲模块,所述接收路径建模实例包括接收缓冲模块、协议解包模块和完成处理模块。根据数据分片参数确定待传输事务的数据包划分方式,根据缓冲参数和虚通道参数配置发送缓冲模块与接收缓冲模块,根据调度参数配置各模块的调度行为,并为各模块设置相应处理时延;各模块以时钟周期为粒度推进状态,对模块内部的处理时延、排队、反压和流水线行为进行周期级精确建模。
6、步骤3,交换结构和链路传输事件驱动建模:对片间互连中的交换结构和链路传输进行事件驱动建模。交换结构建模对象接收由多个发送路径建模实例提交的数据包,并根据数据包的目的节点标识、路由结果、输出端口可用状态及仲裁结果,将数据包转发至相应的链路传输建模对象或接收路径建模实例;链路传输建模对象根据链路带宽、链路传播时延和数据包长度确定数据包的传输完成时刻。交换结构建模对象和链路传输建模对象仅在预设事件发生时更新状态。
7、步骤4,仿真框架构建:通过先进先出队列对发送路径建模实例、交换结构建模对象、链路传输建模对象和接收路径建模实例进行解耦连接,形成生产者—消费者式的仿真流水线。将每个片间通信端口对应的发送路径建模实例和接收路径建模实例分别映射为相互独立的发送路径任务和接收路径任务,将交换结构建模对象和链路传输建模对象映射为由多个通信端口任务共享的传输任务;发送路径任务将生成的数据包写入对应的先进先出队列,传输任务读取数据包并完成仲裁、转发和链路传输后写入目的通信端口对应的先进先出队列,接收路径任务读取并处理该数据包,形成端到端的数据传输仿真过程。
8、步骤5,运行仿真与结果记录:将协议级片间互连通信命令流作为仿真激励输入所构建的仿真框架,并采用当前互连参数配置运行仿真。对于通信命令流中的每个待传输事务,发送路径任务按各待传输事务的产生时刻读取对应事务,并根据事务长度及数据分片参数将待传输事务划分为一个或多个数据包,再依次执行协议打包、发送缓冲、交换与链路传输、接收缓冲、协议解包和完成处理;仿真结果记录模块记录各待传输事务的产生时刻和完成时刻、各数据包进入及离开各建模模块的时刻,以及各缓冲模块的占用状态;当全部待传输事务均完成,或满足预设仿真终止条件时,结束当前轮次仿真。
9、步骤6,性能指标统计与评估:性能指标统计模块根据仿真结果记录模块输出的时间记录和资源状态记录,计算当前互连参数配置对应的性能指标,并据此生成仿真评估结果。所述性能指标包括吞吐率、平均时延、尾时延、缓冲资源占用和多通信流公平性中的一种或多种;所述仿真评估结果包括各项性能指标、由多项性能指标组合得到的综合评估值中的一种或多种,并建立当前互连参数配置与仿真评估结果之间的对应关系。
10、步骤7,参数筛选与优选:参数筛选评估模块基于互连参数配置空间及所获仿真评估结果,迭代确定待评估的互连参数配置。首先根据预设硬件可行性约束对互连参数配置空间进行筛选,剔除不满足约束条件的参数组合;随后从剩余参数组合中选取至少一组初始互连参数配置,分别执行步骤2至步骤6,获得对应的仿真评估结果;基于已评估的互连参数配置及其仿真评估结果构建代理模型,并通过采集函数从尚未评估的配置中确定下一组待评估互连参数配置,对其再次执行步骤2至步骤6,并利用新获得的仿真评估结果更新代理模型;重复上述参数选择、仿真评估和代理模型更新过程,直至达到预设迭代次数、仿真预算或收敛条件,并从已评估的互连参数配置中输出综合评估值最优的互连参数配置。
11、进一步地,所述步骤2各模块以时钟周期为粒度推进状态,具体为:在每个时钟周期,各处理模块首先判断当前处理是否完成:若当前处理完成且下游先进先出队列存在可用空间,则将处理结果写入对应先进先出队列并开始下一事务处理;若下游先进先出队列已满,则保持当前处理状态并向上游传播反压信息;若当前处理尚未完成,则继续占用后续时钟周期。
12、进一步地,所述步骤3中的预设事件包括:数据包到达、输出端口资源释放、信用资源更新、仲裁条件满足和传输完成中的一种或多种。
13、进一步地,所述步骤6中,性能指标包括吞吐率、平均时延、尾时延、缓冲资源占用和多通信流公平性中的一种或多种;仿真评估结果包括各项性能指标、由多项性能指标组合得到的综合评估值中的一种或多种。
14、进一步地,所述步骤7中参数配置空间筛选过程采用约束剪枝方法、自适应搜索方法或两者的组合实现。
15、进一步地,当所述目标计算系统为全连接片间互连拓扑结构时,各计算节点之间通过点对点链路直接连接,不包括交换结构;发送路径任务输出的数据包直接进入链路传输模块对应的输入队列,链路传输模块作为共享传输任务,根据链路带宽和传输时延完成事件驱动建模;接收侧通信端口执行接收缓冲、协议解包和完成处理。
16、与现有技术相比,本发明具有如下有益效果:
17、1.对时序敏感的通信端口采用周期精确建模、对规模较大的交换结构和链路传输采用事件驱动建模,通过差异化建模兼顾仿真精度与仿真效率;
18、2.通过先进先出队列对各模块进行解耦,构建生产者—消费者式的仿真流水线,降低全局同步开销,提高大规模多节点系统下的仿真可扩展性;
19、3.根据数据分片参数将协议级通信事务转换为数据包,并逐层模拟协议打包、缓冲、仲裁、转发、链路传输和协议解包过程,建立上层通信事务与底层互连行为之间的映射关系;
20、4.统一记录事务及数据包在不同建模模块中的时间信息和资源占用信息,可输出吞吐率、平均时延、尾时延、缓冲占用和公平性等性能指标;
21、5.将互连参数配置与对应仿真评估结果反馈至参数筛选评估模块,使参数筛选过程能迭代调用仿真框架并更新待评估配置,减少遍历全部参数组合所需的仿真次数。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com