You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I'm using Zigzag to analyze a customized vision transformer model and trying to map it onto Digital IMC architecture. One thing I observed is that when there are no constant operands, get_act_layer_op always selects the second input operand (layer_node.py, line 206) and get_weight_layer_op always selects the first input operand. I printed out the selected operand and found out the returned act_layer_op is W and weight_layer_op is I. This raised an issue in calculate_mapped_rows_when_diagonal_mapping_found since the act_pr_layer_dims will always be empty if act_layer_op is W.
I simply switch the index to resolve the error, but I'm not sure if the logic is correct here. Why does the original code select the second input operand for act_layer_op and the first operand for weight_layer_op? Is there a specific reason behind it? I'm not sure if this fix is valid here.
I'm also confused about how lab6 (main.py) computes the overall latency running workload on imc architecture: delay_in_ns = energy * cmes[0].tclk. I printed out cmes[0].tclk, which looks like the clock cycles period. Why does the code multiply energy with the clock cycle period to get the delay? Should it multiply the latency(total number of clock cycles) by the clock period?
The text was updated successfully, but these errors were encountered:
Hi, I'm using Zigzag to analyze a customized vision transformer model and trying to map it onto Digital IMC architecture. One thing I observed is that when there are no constant operands, get_act_layer_op always selects the second input operand (layer_node.py, line 206) and get_weight_layer_op always selects the first input operand. I printed out the selected operand and found out the returned act_layer_op is W and weight_layer_op is I. This raised an issue in calculate_mapped_rows_when_diagonal_mapping_found since the act_pr_layer_dims will always be empty if act_layer_op is W.
I simply switch the index to resolve the error, but I'm not sure if the logic is correct here. Why does the original code select the second input operand for act_layer_op and the first operand for weight_layer_op? Is there a specific reason behind it? I'm not sure if this fix is valid here.
I'm also confused about how lab6 (main.py) computes the overall latency running workload on imc architecture: delay_in_ns = energy * cmes[0].tclk. I printed out cmes[0].tclk, which looks like the clock cycles period. Why does the code multiply energy with the clock cycle period to get the delay? Should it multiply the latency(total number of clock cycles) by the clock period?
The text was updated successfully, but these errors were encountered: