在异构体系架构中,硬件加速器的广泛使用带来了性能和能效的提升。加速器设计流程中,高层次综合工具可以将加速器的C语言设计编译成硬件语言描述的寄存器传输级(Register Transfer Level,RTL)设计。RTL模拟是硬件设计中功能验证的重要步...
详细信息
在异构体系架构中,硬件加速器的广泛使用带来了性能和能效的提升。加速器设计流程中,高层次综合工具可以将加速器的C语言设计编译成硬件语言描述的寄存器传输级(Register Transfer Level,RTL)设计。RTL模拟是硬件设计中功能验证的重要步骤,用它验证加速器设计具有较高的精确度,但是生成、模拟并分析一个比较复杂的加速器RTL设计通常消耗数小时甚至数天的时间。然而,现有的RTL模拟加速方法中,对RTL模拟分析过程进行优化的加速方法对较大规模加速器的加速倍数较小,依靠额外硬件的加速方法成本较高,对加速器的C描述进行性能建模的加速方法未完成对加速器电路设计的功能验证。为了解决上述问题,提出了一种基于代码插桩的RTL模拟加速方法。对加速器的C语言描述进行代码插桩,跳过加速器中大部分重复的循环迭代不进行分析,用高层次综合工具将其编译成硬件语言描述并进行RTL模拟,实现了较大的RTL模拟加速倍数;建立了性能预测模型,用部分循环迭代的RTL模拟性能结果预测原本完整的RTL模拟的周期数;代码插桩插入了变量还原代码,保证RTL模拟结果的正确性,并且在不使用额外硬件的条件下完成了对电路设计的功能验证,同时减小了性能预测误差。此外,设计了使用该方法的加速器设计代码框架以及一系列编程接口,方便用户高效地使用此加速方法设计加速器,从而提高了用高层次综合工具进行加速器硬件设计的效率。实验部分用Mach Suite加速器基准程序验证提出的方法,使用Vivado XSIM进行RTL模拟。实验结果表明,对于单次数据处理和批量数据处理的加速器RTL模拟,此方法的加速平均倍数分别可以达到7.49倍和43.3倍,对性能的周期数预测误差平均值分别为1.71%和1.06%,有效地缩短了RTL模拟的时间并控制了较低的精确度误差。并通过实验总结、推导出使用该方法跳过循环迭代的间隔值公式,使得用户在使用该方法进行加速器硬件设计时,可以快速找到加速倍数和精确度之间的平衡地带。
暂无评论