google / google/CFU-Playground
Oxide: Conda-provided toolchain performance consistently different than fresh-built
- Dominant language
- Verilog
- Stars
- 565
- Forks
- 160
- PR merge metrics
- No merged PRs in 30d
Description
We have nightly actions that built 3 designs each with 3 different seeds. One of these actions gets Yosys and Nextpnr-Nexus via Conda packges. The other action builds them fresh by cloning the Yosys and Nextpnr repositories and building them fresh.
The performance (achieved maximum frequency of the placed and routed design) is usually worse with the Conda-provided package, and there is no explanation for it.
See https://github.com/google/CFU-Playground/actions/workflows/fmax-trials.yml (Conda) and https://github.com/google/CFU-Playground/actions/workflows/fmax-trials-fresh-build.yml (fresh-built).
For the middle design with fresh-built tools, the (prelim/final) fmax in MHz were (70/84), (61/83), (62/82).
Using Conda-provided tools, the values were (66/73), (54/76), (64/75).
They should be identical unless there was a significant commit between the runs (the git hashes are printed out in each run), but that is not the case here. The fresh-built results have been the same for the last few days, and the Conda packages were built within the last day.
Are the tools built with different flags? Could there be some other executable in the Conda packages that somehow affects performance? You can run both ways locally (look at the Github actions for each).
Contributor guide
Assessment
This issue has not been assessed yet.