넘바
Numba원저작자 | 연속 분석 |
---|---|
개발자 | 커뮤니티 프로젝트 |
초기 릴리즈 | 2012년 8월 | , 전(
안정된 릴리스 | 0.56.0[1] / 2022년 7월 26일; 전( |
프리뷰 릴리즈 | 0.54.0rc2 / 2021년 7월 16일; 전( |
저장소 | |
기입처 | Python, C |
운영 체제 | 크로스 플랫폼 |
유형 | 테크니컬 컴퓨팅 |
웹 사이트 | numba |
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 코드로 컴파일할 수 있습니다.현재 다음 두 가지 백엔드를 사용할 수 있습니다.
- NVIDIA CUDA, numba.pydata.org/numba-doc/dev/cuda 참조
- AMD ROCm HSA, numba.pydata.org/numba-doc/dev/roc 참조
대체 어프로치
Numba는 Python과 Numpy 코드를 포함하는 특정 함수를 컴파일하여 Python을 빠르게 만드는 접근법 중 하나입니다.Python을 사용한 빠른 수치 컴퓨팅을 위한 많은 대안적 접근법(Cython, TensorFlow, PyTorch, Chainer, Pythran, PyPy 등)이 있습니다.
레퍼런스
- ^ "Releases · numba/numba". GitHub. Retrieved 2021-08-09.