Halogenid (Programmiersprache) - Halide (programming language)

Halogenid
Paradigma funktional , parallel
Entworfen von Jonathan Ragan-Kelley und Andrew Adams
Entwickler MIT (mit Hilfe von Stanford , Google und Adobe )
Erstmals erschienen 2012
Schreibdisziplin statisch
Implementierungssprache C ++
Betriebssystem Mac OS, Mainstream-Linux-Distributionen, Windows
Webseite http://halide-lang.org/

Halide ist ein Computer - Programmiersprache , die für das Schreiben der digitalen Bildverarbeitung Code, der Vorteil , nimmt Speicherlokalizität , vektorisiert Berechnung und mehradrige CPUs und GPUs . Halogenid ist in C ++ als interne domänenspezifische Sprache (DSL) implementiert .

Sprache

Die wichtigste Neuerung Halide bringt , ist die Trennung des Algorithmus von seinem umgesetzt Ausführungsplan , also die Spezifizierungscode Schleife Verschachtelung , parallelisiert , Schleifenentrollen und Vektorbefehl . Diese beiden sind normalerweise miteinander verschachtelt. Um mit dem Ändern des Zeitplans zu experimentieren, muss der Programmierer bei jeder Änderung große Teile des Algorithmus neu schreiben. Mit Halide erfordert das Ändern des Zeitplans keine Änderungen am Algorithmus. Auf diese Weise kann der Programmierer mit dem Planen experimentieren und den effizientesten finden.

Beispielquellcode

Die folgende Funktion definiert und legt den Zeitplan für einen 3 × 3 -Boxfilter fest, der als eine Reihe von zwei 3 × 1-Durchläufen definiert ist:

Func blur_3x3(Func input) {
  Func blur_x, blur_y;
  Var x, y, xi, yi;

  // The algorithm - no storage or order
  blur_x(x, y) = (input(x-1, y) + input(x, y) + input(x+1, y))/3;
  blur_y(x, y) = (blur_x(x, y-1) + blur_x(x, y) + blur_x(x, y+1))/3;

  // The schedule - defines order, locality; implies storage
  blur_y.tile(x, y, xi, yi, 256, 32)
        .vectorize(xi, 8).parallel(y);
  blur_x.compute_at(blur_y, x).vectorize(x, 8);

  return blur_y;
}

Benutzen

Google verwendete Halide und TensorFlow für seinen Pixel 2 Pixel Visual Core . Adobe Photoshop verwendet auch Halogenid. Sowohl Google als auch Adobe waren an der Halogenidforschung beteiligt.

Siehe auch

Verweise

Externe Links