Python 3.13 gets a JIT
Tonybaloney
Python에 copy-and-patch JIT가 추가되는 PR이 열렸습니다.( https://github.com/python/cpython/pull/113465 ) 이 PR은 CPython 핵심 개발자인 Brandt Bucher가 올렸는데 현재 리뷰도 거의 끝나고 큰 문제가 없는거 같아서 조만간 머지될 것으로 보입니다.
이 copy-and-patch JIT이 무엇인지를 설명하는 글인데 JIT에 대한 이해도에도 도움이 될만한 글입니다.
인터프리터는 실행할 때마다 opcode라 부르는 바이트 코드 이름을 if 문으로 비교하기 때문에 실행할 때마다 약간의 오버헤드가 발생합니다. 이 오버헤드를 없애기 위해 시퀀스로 코드를 생성하는 것이 JIT인데 이번 PR에 올라온 것은 copy-and-patch PR 입니다.
인터프리터 루프는 해석하고 실행하는 두가지 과정으로 진행되는데 copy-and-patch JIT은 각 명령의 인스트럭션을 복사한 뒤(copy) 바이트 코드의 인수를 채우는(patch) 방식으로 진행됩니다. Python에서 copy-and-patch JIT을 선택한 이유는 일반 Python 사용자가 이를 실행할 일은 없고 CPython을 빌드하고 패키징하는 CI 머신에서 LLVM JIT 도구로만 설치하면 되기 때문입니다.
초기 벤치마크에 따르면 2~9% 정도의 성능 향상이 있었는데 높은 성능은 아니지만 앞으로 이어질 최적화 작업의 첫 단계로 이해하면 된다고 합니다.
https://tonybaloney.github.io/posts/python-gets-a-jit.html
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 1월 27일 오전 3:42
6
... 더 보기하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.
... 더 보기피클은 지난달 하루 200명씩 신규 유입, 불과 한 달 만에 사용자 수 5배라는 폭발적 성장세를 보이고 있다. 전체 이용자 중 70%가 미국, 20%가 유럽에 분포하며, 평균 주 5회 이상 회의·온라인 모임에 피클 아바타를 활용하고 있다.
... 더 보기