Проект llama.cpp выпустил сборку b11059, которая вносит значительные обновления в бэкенд Metal для оборудования Apple Silicon. Основное изменение — добавление поддержки входных данных F16 в ядро быстрого преобразования Уолша-Адамара (FWHT), что позволяет ему напрямую считывать источники F16 без необходимости создания конвертированной копии.

  • Ядро Metal FWHT теперь принимает входные данные F16, делая тип источника параметром шаблона, при этом инстанциации F32 остаются неизменными.
  • Безветвляющийся выбор в бабочке в ядре SIMD-группы FWHT заменяет тернарные операторы, обеспечивая прирост производительности на 3,0% (1285,0 мкс против 1324,6 мкс) на M5 Pro для больших матричных умножений Адамара.
  • Предикаты диспетчеризации были перемещены в ggml-metal-common для исправления сборки macos-latest-arm64 и обеспечения согласованности между supports_op и логикой диспетчеризации.
  • В релиз включены бинарные файлы для macOS, iOS, Linux, Windows, Android и openEuler для бэкендов CPU, CUDA, ROCm, Vulkan, OpenVINO и SYCL.

Это обновление повышает эффективность на Apple Silicon за счёт снижения накладных расходов памяти и задержек для операций F16 в бэкенде Metal.