Replies: 10 comments 4 replies
-
Apparently it's the PGO that is hurting nbody more than it is helping :( Results on main right now for
Could be related to https://bugs.python.org/issue45116 |
Beta Was this translation helpful? Give feedback.
-
This could also be bpo-45116. Is there an experiment that you could do to force inlining in ceval.c? 3% faster is really disappointing. |
Beta Was this translation helpful? Give feedback.
-
We should also recalculate that geometric mean without the |
Beta Was this translation helpful? Give feedback.
-
Perhaps instead of msvc, clang-cl can be used instead as it seems supported. |
Beta Was this translation helpful? Give feedback.
-
@kumaraditya303 If you're interested, it's worth at least trying the Clang stuff, to see just how much we'd have to change to get a running binary with PGO+LTO that can still load 3rd party extensions (DLLs) built using the standard MSVC toolchain (e.g. wheels). |
Beta Was this translation helpful? Give feedback.
-
Do you want to use that as a starting point? IMO most of the work will be experimenting with how easy it is to use (e.g. make it easy for a dinosaur like myself to switch). |
Beta Was this translation helpful? Give feedback.
-
I am still struggling to repro this result, mostly because pyperformance has a few issues.
Eric is working on the latter two now. In the meantime I am trying to think of a fix. Mark suggested that we might redefine Py_INCREF/DECREF as macros at the top of the file to force the compiler to "inline" them. Are there other suggestions/ideas? |
Beta Was this translation helpful? Give feedback.
-
I get a different set of results. The geometric mean is 1.13x faster. (But I have 14 failing benchmarks.) This is on yesterday's main branch (sadly I failed to get the exact commit). A few random comments:
I gave up at this point, but you get the picture -- I believe my results aren't completely off. Possibly the age or architecture of the hardware differs?
I would attach my JSON files but GitHub doesn't believe in JSON attachments. |
Beta Was this translation helpful? Give feedback.
-
More details: the log of all changes to ceval.c since 3.11a6.
|
Beta Was this translation helpful? Give feedback.
-
Another build (a day later) is 5% faster again, but I don't really believe these results. But that means I also don't really believe Dennis' results. We're waiting on a stable machine to run tests. |
Beta Was this translation helpful? Give feedback.
-
Comparing versions (installed from python.org installers):
I replicated the
nbody
results on another run of each benchmark:I did have to change a couple of lines of pyperformance to get it to run:
In
_pythoninfo.py
, changebase_executable = os.path.join(os.path.dirname(stdlib_dir), 'python')
topython.exe
.Beta Was this translation helpful? Give feedback.
All reactions