Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

how to modify GEM5 to generate trace as input of simnet #1

Open
asds25810 opened this issue Oct 20, 2023 · 3 comments
Open

how to modify GEM5 to generate trace as input of simnet #1

asds25810 opened this issue Oct 20, 2023 · 3 comments

Comments

@asds25810
Copy link

Hi Lingda,

simnet is a really impressive work!

I'm trying to use it for more programs. Could you please give me some suggestions about how to modify GEM5 to generate trace as input of simnet? Using debug flags of GEM5, such as ROB, cache, Exec, generates too much data. How can I generate trace for a program with the same format as the provided 500.perlbench_r.10m.txt?

Thanks!

@lingda-li
Copy link
Owner

Hi,

Thanks for your interest!

The modified gem5 code that can generate SimNet input is at https://github.com/lingda-li/gem5, and the ml-sim branch. You should checkout the commit 17cfbb10f47e89aadf73c97df43c96e9cd441891, which I think is the right version for SimNet (but cannot guarantee). The output trace should be in the folder where simulation gets executed.

@asds25810
Copy link
Author

Hi Lingda,

I have successfully reproduced the pipeline of simnet. As the papers (sigmetrics 2022 and SC 2022) introduced, if run simnet without subtrace parallel, it shows really low MIPS (e.g., 0.005 MIPS on a 3080ti), due to the heavy computation of the neural network.

I don't quite understand the role of the neural network, as subtrace parallel seems like the key to accelerate simulation. What if use another faster trace-driven simluator plus subtrace parallel?

@lingda-li
Copy link
Owner

Glad that you were able to reproduce. Feel free to submit pull requests to maybe help other people. About your question, neural network is much more regular and parallel. On the other hand you can potential use a CPU thread to simulate each subtrace on CPU using traditional simulators, but there is irregularity between threads, and it won't generate as nearly much parallelism as the GPU case to accelerate neural network.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants