Für Firefox und Chrome: SIMD-API für schnelleres Javascript
Über ein API sollen sich SIMD-Anweisungen in Javascript einbinden lassen, um rechenintensive Anwendungen zu beschleunigen. Das API ist im Firefox integriert, Chrome soll ebenso folgen wie die Standardisierung in ECMAScript Version 7.

Die Abkürzung SIMD (Single Instruction, Multiple Data) beschreibt die parallele Verarbeitung ähnlicher Daten mit Hilfe gleicher Operationen. Dieses Paradigma integriert Intel in Zusammenarbeit mit Mozilla und Google nun über ein API in Javascript.
Integriertes JS-API
SIMD.js vereinfacht so die Entwicklung sehr rechenintensiver Programme wie etwa Spiele oder die Verarbeitung von Mediadaten. Dazu sind einfach Low-Level-APIs direkt in Javascript integriert worden. Der Jit-Compiler überträgt die Anweisungen direkt an den Prozessor des Systems oder, falls der Prozessor SIMD nicht unterstützt, an eine standardisierte virtuelle Maschine.
Das API ist laut Intel architekturunabhängig und erlaubt die Ausführung der Anweisungen auf allen Chips, die SIMD unterstützen, neben Intels Prozessoren also auch ARM-Chips.
Extreme Beschleunigung
Durch die Verwendung der Anweisungen float32x4 und int32x4 erreichte das Team in ersten Tests auch nahezu eine Leistungssteigerung um das Vierfache, wie etwa bei der Berechnung und Darstellung der Mandelbrot-Menge. In speziellen Benchmarks seien gar Beschleunigungen um das Zehnfache erreichbar.
Der Emscripten-Compiler von Mozilla generiert bereits automatisch Code mit SIMD-Anweisungen beim Übersetzen von C++ nach Javascript. Ein Großteil des APIs ist auch schon in den Nightly Build des Firefox integriert. Auch dem Chromium-Projekt wurde der Code zur Aufnahme vorgelegt. In der Javascript-Alternative Dart lässt sich SIMD ebenfalls nutzen.
Die drei beteiligten Unternehmen arbeiten derzeit daran, das API als Teil von ECMAScript Version 7 zu standardisieren.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
- dynamische IndexBuffer funken net. Jedenfalls nicht bei mir. - float32-Buffer-creation...