python / cpython

The Python programming language
https://www.python.org
Other
63.48k stars 30.4k forks source link

JIT: Use pthread_jit_write_protect_np on macOS #126195

Open diegorusso opened 2 weeks ago

diegorusso commented 2 weeks ago

Feature or enhancement

Proposal:

The proposal is an internal implementation of the JIT and it transparent to the user.

Has this already been discussed elsewhere?

I have already discussed this feature proposal on Discourse

Links to previous discussion of this feature:

Not on Discourse, I've had extensive discussion about this with @brandtbucher and created a prototype that we benchmarked using the faster-cpython infrastructure. The full results are here: https://github.com/faster-cpython/benchmarking-public/tree/main/results/bm-20241018-3.14.0a1+-f74cd79-JIT

On macOS on Apple Silicon there is an overall 1.4% speed improvement by replacing the mprotect with pthread_jit_write_protect_np.

Linked PRs

brandtbucher commented 3 days ago

I'll leave this open in case we want to explore the pthread_jit_write_with_callback_np API: https://developer.apple.com/documentation/apple-silicon/porting-just-in-time-compilers-to-apple-silicon