NVlabs/timeloop

Memorry access read write energy

Omar-Abdul-Aziz opened this issue · 4 comments

Hello, It's posiible to modify the time and energy of the memory access in Timeloop for the memories between the Main Memory and the PE?
For example, I can test the influence of using a memory two or three faster in the reading?

Thank you

For energy you can do it by altering the Accelergy tables, or you can also override the Accelergy data by specifying vector-access-energy for each memory level in arch.yaml.

For performance, what do you mean by "faster"? Initial access latency, or throughput? If it's throughput you'll want to change the bandwidth attribute (specified in words-per-cycle that the memory can deliver). If it's latency then Timeloop doesn't model that today. And for large enough workloads it shouldn't be a huge factor.

In my case, I do have an adder and multiplier table with some modifications from the one in the TimeLoop installation. In this files I have a specified latency, energy and areas ( for example, latency x : energy = ... , area = ...) and modifying the aladdin_table.py correspondingly. Then, in the arch.yaml file we precise that MAC latency is x.
However, I find out that accelergy doesn't take the energy and area corresponding to the latency x but always it takes the values of the default latency (5 ns).
I tried to change the whole values in the adder and multiplier table, but I have the same values that correspond to latency 5. Even I tried to delete the adder and multiplier table but timeloop still use the values that correspond to latency 5.
Do you have an idea from where timeloop take these energy and areas values?

Thank you

There are two places that you might want to check:

  1. Did you reinstall the Aladdin plug-in after changing the code? If not, you need to reinstall it to reflect the change.
  2. Is your MAC a compound component class? If so, you need to make sure that the latency attribute of MAC is correctly propagated to the subcomponents' latency attribute in the compound component definition.

FYI, you can add your table-based plug-in for your own energy numbers. We have a template for doing that here: https://github.com/Accelergy-Project/accelergy-table-based-plug-ins

Thank you for your quick responce!
It works