हैलाइड (प्रोग्रामिंग भाषा)

From alpha
Revision as of 12:58, 9 April 2024 by Indicwiki (talk | contribs) (Created page with "{{More citations needed|date=March 2018}} {{Infobox programming language | name = Halide | logo = | logo caption = | paradigms = functional, Par...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Jump to navigation Jump to search
Halide
Paradigmsfunctional, parallel
द्वारा डिज़ाइन किया गयाJonathan Ragan-Kelley
Andrew Adams
DeveloperMIT, (with help from Stanford, Google, Adobe)
पहली प्रस्तुति2012; 12 years ago (2012)
टाइपिंग अनुशासनstatic
कार्यान्वयन भाषाC++
ओएसmacOS, mainstream Linux distributions, Windows
वेबसाइटhalide-lang.org

हैलाइड एक कंप्यूटर प्रोग्रामिंग भाषा है जिसे डिजिटल इमेज प्रोसेसिंग कोड लिखने के लिए डिज़ाइन किया गया है जो स्मृति स्थान , ऐरे प्रोग्रामिंग और मल्टी-कोर सेंट्रल प्रोसेसिंग यूनिट्स (सीपीयू) और ग्राफ़िक्स प्रोसेसिंग युनिट ्स (जीपीयू) का लाभ उठाता है।[1] हैलाइड को C++ में एक आंतरिक डोमेन-विशिष्ट भाषा (DSL) के रूप में कार्यान्वित किया गया है।

भाषा

हैलाइड द्वारा लाया गया मुख्य नवाचार इसके शेड्यूलिंग (कंप्यूटिंग) से कार्यान्वित किए जा रहे कलन विधि को अलग करना है, यानी लूप (कंप्यूटिंग) नेस्टिंग (कंप्यूटिंग), समानांतरकरण, लूप का खुलना और वेक्टर प्रोसेसर को निर्दिष्ट करने वाला कोड। ये दोनों आम तौर पर एक साथ जुड़े होते हैं और शेड्यूल बदलने के प्रयोग के लिए प्रोग्रामर को हर बदलाव के साथ एल्गोरिदम के बड़े हिस्से को फिर से लिखना पड़ता है। हैलाइड के साथ, शेड्यूल बदलने के लिए एल्गोरिदम में किसी भी बदलाव की आवश्यकता नहीं होती है और यह प्रोग्रामर को शेड्यूलिंग के साथ प्रयोग करने और सबसे कुशल शेड्यूल खोजने की अनुमति देता है।

नमूना स्रोत कोड

निम्नलिखित फ़ंक्शन दो 3×1 पासों की श्रृंखला के रूप में परिभाषित 3×3 बॉक्स ब्लर के लिए शेड्यूल को परिभाषित और सेट करता है:

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;
}


उपयोग

Google ने अपने Pixel 2 Pixel Visual Core के लिए Hallide और TensorFlow का उपयोग किया।[2] एडोब फोटोशॉप भी हैलाइड का उपयोग करता है।[3] Google और Adobe दोनों ही हैलाइड अनुसंधान में शामिल रहे हैं।[4]


यह भी देखें

संदर्भ

  1. "Halide: New Language For Image Processing". 2012. Retrieved 20 September 2013.
  2. "Google and Intel cook AI chips, neural network exchanges – and more". The Register. Situation Publishing.
  3. "हैलाइड बॉटलनेक्स पर स्टार्टअप पर फ़ोटोशॉप रुक गया". 2020. Retrieved 27 April 2020.
  4. "ट्री सर्च और रैंडम प्रोग्राम के साथ हैलाइड को अनुकूलित करना सीखना" (PDF). 2019. Retrieved 1 July 2019.


बाहरी संबंध