Проект llama.cpp выпустил версию b10675, которая включает важное обновление его бэкенда Vulkan. Этот релиз добавляет поддержку hoisting для row IDs и количества экспертов внутри кода шейдеров.

  • Реализация использует hoisted row IDs в coopmat2.
  • Она учитывает замечания рецензентов по count_experts, используя vk_op_count_experts_push_constants вместо сырых uint векторов.
  • Трюк fastdiv применяется к операции div/mod ne00 в count_experts.
  • Смещения для каждого эксперта вычисляются с помощью subgroupExclusiveAdd там, где это поддерживается, сохраняя последовательный путь как резервный вариант.

Это обновление обеспечивает оптимизированные сборки Vulkan для macOS, Linux, Windows и Android на различных аппаратных бэкендах, включая CUDA, ROCm и OpenCL.