llama.cpp b11292 릴리스는 커널에 16비트 숫자 형식인 BF16을 사용하는 깊이별 1D 합성곱에서 CPU 백엔드의 한계를 수정합니다. 이제 CPU 백엔드는 해당 입력을 계산 과정에서 32비트 부동소수점으로 변환합니다. 이는 Metal 행렬-벡터 커널에서 사용하는 연산 방식과 같습니다.
이번 릴리스에서는 Vulkan의 검사 방식도 바뀌었습니다. 두 번째 행렬 입력이 BF16인 경우 첫 번째 입력도 BF16일 때만 지원하도록 했습니다. 그 밖의 조합은 미지원으로 처리해 스케줄러가 CPU에서 실행하도록 합니다. 릴리스 노트에는 테스트 추가 내용이 나와 있지만, 변경 사항이 패키지 앱에 언제 반영될지 또는 어떤 사용자가 받게 될지는 설명하지 않습니다.
왜 중요한가
BF16 깊이별 합성곱을 실행하는 개발자는 이전에 CPU 백엔드가 처리하지 못했던 조합을 이제 사용할 수 있습니다. 다만 릴리스 노트에는 이 수정 사항이 후속 앱에 언제 포함될지 명시돼 있지 않습니다.