Offcanvas

JIT ���������

MS 파이썬용 컴파일러 ‘파이지온’, 버전 1.0 출시

닷넷 6(.NET 6) 런타임으로 컴파일되는 파이썬용 JIT(Just-In-Time) 컴파일 시스템 ‘파이지온(Pyjion)’의 버전 1.0이 공개됐다.  파이썬 소프트웨어 재단 펠로우이자 마이크로소프트 펠로우인 앤서니 쇼가 개발한 ‘파이지온’은 ‘파이파이(PyPy)’와 같은 독립실행형 런타임이 아니라 파이썬 3.10에서 실행되는 설치형 라이브러리다.    설치 후 파이지온 라이브러리를 가져와 활성화하면 프로그램에서 파이지온을 사용할 수 있다. 파이지온을 활성화한 후 가져오거나 정의하는 모든 파이썬 코드는 JIT 컴파일된다. 파이지온은 닷넷 EE(.NET EE) 컴파일러를 통해 파이썬 가상머신 명령 코드를 어셈블리 언어로 컴파일한다.  개발팀이 실시한 벤치마크 결과에 따르면 파이지온은 실제 작업에서 일반 파이썬보다 약 2~3배 더 빠른 것으로 드러났다. 일부 최적화는 최대 10배의 속도 향상을 보였다고 개발팀은 전했다. JIT 최적화에 적합한 일반 연산은 훨씬 더 빠를 수 있다.  With 블록 및 async/await 등의 일부 파이썬 기능은 아직 파이지온에서 구현되지 않았지만 둘 다 로드맵에 포함돼 있다고 개발팀은 언급했다. 파이지온에는 WSGI 애플리케이션이 파이지온에서 실행될 수 있도록 하는 미들웨어 계층도 지원된다.  여러 이유로 파이썬을 더 빠르게 만드는 것은 어려운 일이었다. 파이썬의 속도를 높이는 대부분의 방법이 호환성을 위해 파이썬 C API를 활용하고, 이는 성능을 제한시킬 수 있어서다. 그런 점에서 파이썬을 C로 컴파일하는 프로젝트인 ‘C파이썬’은 파이썬 C API를 전혀 활용하지 않는 코드로 최적의 성능을 달성한다.  파이지온은 파이썬 C API를 활용하긴 하지만 현재 및 향후 계획된 최적화(예: 배열 유형에 관한 액세스 최적화 등)는 파이지온 개발팀이 이를 해결할 방법을 고려하고 있음을 시사한다. ciokr@idg.co.kr  

마이크로소프트 파이썬 파이지온 닷넷 6 JIT 컴파일 컴파일러

2021.11.10

닷넷 6(.NET 6) 런타임으로 컴파일되는 파이썬용 JIT(Just-In-Time) 컴파일 시스템 ‘파이지온(Pyjion)’의 버전 1.0이 공개됐다.  파이썬 소프트웨어 재단 펠로우이자 마이크로소프트 펠로우인 앤서니 쇼가 개발한 ‘파이지온’은 ‘파이파이(PyPy)’와 같은 독립실행형 런타임이 아니라 파이썬 3.10에서 실행되는 설치형 라이브러리다.    설치 후 파이지온 라이브러리를 가져와 활성화하면 프로그램에서 파이지온을 사용할 수 있다. 파이지온을 활성화한 후 가져오거나 정의하는 모든 파이썬 코드는 JIT 컴파일된다. 파이지온은 닷넷 EE(.NET EE) 컴파일러를 통해 파이썬 가상머신 명령 코드를 어셈블리 언어로 컴파일한다.  개발팀이 실시한 벤치마크 결과에 따르면 파이지온은 실제 작업에서 일반 파이썬보다 약 2~3배 더 빠른 것으로 드러났다. 일부 최적화는 최대 10배의 속도 향상을 보였다고 개발팀은 전했다. JIT 최적화에 적합한 일반 연산은 훨씬 더 빠를 수 있다.  With 블록 및 async/await 등의 일부 파이썬 기능은 아직 파이지온에서 구현되지 않았지만 둘 다 로드맵에 포함돼 있다고 개발팀은 언급했다. 파이지온에는 WSGI 애플리케이션이 파이지온에서 실행될 수 있도록 하는 미들웨어 계층도 지원된다.  여러 이유로 파이썬을 더 빠르게 만드는 것은 어려운 일이었다. 파이썬의 속도를 높이는 대부분의 방법이 호환성을 위해 파이썬 C API를 활용하고, 이는 성능을 제한시킬 수 있어서다. 그런 점에서 파이썬을 C로 컴파일하는 프로젝트인 ‘C파이썬’은 파이썬 C API를 전혀 활용하지 않는 코드로 최적의 성능을 달성한다.  파이지온은 파이썬 C API를 활용하긴 하지만 현재 및 향후 계획된 최적화(예: 배열 유형에 관한 액세스 최적화 등)는 파이지온 개발팀이 이를 해결할 방법을 고려하고 있음을 시사한다. ciokr@idg.co.kr  

2021.11.10

피스톤 2.2 출시··· “기본 파이썬보다 30% 더 빠르게 실행”

피스톤(Pyston) 버전 2.2가 지난 5월 5일(현지 시각) 릴리즈됐다. 피스톤은 JIT 컴파일 등을 사용해 실행 속도를 높이는 파이썬 런타임 대체 구현이다.  이번 릴리즈에서 주목해야 할 새로운 특징이 있다. 바로 파이썬의 오리지널 라이선스 하에서 전체 소스 코드를 오픈소스 프로젝트로 사용할 수 있게 됐다는 점이다.    개발팀에 따르면 피스톤 프로젝트의 목표는 2가지다. 첫째, 추가 작업 없이 기존 파이썬 배포 속도를 높일 수 있는 표준 파이썬 런타임 대체 구현(drop-in replacement)을 제공하는 것. 둘째, 피스톤에서의 개선사항이 파이썬 자체로 업스트림 될 수 있도록 하는 것이다.  피스톤 2.2는 파이썬 3.8 버전을 기반으로 한다. 개발팀은 자체 웹 서버 벤치마크에서 피스톤 2.2가 기본 파이썬보다 약 30% 더 빠르게 실행됐다고 밝혔다. 경우에 따라 약 50% 더 빠르게 실행되기도 했다고 개발팀은 덧붙였다.  한편 피스톤은 LLVM JIT 프레임워크를 사용해 파이썬 애플리케이션 속도를 높이고자 하는 야심 찬 프로젝트로 드롭박스(Dropbox)에서 시작됐지만, 지난 2017년 드롭박스의 지원 철회로 개발이 중단됐었다.  --> “파이썬 속도 향상”··· 피스톤(Pyston), 개발 재개 기존 개발자 일부를 포함해 새롭게 구성된 피스톤 개발팀에서 제공하는 최신 버전의 피스톤은 다른 접근방식을 사용한다. 기본 C파이썬 코드로 시작하며, 이전 버전과의 호환성을 깨지 않고 성능을 향상시키는 데 도움을 주는 C파이썬을 변경한다.  이러한 맥락에서 피스톤은 파이썬 런타임을 대체하는 또 다른 구현체인 파이파이(PyPy)와 다르다. 파이파이는 JIT 컴파일을 사용해 상당한 수준의 성능 개선을 지원한다. 하지만 파이파이는 파이썬, 특히 C로 작성된 파이썬 확장 프로그램과 완전한 호환성을 유지하는 데 오랫동안 어려움을 겪고 있다. 피스톤은 C파이썬 코드베이스에서 ...

피스톤 파이썬 C파이썬 프로그래밍 언어 개발 언어 소프트웨어 개발 오픈소스 파이파이 JIT 컴파일

2021.05.07

피스톤(Pyston) 버전 2.2가 지난 5월 5일(현지 시각) 릴리즈됐다. 피스톤은 JIT 컴파일 등을 사용해 실행 속도를 높이는 파이썬 런타임 대체 구현이다.  이번 릴리즈에서 주목해야 할 새로운 특징이 있다. 바로 파이썬의 오리지널 라이선스 하에서 전체 소스 코드를 오픈소스 프로젝트로 사용할 수 있게 됐다는 점이다.    개발팀에 따르면 피스톤 프로젝트의 목표는 2가지다. 첫째, 추가 작업 없이 기존 파이썬 배포 속도를 높일 수 있는 표준 파이썬 런타임 대체 구현(drop-in replacement)을 제공하는 것. 둘째, 피스톤에서의 개선사항이 파이썬 자체로 업스트림 될 수 있도록 하는 것이다.  피스톤 2.2는 파이썬 3.8 버전을 기반으로 한다. 개발팀은 자체 웹 서버 벤치마크에서 피스톤 2.2가 기본 파이썬보다 약 30% 더 빠르게 실행됐다고 밝혔다. 경우에 따라 약 50% 더 빠르게 실행되기도 했다고 개발팀은 덧붙였다.  한편 피스톤은 LLVM JIT 프레임워크를 사용해 파이썬 애플리케이션 속도를 높이고자 하는 야심 찬 프로젝트로 드롭박스(Dropbox)에서 시작됐지만, 지난 2017년 드롭박스의 지원 철회로 개발이 중단됐었다.  --> “파이썬 속도 향상”··· 피스톤(Pyston), 개발 재개 기존 개발자 일부를 포함해 새롭게 구성된 피스톤 개발팀에서 제공하는 최신 버전의 피스톤은 다른 접근방식을 사용한다. 기본 C파이썬 코드로 시작하며, 이전 버전과의 호환성을 깨지 않고 성능을 향상시키는 데 도움을 주는 C파이썬을 변경한다.  이러한 맥락에서 피스톤은 파이썬 런타임을 대체하는 또 다른 구현체인 파이파이(PyPy)와 다르다. 파이파이는 JIT 컴파일을 사용해 상당한 수준의 성능 개선을 지원한다. 하지만 파이파이는 파이썬, 특히 C로 작성된 파이썬 확장 프로그램과 완전한 호환성을 유지하는 데 오랫동안 어려움을 겪고 있다. 피스톤은 C파이썬 코드베이스에서 ...

2021.05.07

“파이썬 속도 향상”··· 피스톤(Pyston), 개발 재개

드롭박스(Dropbox)가 ‘피스톤(Pyston)’ 개발 지원을 철회한 이후, 새롭게 구성된 개발팀이 파이썬 런타임을 최적화하는 JIT(just-in-time)의 최신 버전을 공개했다.  오랫동안 중단됐었던 ‘피스톤’ 개발 작업이 다시 시작됐다. 지난 28일(현지 시각) 드롭박스가 후원을 중단한 이후 처음으로 피스톤 개발팀이 피스톤 2.0을 출시한 것이다. 피스톤은 파이썬 프로그램의 실행 속도를 높이기 위해 JIT 컴파일(just-in-time compilation)을 사용하는 파이썬 런타임 변형이다.    기본적으로 피스톤은 표준 파이썬 런타임인 ‘C파이썬(CPython)’의 대체품을 제공한다. 또한 이는 파이썬 3.8과 호환되므로 해당 버전의 파이썬으로 실행되는 프로그램은 피스톤에서도 그대로 실행된다.  피스톤은 ‘JIT 컴파일’ 또는 ‘JITting’을 사용하여 코드를 생성해 속도를 크게 향상시킨다. 개발팀에 따르면 이는 표준 파이썬 프로그램에서 눈에 띄는 속도 개선을 보여줬다. 반면, ‘파이토치(Pytorch)’와 같이 더 빠른 실행을 위해 C/C++ 모듈을 사용하는 프로그램에서는 속도 향상이 적거나 거의 이뤄지지 않았다.  이 프로젝트의 목표 중 하나는 C파이썬의 원래 구현과 최대한 가깝게 유지하는 것이었다. 많은 서드파티 프로젝트가 C파이썬 동작(CPython behavior)에 대해 가정하기 때문이다. 이에 따라 ‘피스톤 2.0’은 기존 C파이썬 코드베이스에서 시작해, 피스톤 1.0에서 잘 작동했던 기능(예: 캐싱 속성 및 JITting)을 추가했다. 피스톤 JIT는 더 이상 LLVM(Low Level Virtual Machine)을 사용하지 않고, DynASM(Dynamic Assembler)을 사용하여 어셈블리를 직접 생성한다.  JITting은 파이썬 애플리케이션에 속도 향상을 지원하는 다른 프로젝트인 ‘PyPy’에서 사용하는 것과 동일한 기술이다. 이는 때에 따라 C파이썬이 제...

피스톤 파이썬 JIT 컴파일 PyPy 드롭박스 C파이썬 기트허브

2020.10.30

드롭박스(Dropbox)가 ‘피스톤(Pyston)’ 개발 지원을 철회한 이후, 새롭게 구성된 개발팀이 파이썬 런타임을 최적화하는 JIT(just-in-time)의 최신 버전을 공개했다.  오랫동안 중단됐었던 ‘피스톤’ 개발 작업이 다시 시작됐다. 지난 28일(현지 시각) 드롭박스가 후원을 중단한 이후 처음으로 피스톤 개발팀이 피스톤 2.0을 출시한 것이다. 피스톤은 파이썬 프로그램의 실행 속도를 높이기 위해 JIT 컴파일(just-in-time compilation)을 사용하는 파이썬 런타임 변형이다.    기본적으로 피스톤은 표준 파이썬 런타임인 ‘C파이썬(CPython)’의 대체품을 제공한다. 또한 이는 파이썬 3.8과 호환되므로 해당 버전의 파이썬으로 실행되는 프로그램은 피스톤에서도 그대로 실행된다.  피스톤은 ‘JIT 컴파일’ 또는 ‘JITting’을 사용하여 코드를 생성해 속도를 크게 향상시킨다. 개발팀에 따르면 이는 표준 파이썬 프로그램에서 눈에 띄는 속도 개선을 보여줬다. 반면, ‘파이토치(Pytorch)’와 같이 더 빠른 실행을 위해 C/C++ 모듈을 사용하는 프로그램에서는 속도 향상이 적거나 거의 이뤄지지 않았다.  이 프로젝트의 목표 중 하나는 C파이썬의 원래 구현과 최대한 가깝게 유지하는 것이었다. 많은 서드파티 프로젝트가 C파이썬 동작(CPython behavior)에 대해 가정하기 때문이다. 이에 따라 ‘피스톤 2.0’은 기존 C파이썬 코드베이스에서 시작해, 피스톤 1.0에서 잘 작동했던 기능(예: 캐싱 속성 및 JITting)을 추가했다. 피스톤 JIT는 더 이상 LLVM(Low Level Virtual Machine)을 사용하지 않고, DynASM(Dynamic Assembler)을 사용하여 어셈블리를 직접 생성한다.  JITting은 파이썬 애플리케이션에 속도 향상을 지원하는 다른 프로젝트인 ‘PyPy’에서 사용하는 것과 동일한 기술이다. 이는 때에 따라 C파이썬이 제...

2020.10.30

IDG 설문조사

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.

10.4.0.6