仿真配置#
仿真配置用于描述 NPU-SIM 在仿真过程中使用的仿真参数,以 JSON 格式保存。它主要描述了 NPU-SIM 对不同组件的仿真方式、优化技术、控制台输出等参数。
我们提供了示例配置文件,其中包含对于所有可配置参数的记录。它位于以下目录中:
${NPU_SIM_ROOT}/llm/test/simulation_config
有关仿真配置的详细字段说明见下。
配置字段与书写规范#
字体文件#
ttf_file : string#
字体文件相对于主程序入口文件的路径。
算子#
operand : dict#
use_perf_gemm : boolean
是否使用性能优化的GEMM算子。在模拟计算周期时,会得到更准确的结果。
load_static_as_tile : boolean
在向SRAM中加载数据时,是否将静态数据作为tile进行加载。此方法会显著减少SRAM用量,从而减少溢出次数。但会引入额外的DRAM访问开销。
内存#
memory : dict#
use_beha_sram : boolean
是否使用行为级SRAM仿真。此方法会大幅加快仿真现实速度,但会略微丢失仿真精度。
use_beha_dram : boolean
是否使用行为级DRAM仿真。此方法会大幅加快仿真现实速度,但会略微丢失仿真精度。
use_dramsys : boolean
TODO
片上网络(Network on Chip)#
noc : dict#
use_beha_noc : boolean
是否使用行为级片上网络仿真。此方法会大幅加快仿真现实速度,但会略微丢失仿真精度。
router_pipe : boolean
是否开启路由器的流水线模式。此方法可以隐藏路由器从SRAM中读取数据的时间。
fast_warmup : boolean
是否跳过激活数据流图的初始数据分发。
send_recv_parallel : boolean
是否同时执行工作核的SEND_PRIM和RECV_PRIM。在开启
use_beha_noc时,启用此参数将不会有显著效果。
GPU#
gpu : dict#
use_inner_mm : boolean
执行矩阵乘法时,是否使用内积。若不开启,则采用外积。
cache_log : boolean
TODO
dram_config_file : string
指定GPU的内存配置文件相对于主程序文件入口的路径。
控制台输出#
log : dict#
log_level : number
控制台输出的详细程度。0为输出所有信息,1为省略Debug信息。
verbose_debug : boolean
是否输出以
_debug结尾的标签。关闭此参数可省略一部分的输出信息。colored : boolean
是否在控制台输出中显示颜色。