원문 캡처 · github.com
원문 캡처 · github.com

rapl은 Rust용 N차원 배열 라이브러리다. 배열의 차원 수(rank)를 타입에 포함해 차원 불일치를 컴파일 오류로 잡으며, NumPy의 익숙한 기능과 APL·BQN 같은 배열 프로그래밍 언어에서 영감을 얻은 조합형 연산을 제공한다.

배열 원소는 숫자에 한정되지 않아 문자열, 문자, 튜플, 사용자 정의 구조체도 다룰 수 있다. 슬라이싱, 축 순열, 매핑, 축약, 외적 등은 다양한 원소 타입에 적용된다. 슬라이스와 윈도우, 브로드캐스트는 원본 버퍼를 공유하는 뷰로 제공되며, 명시적으로 복사하려면 to_owned_array()를 쓴다. 고정 차원은 컴파일 시점에, 실행 중에만 정해지는 차원은 동적 차원 타입으로 검사한다.

예제에는 이미지 윈도우와 최대 풀링, 합성곱, 배치 행렬 곱, 다중 헤드 어텐션, AlexNet의 직접 작성 역전파 등이 포함된다. FFT 기능은 fft 기능을 켜서 사용할 수 있고, 복소수 지원은 기본으로 활성화돼 있다. 배열을 SVG나 PNG로 그리는 별도 패키지 rapl-plot도 제공한다.

설치는 cargo add rapl로 할 수 있으며, FFT를 함께 쓰려면 cargo add rapl --features fft를 실행한다. 프로젝트는 초기 개발 단계라 API가 계속 바뀔 수 있고 속도는 우선순위가 아니다. 제작자는 속도가 중요한 애플리케이션에는 아직 권장하지 않으며, 탐색·프로토타이핑·교육·스크립트 작업을 용도로 제시한다.

프로젝트 저장소 · 문서 · crates.io · 예제