stillwater-sc/universal

Large collection of number systems providing custom arithmetic for mixed-precision algorithm development and optimization for AI, Machine Learning, Computer Vision, Signal Processing, CAE, EDA, control, optimization, estimation, and approximation.

해결하는 문제

Universal은 네이티브 정수 및 부동 소수점 타입을 커스텀 산술 타입으로 대체하도록 설계된 C++ 템플릿 라이브러리입니다. 이를 통해 개발자는 특정 정밀도 및 동적 범위 요구 사항에 맞춰 알고리즘을 최적화할 수 있으며, 이는 표준 IEEE-754 부동 소수점이 과도하거나 비효율적일 수 있는 임베디드 시스템 및 딥러닝 애플리케이션에서 성능과 에너지 효율을 개선하는 데 매우 중요합니다.

작동 방식

매개변수화된 계산 커널에서 사용할 수 있는 플러그인 교체 타입의 헤더 전용 라이브러리를 제공합니다. double 또는 float를 사용하는 대신, 개발자는 half 정밀도, bfloat16 또는 고정 소수점 타입과 같은 특수화된 형식을 사용할 수 있습니다. 이 라이브러리는 다양한 아키텍처(x86, ARM, RISC-V, GPU)에서 범용적인 하드웨어 지원이 부족한 형식들에 대한 빠른 구현체를 포함하고 있습니다.

대상 사용자

이 라이브러리는 혼합 정밀도 알고리즘을 실험하거나 구현해야 하는 AI, 디지털 신호 처리(DSP), 고성능 컴퓨팅(HPC), 고빈도 매매(HFT) 분야의 개발자를 대상으로 합니다.

주요 특징

  • 다양한 형식 지원: quarter, half, quad 정밀도뿐만 아니라 NVIDIA TensorFloat 및 Google의 bfloat16을 지원합니다.
  • 커스텀 수 체계: 정적 및 탄력적 정수, 십진수, 고정 소수점, 유리수, 선형 부동 소수점, 테이퍼드 부동 소수점, 로그 및 적응형 정밀도 타입을 포함합니다.
  • 하드웨어 독립성: 모든 하드웨어에서 기본적으로 지원되지 않는 형식들에 대한 소프트웨어 구현을 제공합니다.
  • 낮은 도입 장벽: 헤더 전용 설계로 인해 템플릿 매개변수화를 통해 기존 C++ 프로젝트에 쉽게 통합할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트