Hello, when I use primitive components in my architecture description I find that they do not appear in the ERT that is generated. Here is an example when calling accelergy on the eyeriss_like architecture (which is defined in version 0.3 in my case):
ERT_summary:
version: '0.4'
table_summary:
- name: system.eyeriss.PE[0..167].ifmap_spad
actions:
- name: write
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: read
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: idle
energy: 3.0
primitive_estimation(s):
- name: storage
estimator: Aladdin_table
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
- name: system.eyeriss.PE[0..167].weights_spad
actions:
- name: write
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: read
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: idle
energy: 3.0
primitive_estimation(s):
- name: storage
estimator: Aladdin_table
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
- name: system.eyeriss.PE[0..167].psum_spad
actions:
- name: write
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: read
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: idle
energy: 3.0
primitive_estimation(s):
- name: storage
estimator: Aladdin_table
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
- name: system.eyeriss.shared_glb
actions:
- name: write
average_energy: 20.3293
max_energy: 30.5989
min_energy: 2.0
- name: read
average_energy: 19.8123
max_energy: 29.7923
min_energy: 2.0
- name: idle
energy: 2.0
primitive_estimation(s):
- name: storage
estimator: CactiSRAM
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
The intmac primitive component does not even show up here. I think that I managed to track this problem down on my end. In primitive_component.py, the actions members are initialized based on the provided component_class. This seems to be defined in accelergy_console.py, line 182 and just uses an empty list for the actions. Since the ERT is generated for each action, this results in primitive components being entirely absent from the ERT file. Is there a way to fix this issue?
I have also noticed that raw_dicts.get_pc_classses().items() returns an empty iterator. I'm not sure if this has something to do with my issue though.
Hello, when I use primitive components in my architecture description I find that they do not appear in the ERT that is generated. Here is an example when calling accelergy on the eyeriss_like architecture (which is defined in version 0.3 in my case):
ERT_summary:
version: '0.4'
table_summary:
- name: system.eyeriss.PE[0..167].ifmap_spad
actions:
- name: write
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: read
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: idle
energy: 3.0
primitive_estimation(s):
- name: storage
estimator: Aladdin_table
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
- name: system.eyeriss.PE[0..167].weights_spad
actions:
- name: write
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: read
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: idle
energy: 3.0
primitive_estimation(s):
- name: storage
estimator: Aladdin_table
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
- name: system.eyeriss.PE[0..167].psum_spad
actions:
- name: write
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: read
average_energy: 2.75
max_energy: 3.0
min_energy: 2.0
- name: idle
energy: 3.0
primitive_estimation(s):
- name: storage
estimator: Aladdin_table
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
- name: system.eyeriss.shared_glb
actions:
- name: write
average_energy: 20.3293
max_energy: 30.5989
min_energy: 2.0
- name: read
average_energy: 19.8123
max_energy: 29.7923
min_energy: 2.0
- name: idle
energy: 2.0
primitive_estimation(s):
- name: storage
estimator: CactiSRAM
- name: address_generators[0]
estimator: dummy
- name: address_generators[1]
estimator: dummy
- name: address_generators[0..1]
estimator: dummy
The intmac primitive component does not even show up here. I think that I managed to track this problem down on my end. In primitive_component.py, the actions members are initialized based on the provided component_class. This seems to be defined in accelergy_console.py, line 182 and just uses an empty list for the actions. Since the ERT is generated for each action, this results in primitive components being entirely absent from the ERT file. Is there a way to fix this issue?
I have also noticed that raw_dicts.get_pc_classses().items() returns an empty iterator. I'm not sure if this has something to do with my issue though.