Logo 파이썬

Numba — JIT 컴파일로 즉시 가속

별님이 | 04.27 | 조회 92 | 좋아요 0

Numba는 「파이썬 함수에 데코레이터 하나로 LLVM 기반 JIT 컴파일」을 적용해 C·Fortran 수준 속도를 내는 라이브러리입니다.

NumPy 배열 작업에 특히 강합니다.



기본 사용.

pip install numba.

from numba import jit.

@jit(nopython=True) def func(arr): ...루프 처리....

이 함수가 처음 호출될 때 컴파일되고, 이후 호출은 기계어 속도.

100배 빠른 경우도.



Cython과의 차이.

1) 별도 빌드 단계 없음 — 데코레이터 한 줄.

2) 코드 변경 거의 없음 — 그대로 두고 데코레이터만.

3) 단점 — 모든 파이썬 기능을 다 지원하진 않음(클래스·문자열 등 제한).



잘 맞는 패턴.

1) 큰 NumPy 배열 + 수치 계산 + 루프.

2) 순수 수학 함수.

3) 머신러닝 데이터 전처리.

잘 안 맞는 — 파이썬 객체 위주, 문자열 처리, IO 작업.



GPU도 지원.

@cuda.jit 데코레이터로 NVIDIA GPU에서 실행.

큰 행렬 연산이 CUDA 커널이 됨.

PyTorch·TensorFlow 같은 프레임워크 외에 「내 코드를 GPU로」 가장 쉬운 방법.




한 줄 요약


Numba는 데코레이터 한 줄로 JIT 컴파일, NumPy 수치 작업에 최강.

Cython보다 쉽고 빌드 불필요.

CUDA로 GPU도 가능, 단 모든 파이썬 기능 지원은 아님.




더 알아볼 것


- @njit — nopython 모드 강제

- Numba vs PyPy 비교

- CuPy — NumPy 호환 GPU 라이브러리

공유하기
목록보기

목록보기
신고하기

신고 사유를 선택해 주세요.