LAB/GEM5

GEM5 Tutorial 3 - gem5 결과 분석용 파일

RyoTTa 2021. 3. 4. 14:21
반응형

Understanding gem5 statistics and output

시뮬레이션 스크립트가 완료되면 결과가 출력되며, 더욱 자세한 정보들은 m5out에 출력된다.

 

config.ini : 시뮬레이션을 위해 생성된 모든 SimObject 목록이 출력되며, 설정된 Parameter도 포함되어있다.

config.json : config.ini와 같지만 json format을 사용한다.

stats.txt : 시뮬레이션에 등록된 모든 gem5의 통계 텍스트 파일이다.

 

config.ini

 시뮬레이션된 시스템에 대한 최종 Parameter, config script에서 지정되었거나 Default 값으로 지정되었어도 출력된다.

 아래는 simple.py를 실행했을때의 config.ini를 보여준다.

 각 SimObject의 이름이 "[system]" 표시되며, 다음으로 config file에 명시적으로 설정되지않은 Parameter를 포함해(Default) 모든 Parameter들이 함께 표시된다. 예를들어 simple.py에서 Clock domain을 1GHz로 설정한것이 나타나 있습니다. 

 

 해당 config.ini 파일은 원하는 시뮬레이션을 하기위해 중요한 도구입니다. gem5에서 Default값을 정의하고 재정의 하는 방법은 여러가지가 있지만, 최종 config 파일이 설정된 값이 실제로 인스턴스에 전달되는지 확인하는것이 좋은 방법입니다.

[root]
type=Root
children=system
eventq_index=0
full_system=false
sim_quantum=0
time_sync_enable=false
time_sync_period=100000000000
time_sync_spin_threshold=100000000
......
[system.clk_domain]
type=SrcClockDomain
children=voltage_domain
clock=1000
domain_id=-1
eventq_index=0
init_perf_level=0
voltage_domain=system.clk_domain.voltage_domain
......
[system.membus.snoop_filter]
type=SnoopFilter
eventq_index=0
lookup_latency=1
max_capacity=8388608
system=system

 

stats.txt

 gem5는 flexible statistics를 가지고 있다. SimObject의 각 인스턴스에는 자체적인 통계를 가지고 있다. 시뮬레이션이 종료되거나 Special statistic-dumping command가 있을 경우 모든 SimObject에 대한 Statistics의 현재 상태가 파일에 덤프 됩니다.

---------- Begin Simulation Statistics ----------
final_tick                                  493340000
host_inst_rate                                  83755
host_mem_usage                                 810680
host_op_rate                                   150354
host_seconds                                     0.08
host_tick_rate                             6574092349
sim_freq                                 100000000000
sim_insts                                        6270
sim_ops                                         11279
sim_seconds                                  0.000493
sim_ticks                                   493340000

 Statistics는 --Begin Simulation Statistics--으로 시작한다.

 gem5실행 중에 여러 통계가 있는 경우 단일 파일에 여러개가 있을 수 있다. 이는 Long-running application이나 Restoring Checkpoint일때 발생한다.

 각 Statistic은 Name(firt column)을 가지고 Value(second column)를 가지게 된다. 또한 해당 내용에 대한 Description(last column)을 가진다.

 몇가지 중요한 통계값으로 sim_seconds, sim_insts, host_inst_rate 등이 제공된다.

 

system.cpu.Branches                              1474
system.cpu.committedInsts                        6270
system.cpu.committedOps                         11279
system.cpu.idle_fraction                     0.000000
system.cpu.not_idle_fraction                 1.000000
system.cpu.numCycles                           493340
system.cpu.numWorkItemsCompleted                    0
system.cpu.numWorkItemsStarted                      0
system.cpu.num_busy_cycles               493339.99900
system.cpu.num_cc_register_reads                 7938
system.cpu.num_cc_register_writes                4342
system.cpu.num_conditional_control_insts         1136

 다음으로 SimObject들의 통계가 출력된다. 예를들어 메모리 컨트롤러 통계, 이곳에서는 Component들이 Read한 Byte 및Component에서 사용하는 평균 대역폭과 같은 정보가 출력됩니다.

 

 파일의 뒷부분에는 System call 수, Branch 수, Commit 된 명령 등에 대한 정보가 포함 된 CPU 통계가 있다.

반응형