flashlight: JIT 커널 컴파일 및 네이티브 멀티 도메인 앱을 지원하는 고성능 C++ 머신러닝 라이브러리

flashlight: JIT 커널 컴파일 및 네이티브 멀티 도메인 앱을 지원하는 고성능 C++ 머신러닝 라이브러리

해결하는 문제

Flashlight은 완전히 C++로 작성되어 빠르고 유연하며 가벼운 프레임워크가 필요한 연구자들을 위해 설계된 고성능 머신러닝 라이브러리입니다. 새로운 실험적 알고리즘과 설정을 빠르게 반복할 수 있는 능력을 희생하지 않으면서도 C++의 효율성과 확장성을 제공하는 도구에 대한 요구를 충족합니다.

작동 방식

Flashlight은 테이프 기반 자동 미분 시스템(Variable 추상화 활용)과 고성능 기본값 및 JIT 커널 컴파일을 위해 ArrayFire 텐서 라이브러리를 기반으로 구축된 핵심 텐서 인터페이스를 사용합니다. 이는 핵심 신경망 라이브러리(fl), 독립형 유틸리티(lib), 도메인 특화 패키지(pkg), 그리고 즉시 사용 가능한 애플리케이션(app)으로 구조화되어 있습니다.

대상 사용자

최대 성능을 위한 네이티브 C++ 지원, 작은 메모리 점유율, 그리고 텐서 연산을 위한 내부 API를 수정할 수 있는 능력이 필요한 AI 연구자 및 개발자를 주요 대상으로 합니다.

주요 특징

  • C++ Native: 완전히 C++로 작성되어 전체 내부 수정이 가능하며 작은 코어 점유율(10 MB 미만)을 제공합니다.
  • High Performance: JIT 커널 컴파일을 위해 ArrayFire를 활용하며 CUDA 및 CPU 백엔드를 모두 지원합니다.
  • Multi-Domain Support: 자동 음성 인식(ASR), 이미지 분류, 객체 탐지, 언어 모델링을 위한 내장 애플리케이션을 포함합니다.
  • Automatic Differentiation: 그래디언트 계산을 위한 단순한 테이프 기반 autograd 시스템을 특징으로 합니다.

Sources