libxsmm/libxsmm

Library for specialized dense and sparse matrix operations, and deep learning primitives.

해결하는 문제

LIBXSMM는 딥러닝 및 고성능 컴퓨팅(HPC) 워크로드에서 자주 사용되는 행렬 곱셈(GEMM)과 요소 단위의 기본 연산을 대상으로 하는 고성능 라이브러리입니다. 전통적인 대규모 라이브러리가 소규모 행렬 연산에서 효율성이 떨어지는 성능 격차를 해결합니다.

작동 방식

이 라이브러리는 특정 행렬 형식과 데이터 유형에 최적화된 커널을 생성하기 위해 Just-In-Time(JIT) 코드 특수화를 사용하여 컴파일러에 의존하지 않는 성능을 보장합니다. Tensor Processing Primitives(TPP)의 참조 구현으로서, 컨볼루션, 완전 연결 계층, 풀링과 같은 연산을 포터블한 추상화로 제공합니다. 인텔(SSE, AVX, AVX-512, AMX), AArch64(NEON, SVE, SME), RISC-V(RVV), PowerPC 64비트 등 다양한 하드웨어 아키텍처를 지원합니다.

대상 사용자

딥러닝 프레임워크, HPC 애플리케이션 개발자 및 다양한 CPU 아키텍처에서 고성능이고 아키텍처 독립적인 소규모 행렬 연산이 필요한 모든 사용자에게 적합합니다.

주요 특징

  • 광범위한 하드웨어 지원: 인텔, ARM, RISC-V, PowerPC 아키텍처를 지원합니다.
  • 다양한 데이터 유형 지원: FP64부터 int1까지 다양한 정밀도를 지원하며, bfloat16 및 다양한 저정밀도 포맷도 포함합니다.
  • JIT 특수화: 타겟 전용 빌드 플래그 없이 특정 문제 크기에 최적화된 성능을 위해 JIT 코드 생성을 사용합니다.
  • TPP 참조 구현: Tensor Processing Primitives의 참조 구현으로서 고수준 딥러닝 연산의 조합을 가능하게 합니다.

관련

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