llama.cpp 프로젝트는 동기화 효율성을 개선하기 위해 Vulkan 백엔드의 상당한 리팩토링을 포함하는 빌드 b10078을 출시했습니다. 이 업데이트는 VK_KHR_internally_synchronized_queues에 대한 지원을 통합하여 드라이버가 지원하는 경우 호스트 측 뮤텍스 잠금을 완전히 우회하는 다형성 인터페이스로 큐 제출을 추상화할 수 있게 합니다.

  • vk_queue를 인스턴스별 뮤텍스와 고유 핸들을 사용하여 배타적 소유권을 갖도록 리팩토링합니다.
  • 드라이버가 지원하는 경우 호스트 측 뮤텍스 잠금을 우회하기 위해 VK_KHR_internally_synchronized_queues를 통합합니다.
  • internallySynchronizedQueues 감지를 위한 폴백 정의 및 정적 constexpr 상수를 추가합니다.
  • vk_device_struct 소멸자에서 컴파일 오류, 중복 pNext 체인 및 null 검사를 수정합니다.

이 변경은 장치 생성 중 중복 API 호출을 줄이면서 수명 관리와 스레드 안전성을 최적화합니다.