Проект 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.