2017-01-31 3 views
2

私は現在デスクトップオーディオ処理アプリケーションを作成中です。その目的は、多くの信号処理を行うことで、パフォーマンスと信頼性が本当に心配です。Apple macOSでAccelerate APIの代わりにMetalを使用する場合

私はすでにAudio toolbox/Core Audio APIを使用していますが、カスタムオーディオ処理にはMetalとAccelerateの間にどのようなものが最適かを考えていました。誰でも彼らの違いについて知っていますか?またはベンチマークを持っていますか? Googleで本当に便利なものは見つかりませんでした。

答えて

2

メタルシェイダーはGPUを使用しています。アクセラレーションAPIはCPUを使用します。だからあなたが使っているシステムがどんな種類のGPUを提供しているのか、あなたのカスタム処理カーネルがGPUを効率的に使うことができるのかどうかということです。例には、データの大きな2D配列(1Dリアルタイムオーディオバッファよりもはるかに大きい)の畳み込みなど、大規模な並列アルゴリズムが含まれます。

+0

ありがとうございます@ hotpow2。だから私がよく理解していれば、[MetalをサポートしているMacコンピュータのリスト](https://support.apple.com/en-us/HT205073)(私は読者のために参考にしたリンクを貼っておく)を見てください。それが「小さな」データサイズの本当の利得であるかどうかもテストします。私はそれが時間転送によって引き起こされたと思いますか? – DEADBEEF

+1

GPUプロセッサコアは、通常、コンピュータのメインCPUよりもはるかに遅いクロックレートで動作します。つまり、ほとんど並列性のないタスクは効果がありません。データをより小さな並列化可能なまとまりに分割することは、Amdahlの法則の悪い面にまで及んでいます。 – hotpaw2

関連する問題