2017-01-31 10 views
2

В настоящее время я пишу приложение для обработки звука на рабочем столе. Его цель - сделать много обработки сигналов, поэтому я действительно обеспокоен производительностью и надежностью.Когда использовать Металл вместо ускорения API на Apple macOs

Я уже использовал Audio toolbox/Core Audio API, но для пользовательской обработки звука мне было интересно, что будет лучше всего подходит между Metal и Accelerate. Кто-нибудь знает об их различии? Или иметь бенчмарк? Я не нашел ничего полезного в Google ...

ответ

2

Металлические шейдеры используют графический процессор. Ускорение API использует процессор. Так что это действительно зависит от того, какой графический процессор использует система, которую вы используете, и могут ли ваши пользовательские ядра обработки эффективно использовать графический процессор. Примеры могут включать в себя алгоритмы, которые являются массово параллельными, такими как свертка больших 2D-массивов данных (намного больше, чем 1D аудио-буферов в реальном времени).

+0

Спасибо @ hotpow2. Поэтому, если я хорошо понял, я должен посмотреть на [Список компьютеров Mac, поддерживающих Metal] (https://support.apple.com/en-us/HT205073) (я поставил ссылку для справки для читателей), и я должен также проверьте, является ли это реальным выигрышем для «малых» размеров данных. Наверное, это вызвано переводом времени? – DEADBEEF

+1

Ядро процессора GPU обычно работает с тактовой частотой, которая намного медленнее, чем основной процессор компьютера, что означает, что задача с небольшим параллелизмом не принесет пользы. И разворачивание данных на более мелкие параллелизуемые куски врезается в плохую сторону закона Амдаля. – hotpaw2