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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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