Build System between riscv-perf-model and map #44
dingiso
announced in
Announcements
Replies: 1 comment
-
I thought about making map a submodule of olympia, but I weighted the pros and cons of doing so.
Adding the map repo as a submodule has a “pro" that the version of map coincides with the RISC-V perf model (olympia) it is expected to work with. Frustration level drops a notch. ;) Starting from scratch, all a developer needs to do is:
1. Clone olympia and its submodules
2. Create a conda environment using olympia’s recipe and activate it
3. Build olympia
Looking at the “cons” of including map in olympia as a subrepo:
- A fully built map is almost 1GB in size
* This means that for every clone of olympia one (or a team) has, there is a lot of disk space that can be consumed for the exact same code base
* Every time a modeler builds olympia, map is checked to see if its up to date
- Olympia’s CMake flow is overly complicated to use map (before the packaging system)
* The modeler is required to explicitly include header files, libraries, and library paths that map requires
* If map becomes a package (which it just did), olympia cannot build with it anymore
If map remains as a separate project to olympia, then the build steps are just increased by 1:
1. Clone olympia and its submodules
2. Create a conda environment using olympia’s recipe and activate it
3. Clone, build, and install map into the conda environment
4. Build olympia
However, there might be a happy medium between the two directions: CMake External Projects: https://cmake.org/cmake/help/latest/module/ExternalProject.html <https://cmake.org/cmake/help/latest/module/ExternalProject.html> (thanks Brett Duttro!)
I might go that route for olympia and map. Both worlds might be satisfied. :)
Thoughts/comments welcomed.
Knute
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi Knute,
After reading the message in mail list, I figure out that the version of map (before the new build system) is what making the build of riscv-perf-model frustrated.
Why not add the map with specific commit as one git submodule in riscv-perf-model repo since they all closely bounded. And we could update its commit when it's ready to use the same build system.
Thanks,
Dingisoul
Beta Was this translation helpful? Give feedback.
All reactions