सेवा के बारे में
अनुवादितमैं Futhark में उच्च-प्रदर्शन संख्यात्मक कर्नेल विकसित करता हूँ — एक पूरी तरह से कार्यात्मक डेटा-समांतर भाषा जो CUDA और OpenCL में संकलित होती है। यदि आपके पास एक गर्म लूप, सिमुलेशन या बड़ी मात्रा में एरे ऑपरेशंस हैं जो CPU की सीमा को छू रही हैं, तो मैं इसे GPU पर चलाने के लिए फिर से लिखूंगा और आपको हाथ से एक भी निम्न-स्तरीय डिवाइस कोड की एक पंक्ति नहीं लिखनी पड़ेगी। Futhark मजबूत गारंटी प्रदान करता है: कोई साइड इफेक्ट नहीं, कोई एलियासिंग आश्चर्य नहीं, और संकलक स्वयं मैप, रिड्यूस, स्कैन और विभाजित ऑपरेशंस को तंग कर्नेल में फ्यूज़ करता है। सामान्य कार्यप्रवाह इस प्रकार है। पहले मैं आपकी वर्तमान पाइपलाइन का प्रोफाइल बनाता हूँ और उन सेक्शनों को खोजता हूँ जो वास्तव में समांतर हैं। फिर मैं उन्हें Futhark में पूरी तरह से कार्यात्मक संयोजकों के माध्यम से व्यक्त करता हूँ, पठनीयता और निर्धारण को बनाए रखते हुए। मैं परिणाम की तुलना आपके बेसलाइन संस्करण से करता हूँ, ब्लॉक आकार और मेमोरी एक्सेस पैटर्न को ट्यून करता हूँ और तब तक दोहराता हूँ जब तक संख्याएँ विश्वसनीय नहीं हो जातीं। अंत में, मैं सब कुछ आपकी स्टैक में वापस एम्बेड करता हूँ: Futhark एक C लाइब्रेरी उत्पन्न करता है और मैं इसे लपेटता हूँ ताकि आप इसे ctypes के माध्यम से Python से या एक छोटे एक्सटेंशन से कॉल कर सकें, या इसे C या C++ में एक होस्ट प्रोग्राम में सीधे लिंक कर सकें। वर्षों में मैंने मोंटे कार्लो विकल्प मूल्य निर्धारण, छवि और सिग्नल फ़िल्टर, भौतिक स्टेंसिल, रैखिक बीजगणित प्रक्रियाएँ और मशीन लर्निंग के लिए पूर्व-प्रसंस्करण को तेज किया है। आपको साफ़ स्रोत, एक निर्माण स्क्रिप्ट, एक परीक्षण सूट जो GPU आउटपुट की तुलना बेसलाइन से करता है, बेंचमार्क परिणाम और कोड को फिर से बनाने और विस्तारित करने के लिए एक संक्षिप्त नोट मिलता है। कार्य और लक्षित हार्डवेयर का वर्णन करें — और मैं शुरू करने से पहले वास्तविक त्वरण का अनुमान लगाऊंगा।