JIT Planning for 3.15 and 3.16
未關閉
@diegorusso 已經在處理了。
開始於 2026年1月12日。
interpreter-core
topic-JIT
- 主要語言
- Python
- 星號
- 77.2k
- 分支
- 36k
- PR 合併指標
- PR 指標待擷取
描述
Following a conversation at the CPython Core Dev Sprint, this is an uber issue tracking JIT performance goals and planning for 3.15 and 3.16.
The goal here is to capture our goals and the work that we believe is necessary to enable the JIT (on by default).
3.15 (May 2026)
Goals & "features"
Must Haves
- 5% faster (geometric mean)
- Best case: 50% faster
- Worst case: -10% faster
- JIT coverage (i.e., how much code is being JIT'ted): 80% https://github.com/python/cpython/issues/142982
- Free-threading supported (pre-beta) https://github.com/python/cpython/issues/133171 https://github.com/python/cpython/pull/141595
- Support for out-of-process profilers and debuggers https://github.com/python/cpython/issues/126910
Nice to haves
- 10% faster (geometric mean)
- Best case: 100% faster
- Worst case 1% slower
- JIT coverage (i.e., how much code is being JIT'ted): 90%
- Robust documentation
How will we do this?
- Register allocation https://github.com/python/cpython/pull/135465
- More optimizations https://github.com/python/cpython/issues/131798 https://github.com/python/cpython/issues/134584
- Trace recording https://github.com/python/cpython/issues/139109
- Code gen
- LLVM 21 #140479
- Warm up faster
- More specialization https://github.com/python/cpython/issues/143732
3.16
Goals & "features"
Must Haves
- ~ similar debuggability and performance across Tier 1 platforms
- 2+ maintainers in front-end, middle-end, and back-end
- ...Anything listed in 3.15 nice to have that was not achieved (e.g. docs, better coverage, faster)
How will we do this?
- Unboxing (int/float/other types)
- LLVM 22
Linked PRs
- gh-142845
- gh-143479
- gh-143705
- gh-146013
- gh-148018
- gh-148359
- gh-148572
- gh-149210
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
評估
這個 Issue 還沒有評估資料。