2017-01-31 5 views
2

ich zur Zeit eine Desktop-Audio-Verarbeitungsanwendung zu schreiben. Sein Zweck ist es, eine Menge Signalverarbeitung zu machen, deshalb bin ich wirklich besorgt über die Leistung und Zuverlässigkeit.Wenn Metall verwenden, anstatt von API Beschleunigen auf Apple MacOS

Ich habe bereits verwenden, um die Audio-Toolbox/Core Audio-APIs, sondern für die eigene Audio-Verarbeitung Ich frage mich, was die beste Lösung zwischen Metall und Beschleunigen sein. Wer weiß über ihren Unterschied? Oder Benchmark haben? Ich habe nicht etwas wirklich Nützliches mit Google finden ...

Antwort

2

Metall-Shader verwenden, um die GPU. Beschleunigte APIs verwenden die CPU. Es hängt also wirklich davon ab, welche Art von GPU das System, das Sie verwenden, bietet, und ob Ihre benutzerdefinierten Verarbeitung Kernel die GPU effizient verwenden können. Beispiele könnten Algorithmen umfassen, die massiv parallel sind, wie z. B. die Faltung großer 2D-Datenfelder (viel größer als 1D Echtzeit-Audiopuffer).

+0

Danke @ hotpow2. Also, wenn ich gut verstanden, soll ich auf [Liste von Mac-Computern, die Metal-Unterstützung] aussehen (https://support.apple.com/en-us/HT205073) (ich den Link für die Leser als Referenz setzen) und ich soll Testen Sie auch, ob es sich um einen echten Gewinn für die "kleine" Datengröße handelt. Ich schätze es liegt an der Zeitübertragung nein? – DEADBEEF

+1

Ein GPU-Prozessorkern läuft normalerweise mit einer Taktrate, die viel langsamer ist als die Haupt-CPU des Computers, was bedeutet, dass eine Aufgabe mit geringer Parallelität nicht von Vorteil wäre. Und die Aufteilung von Daten in kleinere parallelisierbare Stücke läuft auf die schlechte Seite von Amdahls Gesetz hinaus. – hotpaw2