I am new to gem5. I am running SPEC2006 CPU benchmarks on gem5. What I want is to analyse the distribution different patterns in terms of ratio of 1's and 0's or different states '11', '00' etc. on memory accesses for different benchmarks. What should I do?
Asked
Active
Viewed 153 times
0
-
Hi Imran, have you tried to use tracing mechanisms such as `--debug-flags=Exec`? – Ciro Santilli May 14 '18 at 17:11
-
Hi Ciro, I think --debug-flags=MemoryAccess does provide the data being written to the memory. But now my problem is that if I just use that trace file, its size would be too large and it contains a lot of information other than just data patterns. So I am thinking about how can I write some code to get only the data. DDUMPN(data, count) seems another useful debug function for getting data. But due to lack of any prior experience with gem5, I have hard time figuring out the right and optimal solution. – Imran May 17 '18 at 04:40
-
I see, I'm also new and don't know of a better way. Maybe try to pipe the exec from stdout through sed of something of the sort. Also try sending an email to the gem5-users mailing list about it. – Ciro Santilli May 17 '18 at 11:09
-
Hi Ciro Santili, I am trying to understand memory probes as was suggested by Jason on the mailing list (you've probably seen my email). But I am unable to understand those memory probe scripts and codes. I have followed Jason's tutorial about learning gem5 and creating simple objects but still I couldn't follow how to write a new memory probe. Do you have any suggestions, in general about my further learning of gem5 and this particular task? I am not finding enough material on internet and unfortunately I don't have any other source around to get further info. – Imran Jun 04 '18 at 13:31
-
Hi Imran, I wish I had better advice than this, but this is what I'd do: 1) Find out how to create a minimal bare metal assembly program and run it on gem5 to fully control the system. I still don't know how to do it, but it is high on my priority list. 2) Place couts on parts of the code that seem interesting to your application, and run that minimal content, and try to understand how your program is generating those numbers. 3) GDB step debug certain parts of the code that look interesting. – Ciro Santilli Jun 04 '18 at 19:05