DumPy: NumPy의 복잡성을 제거하고 GPU 가속을 구현하는 간단한 배열 언어

2025-05-24
DumPy: NumPy의 복잡성을 제거하고 GPU 가속을 구현하는 간단한 배열 언어

저자는 NumPy가 고차원 배열 연산에서 복잡하고 비효율적이며, 특히 복잡한 브로드캐스팅과 인덱싱 규칙 때문에 프로그래머는 배열 형태와 함수 동작을 끊임없이 고려해야 한다고 비판합니다. 이를 해결하기 위해 저자는 DumPy라는 간단한 배열 언어를 제안합니다. 이는 루프와 인덱스의 구문을 도입하고, 이를 벡터화된 연산으로 컴파일하여 GPU 가속을 구현하며, NumPy에서 느린 루프를 피하기 위해 도입된 복잡성을 방지합니다. DumPy의 핵심 아이디어는 차원을 레이블에 매핑하고 JAX의 `vmap` 함수를 사용하여 벡터화 연산을 수행함으로써 코드를 간소화하고 효율성을 높이는 것입니다. 저자는 DumPy, NumPy, JAX, 그리고 순수 루프를 비교하는 몇 가지 예시를 보여주며, DumPy가 간결성과 효율성 모두에서 뛰어난 성능을 보임을 입증합니다.

개발