Accelergy-Project / timeloop-accelergy-tutorial

Docker container with tools for the Timeloop/Accelergy tutorial
http://accelergy.mit.edu/tutorial.html
MIT License
23 stars 11 forks source link

Can I change the model into a more accurate one? #9

Closed Jyumonji-x closed 2 years ago

Jyumonji-x commented 2 years ago

Hello,

I am testing the exercises in the tutorial on Timeloop and Accelergy. All the exercises worked well, but 2020.ispass exercise is only based on a simple technology model.

So can I change it into a more accurate model? I've tried to use accelergy-aladdin-plug-in and added a new list item in accelergy_config.yaml, but there's still no use.

Thank you in advance!

nellie-wu commented 2 years ago

Is the the accelergy-aladdin-plug-in installed with pip3 install .? If so, would you please share your accelergy_config.yaml for us to take a look at the specification? Thanks!

Another way is to try out the docker we provide with all tools installed.

Jyumonji-x commented 2 years ago

Thank you for your reply!

I finally tried the docker and it worked, thank you for the recommendation!

I tried the timeloop+accelergy experiment. The file timeloop-mapper.ERT_summary.yaml contains data from various estimators. It seemed that the models worked. I found that the file accelergy_config.yaml is the same as I did, so maybe I made a mistake elsewhere.

Then I tried to understand the file timeloop-mapper.stats.txt. I found that the idle power was not added in. And the "Network" Energy cost were all zero. On the other hand, I found there were idle energy and other detailed data for different component states.

So are the idle power and "Network" cost ignored? And what's the relationship between timeloop-mapper.stats.txt and timeloop-mapper.ERT.yaml ?

Thank you!

nellie-wu commented 2 years ago

Glad that the docker works! It might be helpful to check if your native install has accelergy_config.yaml pointing to the folder that really has your plug-ins in.

Yes, your observation is correct --- idle energy is not captured by Timeloop. The network energy is estimated with a wire component in the ERT, so you can add a 'wire' component to your architecture spec's top level (e.g., above the DRAM), and timeloop should then pick up the unit wire energy in accelergy:

    - name: Wire 
      class: wire
      attributes:
        length: 1
        datawidth: 1

The ERT is recording the energy consumption of a single action (eg, read cost), and the energy in timeloop.stats.txt is an aggregation of number of times an action has occurred * energy of a single action.