MIT-Forscher optimieren Codierung für die Bildverarbeitung

2013-12-30  |  Comebuy News

Forscher am Massachusetts Institute of Technology haben einen Weg von helfen Entwicklern dachte mehr ordnen einfach ihre Bildverarbeitungs-Code, so dass es schneller ausgeführt und weniger computational Ressourcen verwenden konnte.

Comebuy Verwandte Artikel: MIT Solarzellen auf Papier gedruckt (sie sind recycelbar?)Blendfreies, selbstreinigende Glas könnte verwendet werden, in der nächsten Generation Apple DevicesGoogle bringen Suche auf historischen ManuscriptsIntel verbringt $12 m für Multi-Core GraphicsUS macht e-voting-Prüfung u-Turn

Solche Technik könnte besonders vorteilhaft für Handys und andere tragbare Geräte wo Batteriestrom zur Verfügung steht. Benutzer wachsen immer mehr daran gewöhnt, erweiterte Foto-Manipulation-apps wie Instagram auf ihren Handys läuft, so dass Entwickler dieser Anwendungen kämpfen müssen, um ihre Kreationen so schnell wie möglich zu machen.

"Ich suchte nach etwas einfacheren Weg, um Hochleistungs-Code für mobile Geräte zu schreiben, aber es erwies sich als ideal für Desktops als auch", sagte Andrew Adams, Postdoc Student MIT Computer Science and Artificial Intelligence Laboratory (CSAIL).

Adams, zusammen mit anderen Forschern aus MIT, Stanford University und Adobe, entwickelten eine DSL (domänenspezifische Sprache) und zugehörigen Compiler, die eine Ebene der Abstraktion erstellt ermöglicht es Entwicklern, Stücke von Code leicht bewegen, um die meisten rechnerisch effiziente Methode zur Bearbeitung von Bildern zu finden.

Die Forscher haben die DSL, Metalldampflampen, genannt verwendet, mehrere gemeinsame Bildbearbeitungs-Funktionen. In vielen Fällen konnten sie zwei, drei, oder sogar das Sechsfache Anstieg in der Geschwindigkeit zu zeigen.

In der Regel beinhaltet Bildverarbeitung mehrere Schritte, von die einige parallel in multicore-Prozessoren ausgeführt werden können. Für Entwickler jedoch bewegen Code zu finden, die optimale Reihenfolge der Ausführung kann ein komplizierter und fehleranfälliger Prozess sein, zumal mit imperativen Sprachen, die heute für Image verwendete Verarbeitung--wie C++--die Reihenfolge, in der ein Programm ausgeführt wird, in den Code "gebacken" werden tendenziell Adams sagte.

"Performance-Verbesserungen auf mobilen Plattformen kann sehr schmerzhaft sein. Wenn Sie bereits Ihren Code optimiert habe erhöht eine bestimmte Weise, wenn Sie versuchen Optimierung anders musst du alle neu anordnen, die den Code, und Sie wahrscheinlich nur werden die Anzahl Fehler. Es ist nur eine schmerzhafte Erfahrung ist", sagt Adams.

Kreditaufnahme Ideen aus der funktionalen Programmierung, bietet Halide Entwicklern die Möglichkeit, einfach zu planen, wann und wo jede Routine ausgeführt werden soll. Der Programmierer kann mit der Bestellung experimentieren, in dem das Programm ausgeführt wird ohne sich Gedanken über die Einführung von Bugs oder Bruchschäden.

Metalldampflampen kann auch Zeit sparen, in die Portierung von Programmen auf anderer Hardware sowie. Der Programmierer muss nur die Ausführung des Codes neu anordnen, die optimal für die neue Plattform ist.

DSL ist eine Erweiterung von C++ und Compiler für X 86- und ARM-Prozessoren sowie für Nvidia Cuda-GPUs verfügbar sind. Die Forscher auch erstellen eine Version speziell für den OpenGL-Bibliothek. Schließlich obwohl, hoffen sie, dass die Ideen hinter Metalldampflampen--anstatt DSL selbst--in kommerziellen Entwicklungs-Tools und Sprachen eingebettet sind.

Die Forscher planen, Halide bei der Association for Computing Machinery Special Interest Group auf Computer Graphics and Interactive Techniques (Siggraph) Konferenz nächste Woche in Los Angeles zu diskutieren.

« Back