बुनियादी रैखिक बीजगणित उपप्रोग्राम

बुनियादी रैखिक बीजगणित उपप्रोग्राम (BLAS) एक विनिर्देश (तकनीकी मानक) है जो सदिश जोड़, अदिश गुणन, बिंदु गुणनफल, रैखिक संयोजन और आव्यूह गुणन जैसे सामान्य रैखिक बीजगणित संचालन करने के लिए निम्न-स्तरीय नित्यक्रम का एक समुच्चय निर्धारित करता है। वे रैखिक बीजगणित पुस्तकालयों के लिए वास्तविक मानक निम्न-स्तरीय नित्यक्रम हैं; नित्यक्रम में C ("सीबीएलएएस अंतरापृष्ठ") और फोरट्रान ("बीएलएएस अंतरापृष्ठ") दोनों के लिए आवश्यक है। यद्यपि बीएलएएस विनिर्देश सामान्य है, बीएलएएस कार्यान्वयन प्रायः किसी विशेष यंत्र पर गति के लिए अनुकूलित होते हैं, इसलिए उनका उपयोग करने से पर्याप्त प्रदर्शन लाभ मिल सकता है। बीएलएएस कार्यान्वयन विशेष चल बिन्दु हार्डवेयर जैसे सदिश पंजीयन या एसआईएमडी निर्देशों का लाभ उठाएगा।

इसका प्रारंभ 1979 में फोरट्रान लाइब्रेरी के रूप में हुआ था और इसका अंतरापृष्ठ बीएलएएस तकनीकी (BLAST) गोष्ठी द्वारा मानकीकृत किया गया था, जिसका नवीनतम बीएलएएस विवरण नेटलिब वेबसाइट पर पाया जा सकता है। इस फोरट्रान लाइब्रेरी को संदर्भ कार्यान्वयन (कभी-कभी भ्रमित रूप से बीएलएएस लाइब्रेरी के रूप में संदर्भित) के रूप में जाना जाता है और यह गति के लिए अनुकूलित नहीं है परन्तु सार्वजनिक कार्यक्षेत्र में है।

अधिकांश अभिकलन लाइब्रेरी जो रैखिक बीजगणित नित्यक्रम की प्रस्तुति करती हैं, सामान्य बीएलएएस उपयोगकर्ता अंतरापृष्ठ समादेश संरचनाओं के अनुरूप होती हैं, इस प्रकार उन लाइब्रेरीज़ (और संबंधित परिणाम) के लिए प्रश्न प्रायः बीएलएएस लाइब्रेरी शाखाओं, जैसे क्यूबीएलएएस (एनवीडिया जीपीयू, जीपीजीपीयू), रौकबीएलएएस (एएमडी जीपीयू, जीपीजीपी) और ओपनबीएलएएस के मध्य सुवाह्य होते हैं। यह अंतरसंचालनीयता तब अभिकलन वास्तुकला के विषम सोपानी (जैसे कि कुछ उन्नत गुच्छन कार्यान्वयन में पाए जाने वाले) के मध्य कार्यशील समरूप कूट कार्यान्वयन का आधार है। सीपीयू-आधारित बीएलएएस लाइब्रेरी शाखाओं के उदाहरणों: ओपनबीएलएएस, बीएलआईएस (बीएलएएस-जैसे लाइब्रेरी दृष्टांतीकरण सॉफ्टवेयर), शाखा प्रदर्शन लाइब्रेरीज़, एटलस, और इंटेल गणित कर्नेल लाइब्रेरी (iMKL) में सम्मिलित हैं। एएमडी बीएलआईएस का एक द्विशाख रखता है जो एएमडी प्लेटफॉर्म के लिए अनुकूलित है, हालांकि यह स्पष्ट नहीं है कि एकीकृत लोकपाल संसाधन उस विशेष सॉफ्टवेयर-हार्डवेयर कार्यान्वयन में उपस्थित हैं या नहीं। एटलस एक सुवाह्य लाइब्रेरी है जो स्वचालित रूप से एक यादृच्छिक वास्तुकला के लिए स्वयं को अनुकूलित करती है। आईएमकेएल एक फ्रीवेयर है और सांपत्तिक इंटेल प्रोसेसर पर प्रदर्शन पर जोर देने के साथ x86 और x86-64 के लिए अनुकूलित किया गया है। ओपनबीएलएएस एक मुक्त स्रोत लाइब्रेरी है जिसे कई लोकप्रिय वास्तुकला के लिए हाथ से अनुकूलित किया गया है। एलआईएनपीएसीके मानदण्ड अपने प्रदर्शन माप के लिए बीएलएएस नित्यक्रम    पर बहुत अधिक निर्भर करते हैं।

कई संख्यात्मक सॉफ़्टवेयर एप्लिकेशन रैखिक बीजगणित गणना करने के लिए बीएलएएस-संगत लाइब्रेरीज़ का उपयोग करते हैं, जिनमें एलएपीएसीके, एलआईएनपीएसीके, आर्मडिला, जीएनयू ऑक्टेव, मैथमैटिका, एमएटीएलएबी, न्यूमपी, आर, जूलिया और लिस्प-स्टेट सम्मिलित हैं।।

पृष्ठभूमि
संख्यात्मक प्रोग्रामिंग के आगमन के साथ, परिष्कृत सबनित्यक्रम पुस्तकालय उपयोगी हो गईं। इन पुस्तकालयों में सामान्य उच्च-स्तरीय गणितीय संक्रिया जैसे रूट खोज, आव्यूह उलटा और समीकरणों की प्रणाली को हल करने के लिए सबनित्यक्रम सम्मिलित होंगे। पसंद की भाषा फोरट्रान थी। सबसे प्रमुख संख्यात्मक प्रोग्रामिंग पुस्तकालय आईबीएम का वैज्ञानिक सबनित्यक्रम पैकेज (एसएसपी) थी। इन सबनित्यक्रम पुस्तकालयज़ ने प्रोग्रामर्स को अपनी विशिष्ट समस्याओं पर ध्यान केंद्रित करने और प्रसिद्ध कलन विधि को फिर से अनुप्रयुक्त करने से बचने की अनुमति दी। पुस्तकालय की दिनचर्या भी औसत कार्यान्वयन से बेहतर होगी; उदाहरण के लिए, आव्यूह कलन विधि, बेहतर संख्यात्मक सटीकता प्राप्त करने के लिए पूर्ण पिवोटिंग का उपयोग कर सकता है। पुस्तकालय की दिनचर्या में भी अधिक कुशल दिनचर्या होगी। उदाहरण के लिए, किसी पुस्तकालय में ऊपरी त्रिकोणीय आव्यूह को हल करने के लिए एक प्रोग्राम सम्मिलित हो सकता है। पुस्तकालयों में कुछ कलन विधि के एकल-सटीक और दोहरे-सटीक संस्करण सम्मिलित होंगे।

प्रारंभ में, इन प्रक्रिया ने अपने निम्न-स्तरीय संक्रिया के लिए हार्ड-कोडेड लूप का उपयोग किया। उदाहरण के लिए, यदि किसी सबनित्यक्रम को आव्यूह गुणन करने की आवश्यकता होती है, तो सबनित्यक्रम में तीन नेस्टेड लूप होंगे। रैखिक बीजगणित कार्यक्रमों में कई सामान्य निम्न-स्तरीय संक्रिया (तथाकथित कर्नेल संक्रिया, कर्नेल (ऑपरेटिंग प्रणाली) से संबंधित नहीं) होते हैं। 1973 और 1977 के मध्य, इनमें से कई कर्नेल संक्रियाों की पहचान की गई। ये कर्नेल संक्रिया परिभाषित सबनित्यक्रम बन गए जिन्हें गणित पुस्तकालय कॉल कर सकते थे। हार्ड-कोडेड लूप की तुलना में कर्नेल कॉल के फायदे थे: पुस्तकालय नित्यक्रम अधिक पठनीय होगी, बग की संभावना कम थी, और कर्नेल कार्यान्वयन को गति के लिए अनुकूलित किया जा सकता था। स्केलर (गणित) और सदिश रिक्त स्थान का उपयोग करके इन कर्नेल संक्रिया के लिए एक विनिर्देश, लेवल -1 बेसिक लीनियर बीजगणित प्रक्रिया (बीएलएएस), 1979 में प्रकाशित किया गया था। बीएलएएस का उपयोग रैखिक बीजगणित सबनित्यक्रम पुस्तकालय LINPACK को अनुप्रयुक्त करने के लिए किया गया था।

बीएलएएस एब्स्ट्रैक्शन उच्च प्रदर्शन के लिए अनुकूलन की अनुमति देता है। उदाहरण के लिए, LINPACK एक सामान्य प्रयोजन पुस्तकालय है जिसका उपयोग बिना किसी संशोधन के कई अलग-अलग यंत्रों पर किया जा सकता है। लिनपैक बीएलएएस के सामान्य संस्करण का उपयोग कर सकता है। प्रदर्शन हासिल करने के लिए, विभिन्न यंत्रें बीएलएएस के अनुरूप संस्करणों का उपयोग कर सकती हैं। जैसे-जैसे कंप्यूटर वास्तुकला अधिक परिष्कृत होता गया, सदिश प्रोसेसर सामने आया। एक सदिश यंत्र के लिए बीएलएएस यंत्र के तीव्र सदिश संक्रिया का उपयोग कर सकता है। (हालांकि सदिश प्रोसेसर अंततः पसंद से बाहर हो गए, आधुनिक सीपीयू में सदिश निर्देश बीएलएएस नित्यक्रम में इष्टतम प्रदर्शन के लिए आवश्यक हैं।)

अन्य यंत्र सुविधाएँ उपलब्ध हो गईं और उनका उपयोग भी किया जा सकता है। नतीजतन, बीएलएएस को 1984 से 1986 तक लेवल-2 कर्नेल ऑपरेशंस के साथ संवर्धित किया गया था जो कि सदिश-आव्यूह ऑपरेशंस से संबंधित था। स्मृति पदानुक्रम को शोषण करने योग्य चीज़ के रूप में भी मान्यता दी गई थी। कई परिकलकों में कैश मैमोरी होती है जो मुख्य मेमोरी से बहुत तीव्र होती है; आव्यूह जोड़तोड़ को स्थानीयकृत रखने से कैश के बेहतर उपयोग की अनुमति मिलती है। 1987 और 1988 में, आव्यूह-आव्यूह संक्रिया करने के लिए स्तर 3 बीएलएएस की पहचान की गई थी। स्तर 3 बीएलएएस ने खंड-विभाजित कलन विधि को प्रोत्साहित किया। एलएपीएसीके पुस्तकालय लेवल 3 बीएलएएस का उपयोग करती है।

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

कार्यक्षमता
बीएलएएस कार्यक्षमता को नित्यक्रम के तीन समूहों में वर्गीकृत किया गया है जिन्हें स्तर कहा जाता है, जो परिभाषा और प्रकाशन के कालानुक्रमिक क्रम के साथ-साथ कलन विधि की जटिलताओं में बहुपद की डिग्री दोनों के अनुरूप है; स्तर 1 बीएलएएस संक्रिया में सामान्यतः रैखिक समय लगता है, $O(n)$, स्तर 2 संक्रिया द्विघात समय और स्तर 3 संक्रिया घन समय। आधुनिक बीएलएएस कार्यान्वयन सामान्यतः सभी तीन स्तर प्रदान करते हैं।

स्तर 1
इस स्तर में बीएलएएस (1979) की मूल प्रस्तुति में वर्णित सभी दिनचर्या सम्मिलित हैं। जो किसी सरणी के स्ट्राइड पर केवल सदिश संक्रिया को परिभाषित करता है: डॉट उत्पाद, मानक (गणित), फॉर्म का एक सामान्यीकृत सदिश जोड़


 * $$\boldsymbol{y} \leftarrow \alpha \boldsymbol{x} + \boldsymbol{y}$$

(बुलाया, ए एक्स प्लस वाई ) और कई अन्य संक्रिया।

स्तर 2
इस स्तर में आव्यूह-सदिश संक्रिया सम्मिलित हैं, जिसमें अन्य चीजों के अतिरिक्त, एक सामान्यीकृत आव्यूह-सदिश गुणन सम्मिलित है :


 * $$\boldsymbol{y} \leftarrow \alpha \boldsymbol{A} \boldsymbol{x} + \beta \boldsymbol{y}$$

साथ ही इसके लिए एक सॉल्वर भी $x$रेखीय समीकरण में


 * $$\boldsymbol{T} \boldsymbol{x} = \boldsymbol{y}$$

साथ $T$त्रिकोणीय होना. लेवल 2 बीएलएएस का डिज़ाइन 1984 में शुरू हुआ, जिसके परिणाम 1988 में प्रकाशित हुए। लेवल 2 प्रक्रिया का उद्देश्य विशेष रूप से सदिश प्रोसेसर पर बीएलएएस का उपयोग करके कार्यक्रमों के प्रदर्शन में सुधार करना है, जहां लेवल 1 बीएलएएस उप-इष्टतम हैं क्योंकि वे कंपाइलर से संक्रिया की आव्यूह-सदिश प्रकृति को छिपाते हैं।

स्तर 3
यह स्तर, औपचारिक रूप से 1990 में प्रकाशित हुआ, इसमें आव्यूह-आव्यूह संक्रिया सम्मिलित हैं, जिसमें सामान्य आव्यूह गुणन सम्मिलित है, फॉर्म का


 * $$\boldsymbol{C} \leftarrow \alpha \boldsymbol{A} \boldsymbol{B} + \beta \boldsymbol{C},$$

जहाँ $A$ और $B$ को वैकल्पिक रूप से खिसकाना  किया जा सकता है या हर्मिटियन संयुग्मित किया जा सकता है|नित्यक्रम के अंदर हर्मिटियन-संयुग्मित किया जा सकता है, और तीनों आव्यूह को स्ट्राइड किया जा सकता है। साधारण आव्यूह गुणन $A B$समूहिंग द्वारा किया जा सकता है $α$ एक को और $C$ उचित आकार के एक पूर्ण-शून्य आव्यूह के लिए।

लेवल 3 में अभिकलन के लिए नित्यक्रम भी सम्मिलित हैं


 * $$\boldsymbol{B} \leftarrow \alpha \boldsymbol{T}^{-1} \boldsymbol{B},$$

जहाँ T}अन्य कार्यक्षमताओं के साथ-साथ } एक त्रिकोणीय आव्यूह है।

कई वैज्ञानिक अनुप्रयोगों में आव्यूह गुणन की सर्वव्यापकता के कारण, जिसमें शेष स्तर 3 बीएलएएस का कार्यान्वयन भी सम्मिलित है, और क्योंकि आव्यूह-सदिश गुणन की स्पष्ट पुनरावृत्ति से परे तीव्र कलन विधि उपस्थित हैं,  बीएलएएस कार्यान्वयनकर्ताओं के लिए अनुकूलन का एक प्रमुख लक्ष्य है। उदाहरण के लिए, एक या दोनों को विघटित करके $A$, $B$ खंड आव्यूह में,   आव्यूह गुणन एल्गोरिथम#फूट डालो और जीतो एल्गोरिथम हो सकता है। यह सम्मिलित करने के लिए प्रेरणाओं में से एक है $β$ मापदण्ड, ताकि पिछले खंडों के परिणाम जमा किये जा सकें। ध्यान दें कि इस अपघटन के लिए विशेष मामले की आवश्यकता होती है $β = 1$ जिसके लिए कई कार्यान्वयन अनुकूलित होते हैं, जिससे प्रत्येक मान के लिए एक गुणन समाप्त हो जाता है $C$. यह अपघटन उत्पाद में उपयोग किए गए डेटा के स्थान और समय दोनों में संदर्भ के बेहतर स्थानीयकरण की अनुमति देता है। यह, बदले में, प्रणाली पर सीपीयू कैश का लाभ उठाता है। एक से अधिक स्तर के कैश वाले प्रणाली के लिए, खंडिंग को उस क्रम में दूसरी बार अनुप्रयुक्त किया जा सकता है जिसमें गणना में खंड का उपयोग किया जाता है। अनुकूलन के इन दोनों स्तरों का उपयोग स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ़्टवेयर जैसे कार्यान्वयन में किया जाता है। अभी हाल ही में, हर एक परत के कार्यान्वयन से पता चला है कि केवल एल2 कैश के लिए खंड करना, अनुवाद लुकसाइड बफर मिस को कम करने के लिए सन्निहित मेमोरी में कॉपी करने के सावधानीपूर्वक परिशोधित विश्लेषण के साथ, स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर से बेहतर है। इन विचारों पर आधारित एक उच्च सुव्यवस्थित कार्यान्वयन गोटोब्लास, ओपनब्लास और बीएलआईएस (सॉफ्टवेयर) का हिस्सा है।

का एक सामान्य रूपांतर gemm है gemm3m, जो पारंपरिक चार वास्तविक आव्यूह गुणन और दो वास्तविक आव्यूह जोड़ के बजाय तीन वास्तविक आव्यूह गुणन और पांच वास्तविक आव्यूह जोड़ का उपयोग करके एक जटिल उत्पाद की गणना करता है, यह सड़क कलन विधि के समान एक कलन विधि है जिसे पहले पीटर अनगर द्वारा वर्णित किया गया था।

कार्यान्वयन

 * गति बढ़ाएं: macOS और IOS (Apple) के लिए Apple Inc. का ढांचा, जिसमें बीएलएएस और एलएपीएसीके के ट्यून किए गए संस्करण सम्मिलित हैं।
 * शाखा प्रदर्शन पुस्तकालय ़: आर्म परफॉर्मेंस पुस्तकालयज़, आर्म 64-बिट AArch64-आधारित प्रोसेसर का समर्थन करती है, जो आर्म लिमिटेड से उपलब्ध है। ; एटलस: स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर, सी (प्रोग्रामिंग भाषा) और फोरट्रान के लिए बीएलएएस अप्लिकेशन प्रोग्रामिंग अंतरफलक का एक खुला स्रोत सॉफ्टवेयर  कार्यान्वयन।
 * बीएलआईएस (सॉफ्टवेयर): तीव्र इंस्टेंटिएशन के लिए बीएलएएस जैसा पुस्तकालय इंस्टेंटिएशन सॉफ्टवेयर ढांचा। अधिकांश आधुनिक सीपीयू के लिए अनुकूलित। BLIS, Gotoबीएलएएस का पूर्ण रीफैक्टरिंग है जो किसी दिए गए प्लेटफ़ॉर्म के लिए लिखे जाने वाले कोड की मात्रा को कम करता है।
 * C++एएमपी बीएलएएस: C++एएमपी बीएलएएस पुस्तकालय विज़ुअल C++ के लिए Microsoft केएएमपी भाषा एक्सटेंशन के लिए बीएलएएस का एक मुक्त स्रोत सॉफ़्टवेयर कार्यान्वयन है।
 * cuबीएलएएस: NVIDIA आधारित GPU कार्ड के लिए अनुकूलित बीएलएएस, कुछ अतिरिक्त पुस्तकालय कॉल की आवश्यकता होती है।
 * एनवीबीएलएएस: एनवीडिया आधारित जीपीयू कार्ड के लिए अनुकूलित बीएलएएस, केवल लेवल 3 फलन प्रदान करता है, परन्तु अन्य बीएलएएस पुस्तकालयों के लिए सीधे ड्रॉप-इन प्रतिस्थापन के रूप में।
 * सीएलबीएलएएस: एएमडी द्वारा बीएलएएस का एक ओपनसीएल कार्यान्वयन। एएमडी कंप्यूट पुस्तकालयज़ का हिस्सा।
 * clबीएलएएसT: अधिकांश बीएलएएस एपीआई का एक ट्यून किया गया OpenCL कार्यान्वयन।
 * Eigen बीएलएएस: एक फोरट्रान और C (प्रोग्रामिंग भाषा) बीएलएएस पुस्तकालय, मोज़िला लाइसेंस-लाइसेंस प्राप्त Eigen (C++ पुस्तकालय) के शीर्ष पर कार्यान्वित की गई है, जो x86, x86-64, ARM एआरएम वास्तुकला|ARM (NEON), और PowerPC वास्तुकला का समर्थन करती है।
 * ईएसएसएल: आईबीएम की इंजीनियरिंग और वैज्ञानिक सबनित्यक्रम पुस्तकालय, AIX ऑपरेटिंग प्रणाली और लिनक्स के अंतर्गत पावरपीसी वास्तुकला का समर्थन करती है।
 * गोटोब्लास: काज़ुशिगे गोटो का बीएलएएस का बीएसडी-लाइसेंस प्राप्त कार्यान्वयन, विशेष रूप से इंटेल नेहलेम (माइक्रोवास्तुकला)/इंटेल एटम, वीआईए टेक्नोलॉजीज वीआईए नैनो, एएमडी ओपर्टन के लिए ट्यून किया गया है। ;जीएनयू वैज्ञानिक पुस्तकालय: कई संख्यात्मक दिनचर्या का बहु-मंच कार्यान्वयन। इसमें Cबीएलएएस अंतरापृष्ठ सम्मिलित है।
 * एचपी एमएलआईबी: हेवलेट पैकर्ड  की गणित पुस्तकालय एचपी-यूएक्स और लिनक्स के अंतर्गत आईए-64, पीए-जोखिम, एक्स86 और ओपर्टन वास्तुकला का समर्थन करती है।
 * इंटेल एमकेएल: इंटेल गणित कर्नेल पुस्तकालय, x86 32-बिट्स और 64-बिट्स का समर्थन करती है, जो इंटेल से निःशुल्क उपलब्ध है। इंटेल पेंटियम (ब्रांड), इण्टेल कोर  और इंटेल ज़ीऑन सीपीयू और इंटेल ज़ीऑन फाई के लिए अनुकूलन सम्मिलित हैं; Linux, Microsoft Windows और macOS के लिए समर्थन।
 * MathKeisan: NEC Corporation की गणित पुस्तकालय, SUPER-UX के अंतर्गत NEC SX वास्तुकला और Linux के अंतर्गत इटेनियम का समर्थन करती है
 * नेटलिब बीएलएएस: फोरट्रान में लिखा गया नेटलिब पर आधिकारिक संदर्भ कार्यान्वयन।
 * नेटलिब सीबीएलएएस: बीएलएएस के लिए संदर्भ सी (प्रोग्रामिंग भाषा) अंतरापृष्ठ। सी से फोरट्रान बीएलएएस को कॉल करना भी संभव (और लोकप्रिय) है।
 * Openबीएलएएस: Gotoबीएलएएस पर आधारित अनुकूलित बीएलएएस, x86, x86-64, MIPS वास्तुकला और ARM वास्तुकला प्रोसेसर का समर्थन करता है।
 * पीडीएलआईबी/एसएक्स: एनईसी एनईसी एसएक्स वास्तुकला|एसएक्स-4 प्रणाली के लिए एनईसी कॉर्पोरेशन की सार्वजनिक कार्यक्षेत्र गणितीय पुस्तकालय।
 * rocबीएलएएस: कार्यान्वयन जो ROCm के माध्यम से AMD GPU पर चलता है।
 * एससीएसएल
 * सिलिकॉन ग्राफ़िक्स की वैज्ञानिक अभिकलन सॉफ्टवेयर पुस्तकालय में एसजीआई के इरिक्स वर्कस्टेशन के लिए बीएलएएस और लैपैक कार्यान्वयन सम्मिलित हैं।


 * सन परफॉर्मेंस पुस्तकालय: सोलारिस 8, 9 और 10 के साथ-साथ लिनक्स के अंतर्गत SPARC, इंटेल कोर और AMD64 वास्तुकला के लिए अनुकूलित बीएलएएस और एलएपीएसीके।
 * यूबीएलएएस: एक सामान्य सी++ टेम्पलेट क्लास पुस्तकालय जो बीएलएएस कार्यक्षमता प्रदान करती है। पुस्तकालय को बूस्ट करें  का हिस्सा. यह एक एकीकृत नोटेशन में कई हार्डवेयर-त्वरित पुस्तकालयों को आवश्यक प्रदान करता है। इसके अतिरिक्त, uबीएलएएस उन्नत C++ सुविधाओं का उपयोग करके कलन विधि की शुद्धता पर ध्यान केंद्रित करता है।

बीएलएएस का उपयोग करने वाली पुस्तकालय

 * आर्माडिलो: आर्माडिलो (सी++ पुस्तकालय) एक सी++ रैखिक बीजगणित पुस्तकालय है जिसका लक्ष्य गति और उपयोग में आसानी के मध्य एक अच्छा संतुलन बनाना है। यह टेम्प्लेट कक्षाओं को नियोजित करता है, और इसमें बीएलएएस/ATLAS और एलएपीएसीके के लिए वैकल्पिक लिंक हैं। यह NICTA (ऑस्ट्रेलिया में) द्वारा प्रायोजित है और इसे निःशुल्क लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
 * एलएपीएसीके: एलएपीएसीके बीएलएएस पर निर्मित एक उच्च स्तरीय रैखिक बीजगणित पुस्तकालय है। बीएलएएस की तरह, एक संदर्भ कार्यान्वयन उपस्थित है, परन्तु लिबफ्लेम और एमकेएल जैसे कई विकल्प उपस्थित हैं।
 * मीर: डी (प्रोग्रामिंग भाषा) में लिखित विज्ञान और यंत्र सीखने के लिए एक एलएलवीएम-त्वरित सामान्य संख्यात्मक पुस्तकालय। यह सामान्य रैखिक बीजगणित उपप्रोग्राम (GLAS) प्रदान करता है। इसे Cबीएलएएस कार्यान्वयन पर बनाया जा सकता है।

समान पुस्तकालय (बीएलएएस के साथ संगत नहीं)

 * एलिमेंटल: एलिमेंटल वितरित मेमोरी | वितरित-मेमोरी सघन और विरल-प्रत्यक्ष रैखिक बीजगणित और अनुकूलन के लिए एक खुला स्रोत सॉफ्टवेयर है।
 * एचएएसईएम: एक C++ टेम्प्लेट पुस्तकालय है, जो रैखिक समीकरणों को हल करने और eigenvalues ​​​​की गणना करने में सक्षम है। इसे बीएसडी लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
 * लामा: त्वरित गणित अनुप्रयोगों के लिए पुस्तकालय (त्वरित गणित अनुप्रयोगों के लिए पुस्तकालय) वितरित मेमोरी प्रणाली पर विभिन्न प्रकार के हार्डवेयर (जैसे सीयूडीए या ओपनसीएल के माध्यम से जीपीयू) को लक्षित करने वाले संख्यात्मक सॉल्वर लिखने के लिए एक सी ++ टेम्पलेट पुस्तकालय है, जो प्रोग्राम से हार्डवेयर विशिष्ट प्रोग्रामिंग को छिपाती है। डेवलपर
 * एमटीएल4: आव्यूह टेम्पलेट पुस्तकालय संस्करण 4 एक सामान्य सी++ टेम्प्लेट पुस्तकालय है जो विरल और सघन बीएलएएस कार्यक्षमता प्रदान करती है। MTL4 सामान्य प्रोग्रामिंग  की बदौलत एक सहज अंतरापृष्ठ (MATLAB के समान) और व्यापक प्रयोज्यता स्थापित करता है।

विरल बीएलएएस
पुस्तकालय के इतिहास के दौरान स्पार्स आव्यूह को संभालने के लिए बीएलएएस के कई एक्सटेंशन सुझाए गए हैं; विरल आव्यूह कर्नेल नित्यक्रम का एक छोटा समूह अंततः 2002 में मानकीकृत किया गया था।

प्रचयित बीएलएएस
पारंपरिक बीएलएएस फलन को ऐसे वास्तुकला में भी पोर्ट किया गया है जो जीपीयू जैसे बड़ी मात्रा में समानता का समर्थन करते हैं। यहां, पारंपरिक बीएलएएस फलन बड़े आव्यूह के लिए सामान्यतः अच्छा प्रदर्शन प्रदान करते हैं। हालाँकि, जब जीईएमएम नित्यक्रम का उपयोग करके कई छोटे आव्यूह के आव्यूह उत्पादों की गणना की जाती है, तो वे वास्तुकला महत्वपूर्ण प्रदर्शन हानि दर्शाते हैं। इस समस्या के समाधान के लिए, 2017 में बीएलएएस फलन का एक प्रचयित संस्करण निर्दिष्ट किया गया है।

एक उदाहरण के रूप में, ऊपर से जीईएमएम नित्यक्रम लेते हुए, प्रचयित संस्करण कई आव्यूहों के लिए एक साथ निम्नलिखित गणना करता है:

$$\boldsymbol{C}[k] \leftarrow \alpha \boldsymbol{A}[k] \boldsymbol{B}[k] + \beta \boldsymbol{C}[k] \quad \forall k $$

अनुक्रमणिका वर्गाकार कोष्ठकों में $$k$$ इंगित करता है कि $$k$$ एक स्तंभ में प्रायः संक्रिया सभी आव्यूहों के लिए किया गया है, यह संक्रिया एक प्रगति प्रचयित मेमोरी अभिन्यास के लिए कार्यान्वित किया जाता है जहां सभी आव्यूह सरणी $$A$$, $$B$$ और $$C$$ में संयोजित होते हैं।

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

यह भी देखें

 * संख्यात्मक पुस्तकालयों की सूची
 * गणित कर्नेल पुस्तकालय, इंटेल वास्तुकला के लिए अनुकूलित गणित पुस्तकालय; इसमें बीएलएएस, एलएपीएसीके सम्मिलित हैं।
 * संख्यात्मक रैखिक बीजगणित, समस्या का प्रकार जिसे बीएलएएस हल करता है।

अग्रिम पठन

 * J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson, Algorithm 656: An extended set of FORTRAN Basic Linear Algebra Subprograms, ACM Trans. Math. Softw., 14 (1988), pp. 18–32.
 * J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, A set of Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Softw., 16 (1990), pp. 1–17.
 * J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, Algorithm 679: A set of Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Softw., 16 (1990), pp. 18–28.
 * New बीएलएएस
 * L. S. Blackford, J. Demmel, J. Dongarra, I. Duff, S. Hammarling, G. Henry, M. Heroux, L. Kaufman, A. Lumsdaine, A. Petitet, R. Pozo, K. Remington, R. C. Whaley, An Updated Set of Basic Linear Algebra Subprograms (बीएलएएस), ACM Trans. Math. Softw., 28-2 (2002), pp. 135–151.
 * J. Dongarra, Basic Linear Algebra Subprograms Technical Forum Standard, International Journal of High Performance Applications and Supercomputing, 16(1) (2002), pp. 1–111, and International Journal of High Performance Applications and Supercomputing, 16(2) (2002), pp. 115–199.
 * New बीएलएएस
 * L. S. Blackford, J. Demmel, J. Dongarra, I. Duff, S. Hammarling, G. Henry, M. Heroux, L. Kaufman, A. Lumsdaine, A. Petitet, R. Pozo, K. Remington, R. C. Whaley, An Updated Set of Basic Linear Algebra Subprograms (बीएलएएस), ACM Trans. Math. Softw., 28-2 (2002), pp. 135–151.
 * J. Dongarra, Basic Linear Algebra Subprograms Technical Forum Standard, International Journal of High Performance Applications and Supercomputing, 16(1) (2002), pp. 1–111, and International Journal of High Performance Applications and Supercomputing, 16(2) (2002), pp. 115–199.

बाहरी संबंध

 * बीएलएएस homepage on Netlib.org
 * बीएलएएस FAQ
 * बीएलएएस Quick Reference Guide from एलएपीएसीके Users' Guide
 * Lawson Oral History One of the original authors of the बीएलएएस discusses its creation in an oral history interview. Charles L. Lawson Oral history interview by Thomas Haigh, 6 and 7 November 2004, San Clemente, California. Society for Industrial and Applied Mathematics, Philadelphia, PA.
 * Dongarra Oral History In an oral history interview, Jack Dongarra explores the early relationship of बीएलएएस to LINPACK, the creation of higher level बीएलएएस versions for new architectures, and his later work on the ATLAS system to automatically optimize बीएलएएस for particular machines. Jack Dongarra, Oral history interview by Thomas Haigh, 26 April 2005, University of Tennessee, Knoxville TN. Society for Industrial and Applied Mathematics, Philadelphia, PA
 * How does बीएलएएस get such extreme performance? Ten naive 1000&times;1000 matrix multiplications (1010 floating point multiply-adds) takes 15.77 seconds on 2.6 GHz processor; बीएलएएस implementation takes 1.32 seconds.
 * An Overview of the Sparse Basic Linear Algebra Subprograms: The New Standard from the बीएलएएस Technical Forum