As systems and applications grow more complex, detailed simulation takes an ever increasing amount of time. The prospect of increased simulation time resulting in slower design iteration forces architects to use simpler models, such as spreadsheets, when they want to iterate quickly on a design. However, the task of migrating from a simple simulation to one with more detail often requires multiple executions to find where simple models could be effective, which could be more expensive than running the detailed model in the first place. Also, architects must often rely on intuition to choose these simpler models, further complicating the problem. In this work, we present a method of bridging the gap between simple and detailed simulation by monitoring simulation behavior online and automatically swapping out detailed models with simpler statistical approximations. We demonstrate the potential of our methodology by implementing it in the open-source simulator SVE-Cachesim to swap out the level one data cache (L1D) within a memory hierarchy. This proof of concept demonstrates that our technique can handle a non-trivial use-case in not just approximation of local time-invariant statistics, but also those that vary with time (e.g., the L1D is a form of a time-series function), and downstream side-effects (e.g., the L1D filters accesses for the level two cache). Our simulation swaps out the built-in cache model with only an 8% error in the simulated cycle count while using the approximated cache models for over 90% of the simulation, and our simpler models require two to eight times less computation per "execution" of the model
翻译:随着系统和应用的日益复杂,详细的模拟需要越来越多的时间。由于模拟时间的增加导致设计重复时间的慢化,使得设计设计设计师在设计上要迅速变换时不得不使用更简单的模型,例如电子表格。然而,从简单的模拟转换到更详尽的模型的任务往往需要多次执行才能找到简单模型可以有效的地方,这比在记忆等级内运行详细模型的费用要高得多。此外,建筑师必须经常依靠直觉来选择这些更简单的模型,使问题更加复杂化。在这项工作中,我们提出一种方法,通过在线监测模拟行为和自动交换详细模型等更简单的模型来弥补简单和详细的模拟之间的缺口。我们通过在公开源模拟器SVE-Cachesim中实施这一方法的潜力,在记忆等级内将一级数据缓存(L1D)转换出来。这个概念的证明,我们的模型只能处理非初始的计算使用案例,而不只是近似当地时间变异的精确度统计,而且还需要用更简单的8个周期性模型(例如,L1-D),在时间的周期内,需要两个周期的滚动的滚动。