구형 그래픽카드에서도 다중 토큰 예측을 쓰게 한 llama.cpp 수정

기능은 가 BF16 계산을 지원하는지 제대로 확인하지 않아, Kepler 같은 구형 제품에서 cuBLAS가 멈출 수 있었다. 이를 고친 CUDA 백엔드 수정안은 BF16을 지원하면 그대로 사용하고, 지원하지 않지만 FP16 계산이 빠르면 FP16으로 바꾼다. 이마저 적합하지 않은 오래된 에서는 FP32를 사용한다.

덕분에 최신 의 동작은 바꾸지 않으면서 Kepler·Maxwell·Pascal·Turing 세대에서도 을 사용할 수 있다. Q4XL로 양자화한 모델과 오버클럭된 Tesla K40c 4장으로 직접 시험한 결과, 처리 속도는 기본 에서 초당 약 22토큰, 기능을 끄면 약 17.5토큰, 한 번에 2개 토큰을 예측하도록 켜면 약 25토큰이었다.

핵심 포인트

  • 지원하지 않는 BF16 계산을 선택해 구형 에서 cuBLAS가 멈추는 문제를 고쳤다.
  • 능력에 따라 BF16, FP16, FP32 순서로 안전하게 계산 방식을 고른다.
  • Tesla K40c 4장에서 을 켜자 초당 약 17.5토큰에서 25토큰으로 빨라졌다.
  • 최신 의 기존 동작에는 영향을 주지 않도록 설계됐다.
  • 구형 장비를 재사용해 의 처리 속도와 작업당 비용을 개선할 가능성이 있다.
원문 보기