넘바

Numba
넘바
원저작자연속 분석
개발자커뮤니티 프로젝트
초기 릴리즈2012년 8월 15일, 9년 전(2012-08-15)
안정된 릴리스
0.56.0[1] / 2022년 7월 26일; 14일 전(2022-07-26)
프리뷰 릴리즈
0.54.0rc2 / 2021년 7월 16일; 12개월 전(2021-07-16)
저장소
기입처Python, C
운영 체제크로스 플랫폼
유형테크니컬 컴퓨팅
웹 사이트numba.pydata.org

Numba는 오픈 소스 J입니다.LLVM을 사용하여 Python NumPy의 서브셋을 고속 머신 코드로 변환하는 IT 컴파일러.CPU와 GPU를 위한 Python 코드를 병렬화하기 위한 다양한 옵션을 제공하며, 종종 사소한 코드 변경만 수반합니다.

Numba는 Travis Oliphant에 의해 2012년에 시작되었으며, 이후 https://github.com/numba/numba에서 빈번한 출시와 함께 활발하게 개발되고 있습니다.이 프로젝트는 DARPA, Gordon and Betty Moore Foundation, Intel, Nvidia AMD 및 GitHub 관련 기부자 커뮤니티의 지원을 받아 Anaconda, Inc.의 개발자에 의해 추진되고 있습니다.

Numba는 간단히 적용하면 사용할 수 있습니다.numba.jit숫자 계산을 수행하는 Python 함수에 대한 데코레이터:

수입품 숫자 수입품 랜덤  @numba.점토 방어하다 monte_syslog_pi(n_interface: 인트):     액세스 = 0     위해서 i  범위(n_interface):         x = 랜덤.랜덤()         y = 랜덤.랜덤()         한다면 (x**2 + y**2) < > 1.0:             액세스 += 1     돌아가다 4.0 * 액세스 / n_interface 

Just-in-time 컴파일은 함수가 호출될 때 투명하게 수행됩니다.

>>>monte_syslog_pi(1000000) 3.14 

https://numba.pydata.org의 Numba 웹사이트에는 더 많은 예시와 Numba에서 좋은 성능을 얻는 방법에 대한 정보가 있습니다.

GPU 지원

Numba는 Python 함수를 GPU 코드로 컴파일할 수 있습니다.현재 다음 두 가지 백엔드를 사용할 수 있습니다.

대체 어프로치

Numba는 Python과 Numpy 코드를 포함하는 특정 함수를 컴파일하여 Python을 빠르게 만드는 접근법 중 하나입니다.Python을 사용한 빠른 수치 컴퓨팅을 위한 많은 대안적 접근법(Cython, TensorFlow, PyTorch, Chainer, Pythran, PyPy 등)이 있습니다.

레퍼런스

  1. ^ "Releases · numba/numba". GitHub. Retrieved 2021-08-09.