I tried to describe myself in Timeloop an architecture of an accelerator. For the workload, I use the 5 convolution layers of AlexNet available in the tutorial.
When I run Timeloop with the AlexNet_layer1.yaml workload, the mapper succeeds in giving an energetic efficiency. But for the other 4 layers the mapper displays the following message:
MESSAGE: no valid mappings found within search criteria. Some suggestions:
(1) Observe each mapper thread's termination message. If it terminated due to
consecutive failed mappings, it will tell you the number of mappings that
failed because of a spatial fanout violation and the number that failed
because of a buffer capacity violation.
(2) Check your architecture configuration (especially mapspace constraints).
Try to find the offending constraints that are likely to have caused the
above violations, and disable those constraints.
(3) Try other search algorithms, and relax the termination criteria:
victory-condition, timeout and/or search-size.
(4) Enable mapper's diagnostics (mapper.diagnostics = True) to track and emit
more information about failed mappings.
For suggestions (1) (2), since the mapper worked for the AlexNet_layer1.yaml, I guess that in my case these conditions are met. (I only defined bypassconstraints for the memories)
If I activate the diagnostics (4), I get the following error: (I tried two synthaxes : mapper.diagnostics = True and diagnostics = True)
Failed to run Accelergy. Did you install Accelergy or specify ACCELERGYPATH correctly? Or check accelergy.log to see what went wrong
And (3), I modified the victory-condition, timeout and search-size criteria without any visible change. In the case of algorithms, by default I used the random-pruned algorithm. Then I tried hybrid, linear-pruned and exhaustive which did not allow the mapper to find a valid mapping for the 5 convolution layers of AlexNet. The only algorithm that worked for all five layers was random.
Here is my question:
What can be the source of the diagnostic problem?
Does the random algorithm allow to have a deterministic result (mapping)?
Can I be satisfied with the random algorithm even if the other algorithms do not allow to find a mapping?
Can you share your arch.yaml and constraints.yaml so that we reproduce the issue here? The diagnostic feature should be orthogonal to Accelergy. Thanks!
Hello,
I tried to describe myself in Timeloop an architecture of an accelerator. For the workload, I use the 5 convolution layers of AlexNet available in the tutorial.
When I run Timeloop with the AlexNet_layer1.yaml workload, the mapper succeeds in giving an energetic efficiency. But for the other 4 layers the mapper displays the following message:
For suggestions (1) (2), since the mapper worked for the AlexNet_layer1.yaml, I guess that in my case these conditions are met. (I only defined
bypass
constraints for the memories)If I activate the diagnostics (4), I get the following error: (I tried two synthaxes :
mapper.diagnostics = True
anddiagnostics = True
)And (3), I modified the victory-condition, timeout and search-size criteria without any visible change. In the case of algorithms, by default I used the
random-pruned
algorithm. Then I triedhybrid
,linear-pruned
andexhaustive
which did not allow the mapper to find a valid mapping for the 5 convolution layers of AlexNet. The only algorithm that worked for all five layers wasrandom
.Here is my question:
random
algorithm even if the other algorithms do not allow to find a mapping?Thanks