Библиотека линейной алгебры с использованием OpenGL ES 2.0 для iOS

Кто-нибудь знает библиотеку линейных алгебр для iOS, которая использует OpenGL ES 2.0 под обложками?

В частности, я ищу способ сделать матричное умножение на матрицах произвольного размера (например, намного больше, чем 4x4, больше как 5000 × 100 000), используя графические процессоры на устройствах iOS.

Ответ 1

Есть ли конкретная причина, по которой вы просите "использует OpenGL ES 2.0 под обложками?" Или вам просто нужна быстрая библиотека аппаратной оптимизации линейной алгебры, такая как BLAS, которая встроена в iOS?

Ответ 2

MetalPerformanceShaders.framework предоставляет некоторые настроенные BLAS-подобные функции. Это не ГЛЕС. Он металлический и работает на графическом процессоре. См. MetalPerformanceShaders/MPSMatrixMultiplication.h

Ответ 3

OpenGL на iOS - это, вероятно, неправильный путь. Металлическая поддержка на iOS была бы лучшим способом, если вы собираетесь использовать GPU.

Ускорить

Apple, согласно разговору WWDC 2014 Что нового в Accelerate Framework, вручную настроил библиотеки линейной алгебры, предназначенные для их текущего поколения аппаратное обеспечение. Они не просто быстры, но энергоэффективны. Есть и новые переговоры.

Металл

Вы можете использовать поддержку Apple для шейдеров Metal Compute. Я написал высокопроизводительный код для моего доктора философии. Ранний эксперимент, который я сделал для вычисления фракталов использующих Metal, может дать вам несколько идей начать

В конечном счете, этот вопрос слишком широк. На что вы собираетесь использовать библиотеку или как вы собираетесь ее использовать? Это однократное умножение? Вы тестировали с текущими библиотеками и обнаружили, что производительность слишком медленная? Если да, то насколько?

В общем, вы можете запускать образовательные или чисто информационные эксперименты по выполнению алгоритма X по процессору против графического процессора или специализированного оборудования, но чаще всего вы сталкиваетесь с Закон Amdahl и ваш код против команды экспертов в этой области.