Halide (programovací jazyk) - Halide (programming language)
tento článek potřebuje další citace pro ověření.Březen 2018) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Paradigma | funkční, paralelní |
---|---|
Navrhl | Jonathan Ragan-Kelley a Andrew Adams |
Vývojář | MIT, (s pomocí od Stanford a Adobe ) |
Poprvé se objevil | 2012 |
Psací disciplína | statický |
Jazyk implementace | C ++ |
OS | Mac OS X (10.6 až 10.8), tradiční distribuce Linuxu, Windows |
webová stránka | http://halide-lang.org/ |
Halogenid je počítač programovací jazyk určen pro psaní digitální zpracování obrazu kód, který využívá paměťová lokalita, vektorizovaný výpočet a vícejádrový CPU a GPU.[1] Halid je implementován jako interní jazyk specifický pro doménu (DSL) v C ++.
Jazyk
Hlavní inovací, kterou Halide přináší, je oddělení algoritmus se provádí z jeho plán provádění, tj. kód specifikující smyčka hnízdění, paralelizace, odvíjení smyčky a vektorové instrukce. Tito dva jsou obvykle prokládáni společně a experimentování se změnou plánu vyžaduje, aby programátor při každé změně přepsal velké části algoritmu. U aplikace Halide změna plánu nevyžaduje žádné změny algoritmu, což programátorovi umožňuje experimentovat s plánováním a nalezením nejefektivnějšího.
Ukázkový zdrojový kód
Následující funkce definuje a nastavuje plán pro 3 × 3 krabicový filtr definována jako série dvou průchodů 3 × 1:
Func blur_3x3(Func vstup) { Func blur_x, blur_y; Var X, y, xi, yi; // Algoritmus - žádné úložiště nebo objednávka blur_x(X, y) = (vstup(X-1, y) + vstup(X, y) + vstup(X+1, y))/3; blur_y(X, y) = (blur_x(X, y-1) + blur_x(X, y) + blur_x(X, y+1))/3; // Plán - definuje pořadí, lokalitu; znamená skladování blur_y.dlaždice(X, y, xi, yi, 256, 32) .vektorizovat(xi, 8).paralelní(y); blur_x.compute_at(blur_y, X).vektorizovat(X, 8); vrátit se blur_y;}
Použití
Google použil Halide a TensorFlow pro svůj Pixel 2 Pixel Visual Core.[2] Adobe Photoshop také používá Halide.[3] Google i Adobe se podílely na výzkumu halogenidů.[4]
Viz také
Reference
- ^ „Halide - nový jazyk pro zpracování obrázků“. 2012. Citováno 20. září 2013.
- ^ „Google a Intel vaří čipy AI, výměny neuronových sítí - a další“. Registrace. Publikování situace.
- ^ „Photoshop freezing at startup on Halide Bottlenecks“. 2020. Citováno 27. dubna 2020.
- ^ „Naučit se optimalizovat halogenidy pomocí vyhledávání stromů a náhodných programů“ (PDF). 2019. Citováno 1. července 2019.