Skip to content

macOS ARM 환경에서 cong 모델 양자화 지원 추가 #248

@bab2min

Description

@bab2min

현재 macOS ARM에서 cong, cong-global 모델 사용시 int8 qgemm이 지원되지 않아 fp32으로 fallback하여 dotprod, gemm연산이 수행되고 있음. ARM Neon 명령어들을 활용하면 int8 x int8 dot product를 가속할 수 있으므로 이를 사용하여 int8 qgemm을 구현할 수 있다. 다만 현재 x86-64용 int8 qgemm 구현체들은 기본적으로 int8 x uint8 최적화 연산을 전제로 구현되어 있어서 Model Weight는 바이너리 상에 int8 타입으로 저장되어 있음에도 읽어들일때 한쪽을 int8 -> uint8로 bias를 더해주고, dotprod시 이 bias를 다시 빼주는 방식을 사용하고 있다. Neon용 int8 qgemm을 구현할때는 이 부분을 잘 피해서 native int8 x int8 연산이 되도록 해야 제대로 가속이 될 것이므로 이 부분에 대해 유의하면서 int8 qgemm 구현이 필요하다.

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions