Open PhilippvK opened 7 months ago
Most of the flow processing time goes on git operations (times in seconds, from se-henri server at DLR running 4 CPUs, piping demo.py through "ts" util)
phase | seconds |
---|---|
loading core_desc | 9 |
applying seal5 patches | 9 |
transforming | 14 |
generating instruction patches | 7 |
applying instruction patches | 64 |
The git python module used to apply the patches forks a lot of git processes (hundreds), which is where most of the 64 seconds is consumed. Possible remedies:
Following up after our discussion...
Tasks:
BTW, you can find the full log output (incuding timestamps and all verbosity levels, and output of previous runs) in /tmp/seal5_llvm_demo/.seal5/logs/seal5.log
I added instruction level parallelism to the behav_to_pat
pass, which is the most time-critical transform, cutting down the runtime (for XCoreVSimd
) from 80s to 10s on a 18C/36T CPU.
This feature will be ported to other transforms as well when we have a more stable transforms-API which should help to reduce duplicated codes
We should be able to speed up the flow (transforms/backends) by introducing parallelism.
Possible levels:
Since we currently handle transforms via Python subprocesses, it should be trivial to parallelize those.