From 78ce2dabe18ef1d87dc435e5bc9369ce82e8d6d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciro=20Santilli=20=E5=85=AD=E5=9B=9B=E4=BA=8B=E4=BB=B6=20?= =?UTF-8?q?=E6=B3=95=E8=BD=AE=E5=8A=9F?= Date: Fri, 28 Feb 2020 00:00:00 +0000 Subject: [PATCH] create a section for pybind11 gem5 slowness --- README.adoc | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/README.adoc b/README.adoc index 070bd4c..d1bd937 100644 --- a/README.adoc +++ b/README.adoc @@ -10644,7 +10644,7 @@ gem5 however has tended towards horrendous intensive <>. + -This is done so that reconfiguring platforms can be done quickly without recompiling, and it is amazing when it works, but the maintenance costs are also very high. +This is done so that reconfiguring platforms can be done quickly without recompiling, and it is amazing when it works, but the maintenance costs are also very high. For example, <> of several trivial `param_` files accounted for 50% of the build time at one point: <>. === gem5 run benchmark @@ -12847,7 +12847,7 @@ BadDevice::BadDevice(Params *p) } .... -It has been found that this usage of pybind11 across hundreds of `SimObject` files accounted for 50% of the gem5 build time at one point: https://gem5.atlassian.net/browse/GEM5-366 +It has been found that this usage of <> across hundreds of `SimObject` files accounted for 50% of the gem5 build time at one point: <>. To get a feeling of how `SimObject` objects are run, see: <>. @@ -14980,6 +14980,8 @@ link:userland/libs/pybind11[] https://stackoverflow.com/questions/145270/calling-c-c-from-python/60374990#60374990 +pybind11 is amazingly easy to use. But it also makes your builds really slow: <>. + ==== Node.js Host installation shown at: https://askubuntu.com/questions/594656/how-to-install-the-latest-versions-of-nodejs-and-npm/971612#971612 @@ -20582,8 +20584,6 @@ We will update this whenever the gem5 submodule is updated. All benchmarks done on <>. -Sample results at gem5 2a9573f5942b5416fb0570cf5cb6cdecba733392: 10 to 12 minutes. - Get results with: .... @@ -20591,7 +20591,19 @@ Get results with: tail -n+1 ../linux-kernel-module-cheat-regression/*/gem5-bench-build-*.txt .... -Ubuntu 19.10, GCC 9.2.1, LKMC 7c6bb29bc89ec3f1056c0680c3f08bd64018a7bc, gem5 d7d9bc240615625141cd6feddbadd392457e49eb (18-02-2020), `./build --arch aarch64 --gem5-worktree master --no-cache`: 19:33 TODO must investigate why it got so much worse. +Ubuntu 19.10, GCC 9.2.1, LKMC 7c6bb29bc89ec3f1056c0680c3f08bd64018a7bc, gem5 d7d9bc240615625141cd6feddbadd392457e49eb (2020-02-18), `./build --arch aarch64 --gem5-worktree master --no-cache`: 19m 33s TODO must investigate why it got so much worse. + +Same but gem5 d7d9bc240615625141cd6feddbadd392457e49eb (2018-06-17) hacked with `-Wnoerror`: 11m 37s. So there was a huge regression in the last two years! We have to find it out. + +A profiling of the build has been done at: https://gem5.atlassian.net/browse/GEM5-277 + +====== pybind11 accounts for 50% of gem5 build time + +https://gem5.atlassian.net/browse/GEM5-366 + +Yes, <> is slow to build. + +See also: <>. ====== Benchmark gem5 single file change rebuild time