Bug 1156

Summary: Verilator compile flag testing
Product: Libre-SOC's first SoC Reporter: Sadoon Albader <sadoon>
Component: Source CodeAssignee: Sadoon Albader <sadoon>
Status: CONFIRMED ---    
Severity: enhancement CC: andy.miroshnikov, libre-soc-bugs
Priority: ---    
Version: unspecified   
Hardware: PC   
OS: Linux   
See Also: https://bugs.libre-soc.org/show_bug.cgi?id=1073
https://bugs.libre-soc.org/show_bug.cgi?id=1086
https://bugs.libre-soc.org/show_bug.cgi?id=1143
NLnet milestone: --- total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0 parent task for budget allocation:
child tasks for budget allocation: The table of payments (in EUR) for this task; TOML format:

Description Sadoon Albader 2023-09-10 16:57:45 BST

    
Comment 1 Sadoon Albader 2023-09-10 17:04:27 BST
Some testing was done with verilator's compile flags to measure if there is any performance left on the table without modifying verilator's source code.

These flags were applied as "CFLAGS" in addition to "-O3" which was already applied.

`-mcpu=native -mtune=native`

These flags were applied as verilator flags as well

`--threads-dpi all --x-initial fast`

Tests were made with `THREADS = 3` (other numbers showed worse results, thanks Andrey) and produced the following results:

`verilator_trace` branch: 83m17s to boot linux-microwatt-5.7 (to the login prompt)
`optimizations` branch: 83m53s to boot linux-microwatt-5.7 (to the login prompt)

Both tests were done on an Acer Swift 5 with an Intel i7 1260P (performance cpupower setting).

Conclusion: there is no measurable benefit to using any of these flags, and reading through verilator's manpage; it seems there are no other flags that can affect performance. We need to modify verilator's source code to have any speed ups.
Comment 2 Sadoon Albader 2023-09-10 17:08:37 BST
Relevant IRC chat logs:

- Verilator is using 31% of resources for thread synchronization, this leaves a lot of performance on the table
https://libre-soc.org/irclog/%23libre-soc.2023-09-06.log.html#t2023-09-06T20:50:31

- Test results showing no performance benefit
https://libre-soc.org/irclog/%23libre-soc.2023-09-09.log.html#t2023-09-09T16:18:34

- Andrey recommending `THREADS = 3`
https://libre-soc.org/irclog/%23libre-soc.2023-08-17.log.html#t2023-08-17T11:01:54
Comment 3 Sadoon Albader 2023-09-10 17:53:54 BST