PyTorch와 유사한 텐서 API, autograd, 컴파일러와 다양한 가속기 백엔드를 지원하는 경량 딥러닝 프레임워크입니다.
- 스타
- 1,415
- 포크
- 102
- 열린 이슈
- 166
- 마지막 커밋
- 19일 전
어떤 프로젝트인가요?
Arraymancer는 NumPy와 PyTorch에서 영감을 받아 Nim으로 작성된 ndarray(텐서) 라이브러리입니다. 슬라이싱, 브로드캐스팅, 형태 변경과 행렬 곱셈, 최소제곱법, 고유값 분해, PCA, k-means 같은 선형대수 연산을 지원하는 N차원 배열을 제공합니다.
배열 핵심 기능 외에도 모델을 정의하고 학습하고 실행할 수 있는 autograd 기반 신경망 DSL을 포함하며, Linear, Conv2D, MaxPool2D, GRU 등의 레이어를 제공합니다. 텐서는 BLAS/LAPACK 기반의 OpenMP 병렬 처리 루틴을 사용해 CPU에서 실행하거나 CUDA(선택적으로 cuDNN 지원) 및 OpenCL 장치에서 실행할 수 있습니다. 다만 GPU 텐서는 CPU 텐서보다 지원하는 연산이 적습니다.
라이브러리는 빠르게 컴파일되고 주로 BLAS 라이브러리에만 의존하는 독립 실행형 바이너리를 생성합니다. README에서는 이러한 특성 덕분에 임베디드 기기와 Raspberry Pi에 적합하다고 설명합니다. 프로젝트는 실험 단계로 표시되어 있으며, 딥러닝 인터페이스는 아직 마무리 중입니다.
핵심 기능
- 01NumPy 스타일 슬라이싱과 +를 통한 명시적 브로드캐스팅을 지원하는 최대 6차원 텐서.
- 02concat, reshape, split, permute, transpose 등의 형태 변경 및 결합 연산.
- 03CSV, NumPy(.npy), HDF5 파일 읽기 및 쓰기.
- 04최소제곱법, 고유값 분해, 공분산 행렬을 비롯한 선형대수 루틴.
- 05Linear, Conv2D, 풀링, GRU 레이어를 갖춘 autograd 기반 신경망 DSL.
- 06CPU, CUDA, OpenCL 텐서 백엔드. CUDA와 OpenCL은 지원하는 연산이 더 적습니다.
활용 사례
- 빠른 다차원 배열이 필요한 Nim 기반 수치 계산 프로젝트.
- autograd와 간결한 모델 정의 문법을 사용해 Nim으로 소규모 신경망을 프로토타이핑하는 작업.
- 대규모 Python 스택을 사용하기 어려운 리소스 제약 기기에 모델 배포.
- Nim 코드에서 PCA, k-means, 최소제곱 피팅과 같은 전통적인 머신러닝 작업 수행.
빠른 시작
- 1
choosenim으로 Nim 설치
- 2
nimble로 Arraymancer 설치
nimble install arraymancer
사용 전 알아둘 점
- 이 프로젝트는 실험 단계로 표시되어 있으며, 딥러닝 인터페이스는 불안정하고 계속 변경되고 있습니다.
- Arraymancer를 사용하려면 시스템에 BLAS 및 LAPACK 라이브러리를 설치해야 합니다.
- CUDA 및 OpenCL 백엔드는 CPU 텐서보다 지원하는 기능이 적습니다.
토픽
자주 묻는 질문
- Arraymancer은(는) 무엇인가요?
- 수치 계산과 딥러닝을 위한 Nim 기반의 빠르고 사용하기 편한 N차원 텐서 라이브러리로, CPU, CUDA, OpenCL 백엔드를 지원합니다. Arraymancer는 NumPy와 PyTorch에서 영감을 받아 Nim으로 작성된 ndarray(텐서) 라이브러리입니다. 슬라이싱, 브로드캐스팅, 형태 변경과 행렬 곱셈, 최소제곱법, 고유값 분해, PCA, k-means 같은 선형대수 연산을 지원하는 N차원 배열을 제공합니다.
- Arraymancer은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- Arraymancer은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- Arraymancer은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. Arraymancer의 마지막 커밋은 2026년 10월 6일입니다.
- Arraymancer은(는) 어디에 사용할 수 있나요?
- 빠른 다차원 배열이 필요한 Nim 기반 수치 계산 프로젝트. autograd와 간결한 모델 정의 문법을 사용해 Nim으로 소규모 신경망을 프로토타이핑하는 작업. 대규모 Python 스택을 사용하기 어려운 리소스 제약 기기에 모델 배포. Nim 코드에서 PCA, k-means, 최소제곱 피팅과 같은 전통적인 머신러닝 작업 수행.
- Arraymancer는 어떻게 설치하나요?
- choosenim으로 Nim 설치 nimble로 Arraymancer 설치: nimble install arraymancer
- Arraymancer은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/mratsim/Arraymancer
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
개발자가 Python에서 컴파일러 파이프라인을 맞춤 설정하고 다양한 하드웨어 대상으로 모델을 배포할 수 있는 오픈 머신러닝 컴파일 프레임워크입니다.
autograd 기반 동적 신경망과 GPU 가속 텐서 연산을 제공하는 Python 딥러닝 프레임워크입니다.
처음부터 구현하며 배우는 ML 과정: NumPy 딥러닝 프레임워크와 Pyodide로 채점하는 브라우저 코딩 문제 350개 이상
CUDA, ROCm, Metal, Vulkan, WebGPU 및 CPU 백엔드에서 학습과 추론을 지원하는 Rust 텐서 라이브러리이자 딥러닝 프레임워크입니다.
NVIDIA GPU에서 고성능 GEMM 및 관련 선형대수 커널을 작성하기 위한 CUDA C++ 템플릿 라이브러리이자 Python DSL입니다.