क्या C / C ++ में BLAS का संदर्भ-स्तर कार्यान्वयन है?


11

नेटलिब बीएलएएस कार्यान्वयन एक उत्कृष्ट संदर्भ है, जो ज्यादातर संयुक्त राष्ट्र-अनुकूलित और अच्छी तरह से प्रलेखित (जैसे zgemm ) है। हालांकि, यह फोरट्रान 77 में है, जो इसे और अधिक आधुनिक प्रोग्रामिंग शिक्षा वाले लोगों के लिए दुर्गम बनाता है। क्या C / C ++ में netlib की तरह BLAS का संदर्भ-स्तर कार्यान्वयन है?

जवाबों:


10

क्या आपने जीएनयू साइंटिफिक लाइब्रेरी के कार्यान्वयन पर ध्यान दिया है ? मुझे लगता है कि स्रोत कोड पर्याप्त रूप से पठनीय है और दिनचर्या अच्छी तरह से प्रलेखित है।


मुझे ठीक लगता है। प्रलेखन में थोड़ी कमी है, लेकिन चर नामों को अच्छी तरह से चुना जाता है जो मुझे लगता है कि यह स्पष्ट है। मैं शायद netlib BLAS रूटीन की शुरुआती टिप्पणी को टाल दूंगा। आप वास्तव में किस मुद्दे को लेते हैं? क्या आपके पास कोई विकल्प है?
मैक्स हचिन्सन

6

BLAS का एक उल्लेखनीय, C भाषा कार्यान्वयन ATLAS है। उपयोगी सुविधाओं में:

  1. बीजगणित की दिनचर्या दोनों को सीधा सी के साथ-साथ कई आर्किटेक्चर और वेरिएंट के लिए अत्यधिक-अनुकूलित कोडांतरक असिस्टेड संस्करण के रूप में लागू किया गया।
  2. बिल्ड सिस्टम में एक "ऑटो-ट्यूनर" होता है जो एटलस लाइब्रेरी के कई वेरिएंट्स को स्थापित करने के लिए संकलित करता है जो दिए गए मशीन पर सबसे तेज़ होगा।

http://math-atlas.sourceforge.net/


मैंने एटलस को देखा लेकिन यह चूक गया। संदर्भ कार्यान्वयन का मार्ग "src / blas / संदर्भ" है, जिसमें "रेफरी" प्रकार के चरित्र और दिनचर्या के नाम के साथ डाला गया है और चरित्र तर्कों के साथ जोड़ा गया है।
मैक्स हचिंसन

3

Netlib भी पैदा करता है CLAPACK , जो BLAS हैं, लेकिन यह f2c के माध्यम से सिर्फ fortran कोड रन है और इसलिए थोड़ा भद्दा है (उदाहरण के zgemm )।


1

एक उच्च-प्रदर्शन कार्यान्वयन के लिए जो न केवल उच्चतम प्रदर्शन (इंटेल Xeon Phi के 60 कोर पर चोटी के 85% से बेहतर) के बीच है, बल्कि यह भी कि सबसे सुंदर लिखा है, बीएलआईएस पर एक नज़र है:

https://github.com/flame/blis


ऐसा नहीं लगता है कि यह संदर्भ-स्तरीय कार्यान्वयन का दावा करता है
mabraham

हम इसे उच्च-निष्पादन संदर्भ कार्यान्वयन के रूप में पतला करना पसंद करते हैं।
रॉबर्ट वैन डे जिजेन

0

मेरे पास RNP और RNP2 में BLAS / LAPACK के कुछ बिट्स का कार्यान्वयन है ।


यह दिलचस्प है, लेकिन यह निश्चित रूप से बीएलएएस के बाद का है और जीएसएल की तुलना में कम सीधे और एटीएलएएस में संदर्भ कार्यान्वयन है।
मैक्स हचिंसन

-1

वर्तमान में हम एक बड़े पैमाने पर ओपन ऑनलाइन कोर्स, "LAFF-ऑन हाई-परफॉर्मेंस कंप्यूटिंग" पर काम कर रहे हैं, जो उदाहरण के रूप में dgemm का उपयोग करता है जो समानांतर स्तर के विभिन्न स्तरों के माध्यम से एक होता है: निर्देश स्तर, ओपनएमपी, एमपीआई।

यह BLAS के लिए एक संदर्भ कार्यान्वयन नहीं है, लेकिन यह BLAS को कोड करने के तरीके (प्रदर्शन के लिए) का संदर्भ है। सूचित रखने के लिए, www.ulaff.net पर जाएं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.