हैलाइड (प्रोग्रामिंग भाषा)
This article needs additional citations for verification. (March 2018) (Learn how and when to remove this template message) |
Paradigms | functional, parallel |
---|---|
द्वारा डिज़ाइन किया गया | Jonathan Ragan-Kelley Andrew Adams |
Developer | MIT, (with help from Stanford, Google, Adobe) |
पहली प्रस्तुति | 2012 |
टाइपिंग अनुशासन | static |
कार्यान्वयन भाषा | C++ |
ओएस | macOS, mainstream Linux distributions, Windows |
वेबसाइट | halide-lang |
हैलाइड एक कंप्यूटर प्रोग्रामिंग भाषा है जिसे डिजिटल इमेज प्रोसेसिंग कोड लिखने के लिए डिज़ाइन किया गया है जो स्मृति स्थान , ऐरे प्रोग्रामिंग और मल्टी-कोर सेंट्रल प्रोसेसिंग यूनिट्स (सीपीयू) और ग्राफ़िक्स प्रोसेसिंग युनिट ्स (जीपीयू) का लाभ उठाता है।[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]
यह भी देखें
संदर्भ
- ↑ "Halide: New Language For Image Processing". 2012. Retrieved 20 September 2013.
- ↑ "Google and Intel cook AI chips, neural network exchanges – and more". The Register. Situation Publishing.
- ↑ "हैलाइड बॉटलनेक्स पर स्टार्टअप पर फ़ोटोशॉप रुक गया". 2020. Retrieved 27 April 2020.
- ↑ "ट्री सर्च और रैंडम प्रोग्राम के साथ हैलाइड को अनुकूलित करना सीखना" (PDF). 2019. Retrieved 1 July 2019.