बुनियादी रैखिक बीजगणित उपप्रोग्राम: Difference between revisions
(Created page with "{{Short description|Routines for performing common linear algebra operations}} {{Use dmy dates|date=March 2020|cs1-dates=y}} {{Infobox software | name = BLAS...") |
No edit summary |
||
Line 2: | Line 2: | ||
{{Use dmy dates|date=March 2020|cs1-dates=y}} | {{Use dmy dates|date=March 2020|cs1-dates=y}} | ||
{{Infobox software | {{Infobox software | ||
| name = | | name = बीएलएएस | ||
| logo = <!-- Image name is enough --> | | logo = <!-- Image name is enough --> | ||
| logo alt = | | logo alt = | ||
Line 18: | Line 18: | ||
| latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes}} --> | | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes}} --> | ||
| status = | | status = | ||
| programming language = | | programming language = कार्यान्वयन पर निर्भर करता है | ||
| operating system = | | operating system = | ||
| platform = [[ | | platform = [[क्रॉस-प्लेटफॉर्म]] | ||
| size = | | size = | ||
| language = | | language = | ||
| language count = <!-- Number only --> | | language count = <!-- Number only --> | ||
| language footnote = | | language footnote = | ||
| genre = [[Library (computing)| | | genre = [[Library (computing)|पुस्तकालय]] | ||
| license = | | license = | ||
| alexa = | | alexa = | ||
Line 33: | Line 33: | ||
}} | }} | ||
बुनियादी रैखिक बीजगणित उपप्रोग्राम (बीएलएएस) एक विनिर्देश (तकनीकी मानक) है जो [[ सदिश स्थल ]] जोड़, स्केलर गुणन, [[डॉट उत्पाद]], रैखिक संयोजन और [[मैट्रिक्स गुणन|आव्यूह गुणन]] जैसे सामान्य रैखिक बीजगणित संक्रिया करने के लिए निम्न-स्तरीय दिनचर्या का एक समूह निर्धारित करता है। वे रैखिक बीजगणित पुस्तकालयों के लिए ''वास्तविक'' मानक निम्न-स्तरीय नित्यक्रम हैं; नित्यक्रम में C (प्रोग्रामिंग भाषा) (Cबीएलएएस अंतरापृष्ठ) और [[फोरट्रान]] (बीएलएएस अंतरापृष्ठ) दोनों के लिए बाइंडिंग है। यद्यपि बीएलएएस विनिर्देश सामान्य है, बीएलएएस कार्यान्वयन प्रायः किसी विशेष यंत्र पर गति के लिए अनुकूलित होते हैं, इसलिए उनका उपयोग करने से पर्याप्त प्रदर्शन लाभ मिल सकता है। बीएलएएस कार्यान्वयन विशेष चल बिन्दु हार्डवेयर जैसे सदिश रजिस्टर या [[SIMD]] निर्देशों का लाभ उठाएगा। | |||
इसकी | इसकी प्रारंभ 1979 में फोरट्रान पुस्तकालय के रूप में हुई थी<ref name="lawson79">*{{cite journal |last1=Lawson |first1=C. L. |last2=Hanson |first2=R. J. |last3=Kincaid |first3=D. |last4=Krogh |first4=F. T. |title=Basic Linear Algebra Subprograms for FORTRAN usage |journal=ACM Trans. Math. Softw. |volume=5 |issue=3 |pages=308–323 |date=1979 |id=Algorithm 539 |doi=10.1145/355841.355847 |hdl=2060/19780018835|s2cid=6585321 |hdl-access=free }}</ref> और इसका अंतरापृष्ठ बीएलएएस टेक्निकल (बीएलएएसT) फोरम द्वारा मानकीकृत किया गया था, जिसकी नवीनतम बीएलएएस रिपोर्ट [[नेटलिब]] वेबसाइट पर पाई जा सकती है।<ref>{{Cite web |url=http://netlib.org/blas/blast-forum|title=बीएलएएस तकनीकी फोरम|website=netlib.org |access-date=2017-07-07}}</ref> इस फोरट्रान पुस्तकालय को [[संदर्भ कार्यान्वयन]] (कभी-कभी भ्रमित रूप से बीएलएएस पुस्तकालय के रूप में संदर्भित) के रूप में जाना जाता है और यह गति के लिए अनुकूलित नहीं है परन्तु सार्वजनिक कार्यक्षेत्र में है।<ref>[http://www.lahey.com/docs/blaseman_lin62.pdf blaseman] {{webarchive |url=https://web.archive.org/web/20161012014431/http://www.lahey.com/docs/blaseman_lin62.pdf |date=2016-10-12}} ''"The products are the implementations of the public domain BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra PACKage), which have been developed by groups of people such as Prof. Jack Dongarra, University of Tennessee, USA and all published on the WWW (URL: http://www.netlib.org/)."''{{dead link|date=October 2016 |bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{cite web |url=http://www.netlib.org/utk/people/JackDongarra/PAPERS/netlib-history6.pdf |title=Netlib and NA-Net: building a scientific computing community |author=Jack Dongarra |author2=Gene Golub |author3=Eric Grosse |author4=Cleve Moler |author5=Keith Moore |quote=The Netlib software repository was created in 1984 to facilitate quick distribution of public domain software routines for use in scientific computation. |publisher=netlib.org |access-date=2016-02-13}}</ref> | ||
अधिकांश | अधिकांश अभिकलन पुस्तकालय जो रैखिक बीजगणित नित्यक्रम की प्रस्तुति करती हैं, सामान्य बीएलएएस उपयोगकर्ता अंतरापृष्ठ कमांड संरचनाओं के अनुरूप होती हैं, इस प्रकार उन पुस्तकालयज़ (और संबंधित परिणाम) के लिए क्वेरीज़ प्रायः बीएलएएस पुस्तकालय शाखाओं के मध्य पोर्टेबल होती हैं, जैसे CUDA#प्रोग्रामिंग_एबिलिटीज़ (एनवीडिया GPU, [[GPGPU]]), ROCm# rocबीएलएएस_/_hipबीएलएएस (amd GPU, GPGP), और [[OpenBLAS|Openबीएलएएस]]। यह अंतरसंक्रियाीयता तब अभिकलन वास्तुकला के विषम कैस्केड (जैसे कि कुछ उन्नत क्लस्टरिंग कार्यान्वयन में पाए जाने वाले) के मध्य कामकाजी समरूप कोड कार्यान्वयन का आधार है। सीपीयू-आधारित बीएलएएस पुस्तकालय शाखाओं के उदाहरणों में सम्मिलित हैं: ओपनबीएलएएस, [[बीएलआईएस (सॉफ्टवेयर)]] | बीएलआईएस (बीएलएएस-जैसे पुस्तकालय इंस्टेंटिएशन सॉफ्टवेयर), आर्म परफॉर्मेंस पुस्तकालयज़,<ref name="Arm Performance Libraries">{{cite web|date=2020 |title=शाखा प्रदर्शन पुस्तकालय|publisher=[[Arm]] |url=https://www.arm.com/products/development-tools/server-and-hpc/allinea-studio/performance-libraries |access-date=2020-12-16}}</ref> स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर, और [[इंटेल गणित कर्नेल लाइब्रेरी|इंटेल गणित कर्नेल पुस्तकालय]] (आईएमकेएल)। एएमडी बीएलआईएस का एक कांटा रखता है जो [[उन्नत लघु उपकरण]] प्लेटफॉर्म के लिए अनुकूलित है, हालांकि यह स्पष्ट नहीं है कि एकीकृत लोकपाल संसाधन उस विशेष सॉफ्टवेयर-हार्डवेयर कार्यान्वयन में उपस्थित हैं या नहीं।<ref>{{Cite web|url=https://developer.amd.com/amd-aocl/blas-library/|title=BLAS Library}}</ref> एटलस एक पोर्टेबल पुस्तकालय है जो स्वचालित रूप से एक मनमानी वास्तुकला के लिए खुद को अनुकूलित करती है। iMKL एक फ्रीवेयर है<ref name="MKLfree">{{cite web |date=2015 |title=इंटेल मैथ कर्नेल लाइब्रेरी (एमकेएल) के लिए कोई लागत विकल्प नहीं, स्वयं का समर्थन करें, रॉयल्टी-मुक्त|publisher=[[Intel]] |url=http://software.intel.com/articles/free_mkl |access-date=31 August 2015}}</ref> और मालिकाना<ref name="MKLintel">{{cite web |date=2015 |title=इंटेल गणित कर्नेल लाइब्रेरी (इंटेल एमकेएल)|publisher=[[Intel]] |url=http://software.intel.com/intel-mkl |access-date=25 August 2015}}</ref> [[इंटेल]] प्रोसेसर पर प्रदर्शन पर जोर देने के साथ विक्रेता पुस्तकालय को x86 और x86-64 के लिए अनुकूलित किया गया है।<ref name="optnotice">{{cite web |year=2012 |title=अनुकूलन सूचना|publisher=[[Intel]] |url=http://software.intel.com/articles/optimization-notice |access-date=10 April 2013}}</ref> ओपनबीएलएएस एक मुक्त स्रोत पुस्तकालय है जिसे कई लोकप्रिय वास्तुकला के लिए हाथ से अनुकूलित किया गया है। [[लिनपैक बेंचमार्क]] काफी हद तक बीएलएएस नित्यक्रम पर निर्भर करते हैं <code>[[General Matrix Multiply|जीईएमएम]]</code> इसके प्रदर्शन माप के लिए. | ||
कई संख्यात्मक सॉफ़्टवेयर एप्लिकेशन रैखिक बीजगणित गणना करने के लिए | कई संख्यात्मक सॉफ़्टवेयर एप्लिकेशन रैखिक बीजगणित गणना करने के लिए बीएलएएस-संगत पुस्तकालय का उपयोग करते हैं, जिनमें [[LAPACK|एलएपीएसीके]], [[LINPACK]], Armadilla (C++ पुस्तकालय), GNU ऑक्टेव, [[मेथेमेटिका]], सम्मिलित हैं।<ref>{{cite journal |author=Douglas Quinney |date=2003 |title=So what's new in Mathematica 5.0? |journal=MSOR Connections |volume=3 |number=4 |publisher=The Higher Education Academy |url=http://78.158.56.101/archive/msor/headocs/34mathematica5.pdf |url-status=dead |archive-url=https://web.archive.org/web/20131029204826/http://78.158.56.101/archive/msor/headocs/34mathematica5.pdf |archive-date=2013-10-29 }}</ref> [[मतलब]],<ref>{{cite web |author=Cleve Moler |date=2000 |title=मैटलैब में लैपैक शामिल है|publisher=[[MathWorks]] |url=http://www.mathworks.com/company/newsletters/articles/matlab-incorporates-lapack.html |access-date=26 October 2013}}</ref> [[Numpy]],<ref name="cise">{{cite journal |title=The NumPy array: a structure for efficient numerical computation |author=Stéfan van der Walt |author2=S. Chris Colbert |author3=Gaël Varoquaux |name-list-style=amp |date=2011 |journal=Computing in Science and Engineering |volume=13 |issue=2 |pages=22–30 |arxiv=1102.1523|bibcode=2011CSE....13b..22V |doi=10.1109/MCSE.2011.37|s2cid=16907816 }}</ref> [[आर (प्रोग्रामिंग भाषा)]], [[जूलिया (प्रोग्रामिंग भाषा)]] और लिस्प-स्टेट। | ||
==पृष्ठभूमि== | ==पृष्ठभूमि== | ||
संख्यात्मक प्रोग्रामिंग के आगमन के साथ, परिष्कृत | संख्यात्मक प्रोग्रामिंग के आगमन के साथ, परिष्कृत सबनित्यक्रम पुस्तकालय उपयोगी हो गईं। इन पुस्तकालयों में सामान्य उच्च-स्तरीय गणितीय संक्रिया जैसे रूट खोज, आव्यूह उलटा और समीकरणों की प्रणाली को हल करने के लिए सबनित्यक्रम सम्मिलित होंगे। पसंद की भाषा [[फोरट्रान]] थी। सबसे प्रमुख संख्यात्मक प्रोग्रामिंग पुस्तकालय [[आईबीएम]] का [[वैज्ञानिक सबरूटीन पैकेज|वैज्ञानिक सबनित्यक्रम पैकेज]] (एसएसपी) थी।<ref>{{Cite journal | last1 = Boisvert | first1 = Ronald F. | year = 2000 | title = Mathematical software: past, present, and future | journal = Mathematics and Computers in Simulation | volume = 54 | issue = 4–5 | pages = 227–241 | doi = 10.1016/S0378-4754(00)00185-3 | arxiv = cs/0004004| bibcode = 2000cs........4004B | s2cid = 15157725 }}</ref> इन सबनित्यक्रम पुस्तकालयज़ ने प्रोग्रामर्स को अपनी विशिष्ट समस्याओं पर ध्यान केंद्रित करने और प्रसिद्ध कलन विधि को फिर से अनुप्रयुक्त करने से बचने की अनुमति दी। पुस्तकालय की दिनचर्या भी औसत कार्यान्वयन से बेहतर होगी; उदाहरण के लिए, आव्यूह कलन विधि, बेहतर संख्यात्मक सटीकता प्राप्त करने के लिए पूर्ण पिवोटिंग का उपयोग कर सकता है। पुस्तकालय की दिनचर्या में भी अधिक कुशल दिनचर्या होगी। उदाहरण के लिए, किसी पुस्तकालय में ऊपरी त्रिकोणीय आव्यूह को हल करने के लिए एक प्रोग्राम सम्मिलित हो सकता है। पुस्तकालयों में कुछ कलन विधि के एकल-सटीक और दोहरे-सटीक संस्करण सम्मिलित होंगे। | ||
प्रारंभ में, इन | प्रारंभ में, इन प्रक्रिया ने अपने निम्न-स्तरीय संक्रिया के लिए हार्ड-कोडेड लूप का उपयोग किया। उदाहरण के लिए, यदि किसी सबनित्यक्रम को आव्यूह गुणन करने की आवश्यकता होती है, तो सबनित्यक्रम में तीन नेस्टेड लूप होंगे। रैखिक बीजगणित कार्यक्रमों में कई सामान्य निम्न-स्तरीय संक्रिया (तथाकथित कर्नेल संक्रिया, [[कर्नेल (ऑपरेटिंग सिस्टम)|कर्नेल (ऑपरेटिंग प्रणाली)]] से संबंधित नहीं) होते हैं।<ref>Even the SSP (which appeared around 1966) had some basic routines such as RADD (add rows), CADD (add columns), SRMA (scale row and add to another row), and RINT (row interchange). These routines apparently were not used as kernel operations to implement other routines such as matrix inversion. See {{Citation |last=IBM |title=System/360 Scientific Subroutine Package, Version III, Programmer's Manual |edition=5th |publisher=International Business Machines |date=1970 |id=GH20-0205-4}}.</ref> 1973 और 1977 के मध्य, इनमें से कई कर्नेल संक्रियाों की पहचान की गई।{{sfn|BLAST Forum|2001|p=1}} ये कर्नेल संक्रिया परिभाषित सबनित्यक्रम बन गए जिन्हें गणित पुस्तकालय कॉल कर सकते थे। हार्ड-कोडेड लूप की तुलना में कर्नेल कॉल के फायदे थे: पुस्तकालय नित्यक्रम अधिक पठनीय होगी, बग की संभावना कम थी, और कर्नेल कार्यान्वयन को गति के लिए अनुकूलित किया जा सकता था। स्केलर (गणित) और सदिश रिक्त स्थान का उपयोग करके इन कर्नेल संक्रिया के लिए एक विनिर्देश, लेवल -1 बेसिक लीनियर बीजगणित प्रक्रिया (बीएलएएस), 1979 में प्रकाशित किया गया था।{{sfn|Lawson|Hanson|Kincaid|Krogh|1979}} बीएलएएस का उपयोग रैखिक बीजगणित सबनित्यक्रम पुस्तकालय LINPACK को अनुप्रयुक्त करने के लिए किया गया था। | ||
बीएलएएस एब्स्ट्रैक्शन उच्च प्रदर्शन के लिए अनुकूलन की अनुमति देता है। उदाहरण के लिए, LINPACK एक सामान्य प्रयोजन पुस्तकालय है जिसका उपयोग बिना किसी संशोधन के कई अलग-अलग | बीएलएएस एब्स्ट्रैक्शन उच्च प्रदर्शन के लिए अनुकूलन की अनुमति देता है। उदाहरण के लिए, LINPACK एक सामान्य प्रयोजन पुस्तकालय है जिसका उपयोग बिना किसी संशोधन के कई अलग-अलग यंत्रों पर किया जा सकता है। लिनपैक बीएलएएस के सामान्य संस्करण का उपयोग कर सकता है। प्रदर्शन हासिल करने के लिए, विभिन्न यंत्रें बीएलएएस के अनुरूप संस्करणों का उपयोग कर सकती हैं। जैसे-जैसे कंप्यूटर वास्तुकला अधिक परिष्कृत होता गया, [[वेक्टर प्रोसेसर|सदिश प्रोसेसर]] सामने आया। एक सदिश यंत्र के लिए बीएलएएस यंत्र के तीव्र सदिश संक्रिया का उपयोग कर सकता है। (हालांकि सदिश प्रोसेसर अंततः पसंद से बाहर हो गए, आधुनिक सीपीयू में सदिश निर्देश बीएलएएस नित्यक्रम में इष्टतम प्रदर्शन के लिए आवश्यक हैं।) | ||
अन्य | अन्य यंत्र सुविधाएँ उपलब्ध हो गईं और उनका उपयोग भी किया जा सकता है। नतीजतन, बीएलएएस को 1984 से 1986 तक लेवल-2 कर्नेल ऑपरेशंस के साथ संवर्धित किया गया था जो कि सदिश-आव्यूह ऑपरेशंस से संबंधित था। स्मृति पदानुक्रम को शोषण करने योग्य चीज़ के रूप में भी मान्यता दी गई थी। कई परिकलकों में [[कैश मैमोरी]] होती है जो मुख्य मेमोरी से बहुत तीव्र होती है; आव्यूह जोड़तोड़ को स्थानीयकृत रखने से कैश के बेहतर उपयोग की अनुमति मिलती है। 1987 और 1988 में, आव्यूह-आव्यूह संक्रिया करने के लिए स्तर 3 बीएलएएस की पहचान की गई थी। स्तर 3 बीएलएएस ने खंड-विभाजित कलन विधि को प्रोत्साहित किया। एलएपीएसीके पुस्तकालय लेवल 3 बीएलएएस का उपयोग करती है।{{sfn|BLAST Forum|2001|pp=1–2}} | ||
मूल बीएलएएस केवल सघन रूप से संग्रहीत | मूल बीएलएएस केवल सघन रूप से संग्रहीत सदिश और आव्यूह से संबंधित है। बीएलएएस के आगे के विस्तार, जैसे विरल आव्यूह के लिए, पर ध्यान दिया गया है।{{sfn|BLAST Forum|2001|p=2}} | ||
==कार्यक्षमता== | ==कार्यक्षमता== | ||
बीएलएएस कार्यक्षमता को | बीएलएएस कार्यक्षमता को नित्यक्रम के तीन समूहों में वर्गीकृत किया गया है जिन्हें स्तर कहा जाता है, जो परिभाषा और प्रकाशन के कालानुक्रमिक क्रम के साथ-साथ कलन विधि की जटिलताओं में बहुपद की डिग्री दोनों के अनुरूप है; स्तर 1 बीएलएएस संक्रिया में सामान्यतः [[रैखिक समय]] लगता है, {{math|''O''(''n'')}}, स्तर 2 संक्रिया द्विघात समय और स्तर 3 संक्रिया घन समय।{{r|level3}} आधुनिक बीएलएएस कार्यान्वयन सामान्यतः सभी तीन स्तर प्रदान करते हैं। | ||
===स्तर 1=== | ===स्तर 1=== | ||
इस स्तर में बीएलएएस (1979) की मूल प्रस्तुति में वर्णित सभी दिनचर्या | इस स्तर में बीएलएएस (1979) की मूल प्रस्तुति में वर्णित सभी दिनचर्या सम्मिलित हैं।<ref name="lawson79"/>जो किसी सरणी के स्ट्राइड पर केवल सदिश संक्रिया को परिभाषित करता है: डॉट उत्पाद, मानक (गणित), फॉर्म का एक सामान्यीकृत सदिश जोड़ | ||
:<math>\boldsymbol{y} \leftarrow \alpha \boldsymbol{x} + \boldsymbol{y}</math> | :<math>\boldsymbol{y} \leftarrow \alpha \boldsymbol{x} + \boldsymbol{y}</math> | ||
(बुलाया<code>axpy</code>, ए एक्स प्लस वाई ) और कई अन्य | (बुलाया<code>axpy</code>, ए एक्स प्लस वाई ) और कई अन्य संक्रिया। | ||
===स्तर 2=== | ===स्तर 2=== | ||
इस स्तर में | इस स्तर में आव्यूह-सदिश संक्रिया सम्मिलित हैं, जिसमें अन्य चीजों के अतिरिक्त, एक सामान्यीकृत आव्यूह-सदिश गुणन सम्मिलित है (<code>gemv</code>): | ||
:<math>\boldsymbol{y} \leftarrow \alpha \boldsymbol{A} \boldsymbol{x} + \beta \boldsymbol{y}</math> | :<math>\boldsymbol{y} \leftarrow \alpha \boldsymbol{A} \boldsymbol{x} + \beta \boldsymbol{y}</math> | ||
Line 67: | Line 67: | ||
:<math>\boldsymbol{T} \boldsymbol{x} = \boldsymbol{y}</math> | :<math>\boldsymbol{T} \boldsymbol{x} = \boldsymbol{y}</math> | ||
साथ {{math|'''''T'''''}}त्रिकोणीय होना. लेवल 2 बीएलएएस का डिज़ाइन 1984 में शुरू हुआ, जिसके परिणाम 1988 में प्रकाशित हुए।<ref name="dongarra88"/>लेवल 2 | साथ {{math|'''''T'''''}}त्रिकोणीय होना. लेवल 2 बीएलएएस का डिज़ाइन 1984 में शुरू हुआ, जिसके परिणाम 1988 में प्रकाशित हुए।<ref name="dongarra88"/>लेवल 2 प्रक्रिया का उद्देश्य विशेष रूप से सदिश प्रोसेसर पर बीएलएएस का उपयोग करके कार्यक्रमों के प्रदर्शन में सुधार करना है, जहां लेवल 1 बीएलएएस उप-इष्टतम हैं क्योंकि वे कंपाइलर से संक्रिया की आव्यूह-सदिश प्रकृति को छिपाते हैं।<ref name="dongarra88">{{cite journal |first1=Jack J. |last1=Dongarra |first2=Jeremy |last2=Du Croz |first3=Sven |last3=Hammarling |first4=Richard J. |last4=Hanson |title=फोरट्रान बेसिक लीनियर अलजेब्रा सबप्रोग्राम्स का एक विस्तारित सेट|journal=ACM Trans. Math. Softw. |volume=14 |date=1988 |pages=1–17 |doi=10.1145/42288.42291 |citeseerx=10.1.1.17.5421 |s2cid=3579623 }}</ref> | ||
===स्तर 3=== | ===स्तर 3=== | ||
यह स्तर, औपचारिक रूप से 1990 में प्रकाशित हुआ,<ref name="level3">{{Cite journal |last1=Dongarra |first1=Jack J. |last2=Du Croz |first2=Jeremy |last3=Hammarling |first3=Sven |last4=Duff |first4=Iain S. |title=A set of level 3 basic linear algebra subprograms |doi=10.1145/77626.79170 |date=1990 |journal=[[ACM Transactions on Mathematical Software]] |issn=0098-3500 |volume=16 |issue=1 |pages=1–17|s2cid=52873593 }}</ref> इसमें | यह स्तर, औपचारिक रूप से 1990 में प्रकाशित हुआ,<ref name="level3">{{Cite journal |last1=Dongarra |first1=Jack J. |last2=Du Croz |first2=Jeremy |last3=Hammarling |first3=Sven |last4=Duff |first4=Iain S. |title=A set of level 3 basic linear algebra subprograms |doi=10.1145/77626.79170 |date=1990 |journal=[[ACM Transactions on Mathematical Software]] |issn=0098-3500 |volume=16 |issue=1 |pages=1–17|s2cid=52873593 }}</ref> इसमें आव्यूह-आव्यूह संक्रिया सम्मिलित हैं, जिसमें सामान्य आव्यूह गुणन सम्मिलित है (<code>जीईएमएम</code>), फॉर्म का | ||
:<math>\boldsymbol{C} \leftarrow \alpha \boldsymbol{A} \boldsymbol{B} + \beta \boldsymbol{C},</math> | :<math>\boldsymbol{C} \leftarrow \alpha \boldsymbol{A} \boldsymbol{B} + \beta \boldsymbol{C},</math> | ||
जहाँ {{math|'''''A'''''}} और {{math|'''''B'''''}} को वैकल्पिक रूप से [[ खिसकाना ]] किया जा सकता है या [[हर्मिटियन संयुग्म]]ित किया जा सकता है|नित्यक्रम के अंदर हर्मिटियन-संयुग्मित किया जा सकता है, और तीनों आव्यूह को स्ट्राइड किया जा सकता है। साधारण आव्यूह गुणन {{math|'''''A B'''''}}समूहिंग द्वारा किया जा सकता है {{math|''α''}} एक को और {{math|'''''C'''''}} उचित आकार के एक पूर्ण-शून्य आव्यूह के लिए। | |||
लेवल 3 में | लेवल 3 में अभिकलन के लिए नित्यक्रम भी सम्मिलित हैं | ||
:<math>\boldsymbol{B} \leftarrow \alpha \boldsymbol{T}^{-1} \boldsymbol{B},</math> | :<math>\boldsymbol{B} \leftarrow \alpha \boldsymbol{T}^{-1} \boldsymbol{B},</math> | ||
<nowiki>जहाँ {{math|</nowiki>'''''T'''''}अन्य कार्यक्षमताओं के साथ-साथ } एक [[त्रिकोणीय मैट्रिक्स|त्रिकोणीय आव्यूह]] है। | |||
कई वैज्ञानिक अनुप्रयोगों में | कई वैज्ञानिक अनुप्रयोगों में आव्यूह गुणन की सर्वव्यापकता के कारण, जिसमें शेष स्तर 3 बीएलएएस का कार्यान्वयन भी सम्मिलित है,<ref name="Geijn_2008"/>और क्योंकि आव्यूह-सदिश गुणन की स्पष्ट पुनरावृत्ति से परे तीव्र कलन विधि उपस्थित हैं, <code>जीईएमएम</code> बीएलएएस कार्यान्वयनकर्ताओं के लिए अनुकूलन का एक प्रमुख लक्ष्य है। उदाहरण के लिए, एक या दोनों को विघटित करके {{math|'''''A'''''}}, {{math|'''''B'''''}} [[ब्लॉक मैट्रिक्स|खंड आव्यूह]] में, <code>जीईएमएम</code> आव्यूह गुणन एल्गोरिथम#फूट डालो और जीतो एल्गोरिथम हो सकता है। यह सम्मिलित करने के लिए प्रेरणाओं में से एक है {{math|''β''}} मापदण्ड,{{dubious|Reason for beta parameter|date=January 2015}} ताकि पिछले खंडों के परिणाम जमा किये जा सकें। ध्यान दें कि इस अपघटन के लिए विशेष मामले की आवश्यकता होती है {{math|''β'' {{=}} 1}} जिसके लिए कई कार्यान्वयन अनुकूलित होते हैं, जिससे प्रत्येक मान के लिए एक गुणन समाप्त हो जाता है {{math|'''''C'''''}}. यह अपघटन उत्पाद में उपयोग किए गए डेटा के स्थान और समय दोनों में संदर्भ के बेहतर स्थानीयकरण की अनुमति देता है। यह, बदले में, प्रणाली पर [[सीपीयू कैश]] का लाभ उठाता है।<ref>{{Citation | last1=Golub | first1=Gene H. | author1-link=Gene H. Golub | last2=Van Loan | first2=Charles F. | author2-link=Charles F. Van Loan | title=Matrix Computations | publisher=Johns Hopkins | edition=3rd | isbn=978-0-8018-5414-9 |date=1996}}</ref> एक से अधिक स्तर के कैश वाले प्रणाली के लिए, खंडिंग को उस क्रम में दूसरी बार अनुप्रयुक्त किया जा सकता है जिसमें गणना में खंड का उपयोग किया जाता है। अनुकूलन के इन दोनों स्तरों का उपयोग स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ़्टवेयर जैसे कार्यान्वयन में किया जाता है। अभी हाल ही में, [[हर एक परत]] के कार्यान्वयन से पता चला है कि केवल [[एल2 कैश]] के लिए खंड करना, अनुवाद लुकसाइड बफर मिस को कम करने के लिए सन्निहित मेमोरी में कॉपी करने के सावधानीपूर्वक परिशोधित विश्लेषण के साथ, स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर से बेहतर है।<ref name="Kazushige_2008"/>इन विचारों पर आधारित एक उच्च सुव्यवस्थित कार्यान्वयन [[गोटोब्लास]], ओपनब्लास और बीएलआईएस (सॉफ्टवेयर) का हिस्सा है। | ||
का एक सामान्य रूपांतर {{code|gemm}} है {{code|gemm3m}}, जो पारंपरिक चार वास्तविक | का एक सामान्य रूपांतर {{code|gemm}} है {{code|gemm3m}}, जो पारंपरिक चार वास्तविक आव्यूह गुणन और दो वास्तविक आव्यूह जोड़ के बजाय तीन वास्तविक आव्यूह गुणन और पांच वास्तविक आव्यूह जोड़ का उपयोग करके एक जटिल उत्पाद की गणना करता है, यह [[सड़क एल्गोरिदम|सड़क कलन विधि]] के समान एक कलन विधि है जिसे पहले पीटर अनगर द्वारा वर्णित किया गया था।<ref>{{cite journal |last1=Van Zee |first1=Field G. |last2=Smith |first2=Tyler M. |title=Implementing High-performance Complex Matrix Multiplication via the 3m and 4m Methods |journal=ACM Transactions on Mathematical Software |date=24 July 2017 |volume=44 |issue=1 |pages=1–36 |doi=10.1145/3086466|s2cid=25580883 }}</ref> | ||
==कार्यान्वयन== | ==कार्यान्वयन== | ||
; गति बढ़ाएं: [[macOS]] और [[IOS (Apple)]] के लिए Apple Inc. का ढांचा, जिसमें [[BLAS]] और | ; गति बढ़ाएं: [[macOS]] और [[IOS (Apple)]] के लिए Apple Inc. का ढांचा, जिसमें [[BLAS|बीएलएएस]] और एलएपीएसीके के ट्यून किए गए संस्करण सम्मिलित हैं।<ref>{{Cite web|url=https://developer.apple.com/library/mac/#releasenotes/Performance/RN-vecLib/|title=मार्गदर्शिकाएँ और नमूना कोड|website=developer.apple.com|access-date=2017-07-07}}</ref><ref>{{Cite web|url=https://developer.apple.com/library/ios/#documentation/Accelerate/Reference/AccelerateFWRef/|title=मार्गदर्शिकाएँ और नमूना कोड|website=developer.apple.com|access-date=2017-07-07}}</ref> | ||
; [[ शाखा प्रदर्शन पुस्तकालय ]]़: आर्म परफॉर्मेंस | ; [[ शाखा प्रदर्शन पुस्तकालय ]]़: आर्म परफॉर्मेंस पुस्तकालयज़, आर्म 64-बिट [[AArch64]]-आधारित प्रोसेसर का समर्थन करती है, जो आर्म लिमिटेड से उपलब्ध है।<ref name="Arm Performance Libraries"/>; एटलस: स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर, सी (प्रोग्रामिंग भाषा) और फोरट्रान के लिए बीएलएएस [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] का एक [[ खुला स्रोत सॉफ्टवेयर ]] कार्यान्वयन।<ref>{{Cite web|url=http://math-atlas.sourceforge.net/|title=स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर (एटीएलएएस)|website=math-atlas.sourceforge.net|access-date=2017-07-07}}</ref> | ||
; बीएलआईएस (सॉफ्टवेयर): तीव्र इंस्टेंटिएशन के लिए बीएलएएस जैसा | ; बीएलआईएस (सॉफ्टवेयर): तीव्र इंस्टेंटिएशन के लिए बीएलएएस जैसा पुस्तकालय इंस्टेंटिएशन सॉफ्टवेयर ढांचा। अधिकांश आधुनिक सीपीयू के लिए अनुकूलित। BLIS, Gotoबीएलएएस का पूर्ण रीफैक्टरिंग है जो किसी दिए गए प्लेटफ़ॉर्म के लिए लिखे जाने वाले कोड की मात्रा को कम करता है।<ref>{{Citation|title=blis: BLAS-like Library Instantiation Software Framework|date=2017-06-30|url=https://github.com/flame/blis|publisher=flame|access-date=2017-07-07}}</ref><ref>{{Citation|title=BLIS GitHub Repository|date=15 October 2021|url=https://github.com/flame/blis}}</ref> | ||
; [[C++ AMP]] | ; [[C++ AMP|C++एएमपी]] बीएलएएस: C++एएमपी बीएलएएस पुस्तकालय विज़ुअल C++ के लिए Microsoft केएएमपी भाषा एक्सटेंशन के लिए बीएलएएस का एक मुक्त स्रोत सॉफ़्टवेयर कार्यान्वयन है।<ref>{{Cite web|url=http://ampblas.codeplex.com/|title=सी++ एएमपी ब्लास लाइब्रेरी|website=CodePlex|language=en|access-date=2017-07-07}}</ref> | ||
; | ; cuबीएलएएस: NVIDIA आधारित GPU कार्ड के लिए अनुकूलित बीएलएएस, कुछ अतिरिक्त पुस्तकालय कॉल की आवश्यकता होती है।<ref>{{Cite news|url=http://developer.nvidia.com/cublas|title=क्यूब्लास|date=2013-07-29|work=NVIDIA Developer|access-date=2017-07-07|language=en}}</ref> | ||
; एनवीबीएलएएस: एनवीडिया आधारित जीपीयू कार्ड के लिए अनुकूलित बीएलएएस, केवल लेवल 3 | ; एनवीबीएलएएस: एनवीडिया आधारित जीपीयू कार्ड के लिए अनुकूलित बीएलएएस, केवल लेवल 3 फलन प्रदान करता है, परन्तु अन्य बीएलएएस पुस्तकालयों के लिए सीधे ड्रॉप-इन प्रतिस्थापन के रूप में।<ref>{{Cite news|url=https://docs.nvidia.com/cuda/nvblas/index.htmls|title=एनवीबीएलएएस|date=2018-05-15|work=NVIDIA Developer|access-date=2018-05-15|language=en}}</ref> | ||
; सीएलबीएलएएस: एएमडी द्वारा बीएलएएस का एक [[ओपनसीएल]] कार्यान्वयन। एएमडी कंप्यूट | ; सीएलबीएलएएस: एएमडी द्वारा बीएलएएस का एक [[ओपनसीएल]] कार्यान्वयन। एएमडी कंप्यूट पुस्तकालयज़ का हिस्सा।<ref name="github.com">{{Citation|title=clBLAS: a software library containing BLAS functions written in OpenCL|date=2017-07-03|url=https://github.com/clMathLibraries/clBLAS|publisher=clMathLibraries|access-date=2017-07-07}}</ref> | ||
; | ; clबीएलएएसT: अधिकांश बीएलएएस एपीआई का एक ट्यून किया गया OpenCL कार्यान्वयन।<ref name= https://github.com/CNugteren/CLBlast >{{Citation|last=Nugteren|first=Cedric|title=CLBlast: Tuned OpenCL BLAS|date=2017-07-05|url=https://github.com/CNugteren/CLBlast|access-date=2017-07-07}}</ref> | ||
; Eigen | ; Eigen बीएलएएस: एक फोरट्रान और C (प्रोग्रामिंग भाषा) बीएलएएस पुस्तकालय, [[मोज़िला लाइसेंस]]-लाइसेंस प्राप्त Eigen (C++ पुस्तकालय) के शीर्ष पर कार्यान्वित की गई है, जो x[[86]], [[x86-64]], ARM [[एआरएम वास्तुकला]]|ARM (NEON), और PowerPC वास्तुकला का समर्थन करती है। | ||
; ईएसएसएल: आईबीएम की इंजीनियरिंग और वैज्ञानिक | ; ईएसएसएल: आईबीएम की इंजीनियरिंग और वैज्ञानिक सबनित्यक्रम पुस्तकालय, [[AIX ऑपरेटिंग सिस्टम|AIX ऑपरेटिंग प्रणाली]] और [[लिनक्स]] के अंतर्गत [[पावरपीसी]] वास्तुकला का समर्थन करती है। <ref name= https://www.ibm.com/support/knowledgecenter/en/SSFHY8/essl_welcome.html >{{Citation|title=IBM Knowledge Centre: Engineering and Scientific Subroutine Library|url=https://www.ibm.com/support/knowledgecenter/en/SSFHY8/essl_welcome.html}}</ref> | ||
; गोटोब्लास: काज़ुशिगे गोटो का बीएलएएस का बीएसडी-लाइसेंस प्राप्त कार्यान्वयन, विशेष रूप से इंटेल नेहलेम ( | ; गोटोब्लास: काज़ुशिगे गोटो का बीएलएएस का बीएसडी-लाइसेंस प्राप्त कार्यान्वयन, विशेष रूप से इंटेल नेहलेम (माइक्रोवास्तुकला)/[[इंटेल एटम]], [[वीआईए टेक्नोलॉजीज]] वीआईए नैनो, [[एएमडी]] [[ओपर्टन]] के लिए ट्यून किया गया है।<ref name="GotoBLAS2"/>;[[जीएनयू वैज्ञानिक पुस्तकालय]]: कई संख्यात्मक दिनचर्या का बहु-मंच कार्यान्वयन। इसमें Cबीएलएएस अंतरापृष्ठ सम्मिलित है। | ||
; एचपी एमएलआईबी: [[ हेवलेट पैकर्ड ]] की गणित | ; एचपी एमएलआईबी: [[ हेवलेट पैकर्ड ]] की गणित पुस्तकालय [[एचपी-यूएक्स]] और लिनक्स के अंतर्गत [[आईए-64]], [[पीए-जोखिम]], एक्स86 और ओपर्टन वास्तुकला का समर्थन करती है। | ||
; इंटेल एमकेएल: इंटेल [[गणित कर्नेल लाइब्रेरी]], x86 32-बिट्स और 64-बिट्स का समर्थन करती है, जो इंटेल से निःशुल्क उपलब्ध है।<ref name="MKLfree" />इंटेल [[पेंटियम (ब्रांड)]], [[ इण्टेल कोर ]] और इंटेल ज़ीऑन सीपीयू और इंटेल ज़ीऑन फाई के लिए अनुकूलन | ; इंटेल एमकेएल: इंटेल [[गणित कर्नेल लाइब्रेरी|गणित कर्नेल पुस्तकालय]], x86 32-बिट्स और 64-बिट्स का समर्थन करती है, जो इंटेल से निःशुल्क उपलब्ध है।<ref name="MKLfree" />इंटेल [[पेंटियम (ब्रांड)]], [[ इण्टेल कोर ]] और इंटेल ज़ीऑन सीपीयू और इंटेल ज़ीऑन फाई के लिए अनुकूलन सम्मिलित हैं; Linux, [[Microsoft Windows]] और macOS के लिए समर्थन।<ref>{{Cite web|url=http://software.intel.com/en-us/intel-mkl/|title=Intel Math Kernel Library (Intel MKL) {{!}} Intel Software|website=software.intel.com|language=en|access-date=2017-07-07}}</ref> | ||
; MathKeisan: [[NEC Corporation]] की गणित | ; MathKeisan: [[NEC Corporation]] की गणित पुस्तकालय, [[SUPER-UX]] के अंतर्गत NEC SX वास्तुकला और Linux के अंतर्गत [[इटेनियम]] का समर्थन करती है<ref>{{Cite web|url=http://www.mathkeisan.com/|title=उन्होंने सीखा|last=Mathkeisan|first=NEC|website=www.mathkeisan.com|language=en|access-date=2017-07-07}}</ref> | ||
; नेटलिब बीएलएएस: फोरट्रान में लिखा गया नेटलिब पर आधिकारिक संदर्भ कार्यान्वयन।<ref>{{Cite web|url=http://www.netlib.org/blas/|title=बीएलएएस (बुनियादी रैखिक बीजगणित उपप्रोग्राम)|website=www.netlib.org|access-date=2017-07-07}}</ref> | ; नेटलिब बीएलएएस: फोरट्रान में लिखा गया नेटलिब पर आधिकारिक संदर्भ कार्यान्वयन।<ref>{{Cite web|url=http://www.netlib.org/blas/|title=बीएलएएस (बुनियादी रैखिक बीजगणित उपप्रोग्राम)|website=www.netlib.org|access-date=2017-07-07}}</ref> | ||
; नेटलिब सीबीएलएएस: बीएलएएस के लिए संदर्भ सी (प्रोग्रामिंग भाषा) | ; नेटलिब सीबीएलएएस: बीएलएएस के लिए संदर्भ सी (प्रोग्रामिंग भाषा) अंतरापृष्ठ। सी से फोरट्रान बीएलएएस को कॉल करना भी संभव (और लोकप्रिय) है।<ref>{{Cite web|url=http://www.netlib.org/blas|title=बीएलएएस (बुनियादी रैखिक बीजगणित उपप्रोग्राम)|website=www.netlib.org|access-date=2017-07-07}}</ref> | ||
; | ; Openबीएलएएस: Gotoबीएलएएस पर आधारित अनुकूलित बीएलएएस, x86, x86-64, MIPS वास्तुकला और ARM वास्तुकला प्रोसेसर का समर्थन करता है।<ref>{{Cite web|url=http://www.openblas.net/|title=OpenBLAS : An optimized BLAS library|website=www.openblas.net|access-date=2017-07-07}}</ref> | ||
; पीडीएलआईबी/एसएक्स: एनईसी एनईसी एसएक्स | ; पीडीएलआईबी/एसएक्स: एनईसी एनईसी एसएक्स वास्तुकला|एसएक्स-4 प्रणाली के लिए एनईसी कॉर्पोरेशन की सार्वजनिक कार्यक्षेत्र गणितीय पुस्तकालय।<ref name=":0">{{cite web |url=http://www.nec.co.jp/hpc/mediator/sxm_e/software/61.html |title=PDLIB/SX: Business Solution | NEC |access-date=2007-05-20 |url-status=dead |archive-url=https://web.archive.org/web/20070222154031/http://www.nec.co.jp/hpc/mediator/sxm_e/software/61.html |archive-date=2007-02-22 }}</ref> | ||
; | ; rocबीएलएएस: कार्यान्वयन जो [[ROCm]] के माध्यम से AMD GPU पर चलता है।<ref>{{Cite web|url=https://rocmdocs.amd.com/en/latest/ROCm_Tools/rocblas.html|title=रॉकब्लास|website=rocmdocs.amd.com|access-date=2021-05-21}}</ref> | ||
;एससीएसएल | ;एससीएसएल | ||
: [[ सिलिकॉन ग्राफ़िक्स ]] की वैज्ञानिक | : [[ सिलिकॉन ग्राफ़िक्स ]] की वैज्ञानिक अभिकलन सॉफ्टवेयर पुस्तकालय में एसजीआई के इरिक्स वर्कस्टेशन के लिए बीएलएएस और लैपैक कार्यान्वयन सम्मिलित हैं।<ref>{{cite web |url=http://www.sgi.com/products/software/scsl.html |title=SGI - SCSL Scientific Library: Home Page |access-date=2007-05-20 |url-status=dead |archive-url=https://web.archive.org/web/20070513173030/http://www.sgi.com/products/software/scsl.html |archive-date=2007-05-13 }}</ref> | ||
; सन परफॉर्मेंस | ; सन परफॉर्मेंस पुस्तकालय: सोलारिस 8, 9 और 10 के साथ-साथ लिनक्स के अंतर्गत [[SPARC]], इंटेल कोर और [[AMD64]] वास्तुकला के लिए अनुकूलित बीएलएएस और एलएपीएसीके।<ref>{{Cite web|url=http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html|title=ओरेकल डेवलपर स्टूडियो|website=www.oracle.com|access-date=2017-07-07}}</ref> | ||
; यूबीएलएएस: एक सामान्य [[सी++]] टेम्पलेट क्लास | ; यूबीएलएएस: एक सामान्य [[सी++]] टेम्पलेट क्लास पुस्तकालय जो बीएलएएस कार्यक्षमता प्रदान करती है। [[ लाइब्रेरी को बूस्ट करें | पुस्तकालय को बूस्ट करें]] का हिस्सा. यह एक एकीकृत नोटेशन में कई हार्डवेयर-त्वरित पुस्तकालयों को बाइंडिंग प्रदान करता है। इसके अतिरिक्त, uबीएलएएस उन्नत C++ सुविधाओं का उपयोग करके कलन विधि की शुद्धता पर ध्यान केंद्रित करता है।<ref>{{Cite web|url=http://www.boost.org/doc/libs/1_60_0/libs/numeric/ublas/doc/index.html|title=Boost Basic Linear Algebra - 1.60.0|website=www.boost.org|access-date=2017-07-07}}</ref> | ||
=== बीएलएएस का उपयोग करने वाली | === बीएलएएस का उपयोग करने वाली पुस्तकालय === | ||
; आर्माडिलो: आर्माडिलो (सी++ | ; आर्माडिलो: आर्माडिलो (सी++ पुस्तकालय) एक सी++ रैखिक बीजगणित पुस्तकालय है जिसका लक्ष्य गति और उपयोग में आसानी के मध्य एक अच्छा संतुलन बनाना है। यह टेम्प्लेट कक्षाओं को नियोजित करता है, और इसमें बीएलएएस/ATLAS और एलएपीएसीके के लिए वैकल्पिक लिंक हैं। यह [[NICTA]] (ऑस्ट्रेलिया में) द्वारा प्रायोजित है और इसे निःशुल्क लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।<ref>{{Cite web|url=http://arma.sourceforge.net/|title=Armadillo: C++ linear algebra library|website=arma.sourceforge.net|access-date=2017-07-07}}</ref> | ||
; | ; एलएपीएसीके: एलएपीएसीके बीएलएएस पर निर्मित एक उच्च स्तरीय रैखिक बीजगणित पुस्तकालय है। बीएलएएस की तरह, एक संदर्भ कार्यान्वयन उपस्थित है, परन्तु लिबफ्लेम और एमकेएल जैसे कई विकल्प उपस्थित हैं। | ||
; मीर: [[डी (प्रोग्रामिंग भाषा)]] में लिखित विज्ञान और | ; मीर: [[डी (प्रोग्रामिंग भाषा)]] में लिखित विज्ञान और यंत्र सीखने के लिए एक [[एलएलवीएम]]-त्वरित सामान्य संख्यात्मक पुस्तकालय। यह सामान्य रैखिक बीजगणित उपप्रोग्राम (GLAS) प्रदान करता है। इसे Cबीएलएएस कार्यान्वयन पर बनाया जा सकता है।<ref>{{Cite web|url=https://github.com/libmir|title= डेलांग न्यूमेरिकल और सिस्टम लाइब्रेरीज़|website= [[GitHub]]}}</ref> | ||
==समान पुस्तकालय (बीएलएएस के साथ संगत नहीं)== | ==समान पुस्तकालय (बीएलएएस के साथ संगत नहीं)== | ||
{{see also| | {{see also|एलएपीएसीके#Similar projects}} | ||
; एलिमेंटल: एलिमेंटल वितरित मेमोरी | वितरित-मेमोरी सघन और विरल-प्रत्यक्ष रैखिक बीजगणित और अनुकूलन के लिए एक खुला स्रोत सॉफ्टवेयर है।<ref>{{Cite web|url=http://libelemental.org/|title=Elemental: distributed-memory dense and sparse-direct linear algebra and optimization — Elemental|website=libelemental.org|access-date=2017-07-07}}</ref> | ; एलिमेंटल: एलिमेंटल वितरित मेमोरी | वितरित-मेमोरी सघन और विरल-प्रत्यक्ष रैखिक बीजगणित और अनुकूलन के लिए एक खुला स्रोत सॉफ्टवेयर है।<ref>{{Cite web|url=http://libelemental.org/|title=Elemental: distributed-memory dense and sparse-direct linear algebra and optimization — Elemental|website=libelemental.org|access-date=2017-07-07}}</ref> | ||
; | ; एचएएसईएम: एक C++ टेम्प्लेट पुस्तकालय है, जो रैखिक समीकरणों को हल करने और eigenvalues की गणना करने में सक्षम है। इसे बीएसडी लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।<ref>{{Cite web|url=http://sourceforge.net/projects/hasem/|title=बेसम|website=SourceForge|date=17 August 2015 |language=en|access-date=2017-07-07}}</ref> | ||
; लामा: त्वरित गणित अनुप्रयोगों के लिए | ; लामा: त्वरित गणित अनुप्रयोगों के लिए पुस्तकालय (त्वरित गणित अनुप्रयोगों के लिए पुस्तकालय) वितरित मेमोरी प्रणाली पर विभिन्न प्रकार के हार्डवेयर (जैसे सीयूडीए या ओपनसीएल के माध्यम से [[जीपीयू]]) को लक्षित करने वाले संख्यात्मक सॉल्वर लिखने के लिए एक सी ++ टेम्पलेट पुस्तकालय है, जो प्रोग्राम से हार्डवेयर विशिष्ट प्रोग्रामिंग को छिपाती है। डेवलपर | ||
; एमटीएल4: [[मैट्रिक्स टेम्पलेट लाइब्रेरी]] संस्करण 4 एक सामान्य सी++ टेम्प्लेट | ; एमटीएल4: [[मैट्रिक्स टेम्पलेट लाइब्रेरी|आव्यूह टेम्पलेट पुस्तकालय]] संस्करण 4 एक सामान्य सी++ टेम्प्लेट पुस्तकालय है जो विरल और सघन बीएलएएस कार्यक्षमता प्रदान करती है। MTL4 [[ सामान्य प्रोग्रामिंग ]] की बदौलत एक सहज अंतरापृष्ठ (MATLAB के समान) और व्यापक प्रयोज्यता स्थापित करता है। | ||
==विरल | ==विरल बीएलएएस== | ||
पुस्तकालय के इतिहास के दौरान स्पार्स आव्यूह को संभालने के लिए बीएलएएस के कई एक्सटेंशन सुझाए गए हैं; [[विरल मैट्रिक्स|विरल आव्यूह]] कर्नेल नित्यक्रम का एक छोटा समूह अंततः 2002 में मानकीकृत किया गया था।<ref>{{cite journal |first1=Iain S. |last1=Duff |first2=Michael A. |last2=Heroux |first3=Roldan |last3=Pozo |title=An Overview of the Sparse Basic Linear Algebra Subprograms: The New Standard from the BLAS Technical Forum |journal= ACM Transactions on Mathematical Software|year=2002 |volume=28 |issue=2 |pages=239–267 |doi=10.1145/567806.567810|s2cid=9411006 }}</ref> | |||
== | ==प्रचयित बीएलएएस== | ||
पारंपरिक बीएलएएस | पारंपरिक बीएलएएस फलन को ऐसे वास्तुकला में भी पोर्ट किया गया है जो [[जीपीयू]] जैसे बड़ी मात्रा में समानता का समर्थन करते हैं। यहां, पारंपरिक बीएलएएस फलन बड़े आव्यूह के लिए सामान्यतः अच्छा प्रदर्शन प्रदान करते हैं। हालाँकि, जब जीईएमएम नित्यक्रम का उपयोग करके कई छोटे आव्यूह के आव्यूह उत्पादों की गणना की जाती है, तो वे वास्तुकला महत्वपूर्ण प्रदर्शन हानि दर्शाते हैं। इस समस्या के समाधान के लिए, 2017 में बीएलएएस फलन का एक प्रचयित संस्करण निर्दिष्ट किया गया है।<ref name="dongarra17">{{cite journal |last1=Dongarra |first1=Jack |last2=Hammarling |first2=Sven |last3=Higham |first3=Nicholas J. |last4=Relton |first4=Samuel D. |last5=Valero-Lara |first5=Pedro |last6=Zounon |first6=Mawussi |title=आधुनिक उच्च-प्रदर्शन कंप्यूटिंग सिस्टम पर बैचेड बीएलएएस का डिजाइन और प्रदर्शन|journal=Procedia Computer Science |volume=108 |pages=495–504 |date=2017 |doi=10.1016/j.procs.2017.05.138|doi-access=free }}</ref> | ||
एक उदाहरण के रूप में ऊपर से | |||
एक उदाहरण के रूप में, ऊपर से जीईएमएम नित्यक्रम लेते हुए, प्रचयित संस्करण कई आव्यूहों के लिए एक साथ निम्नलिखित गणना करता है: | |||
<math>\boldsymbol{C}[k] \leftarrow \alpha \boldsymbol{A}[k] \boldsymbol{B}[k] + \beta \boldsymbol{C}[k] \quad \forall k </math> | <math>\boldsymbol{C}[k] \leftarrow \alpha \boldsymbol{A}[k] \boldsymbol{B}[k] + \beta \boldsymbol{C}[k] \quad \forall k </math> | ||
अनुक्रमणिका वर्गाकार कोष्ठकों में <math>k</math> इंगित करता है कि <math>k</math> एक स्तंभ में प्रायः संक्रिया सभी आव्यूहों के लिए किया गया है, यह संक्रिया एक प्रगति प्रचयित मेमोरी अभिन्यास के लिए कार्यान्वित किया जाता है जहां सभी आव्यूह सरणी <math>A</math>, <math>B</math> और <math>C</math> में संयोजित होते हैं। | |||
प्रचयित बीएलएएस फलन एक बहुमुखी उपकरण हो सकते हैं और उदाहरण के लिए अनुमति दे सकते हैं। [[ घातीय इंटीग्रेटर्स | घातीय समाकलक]] और [[मैग्नस इंटीग्रेटर्स|मैग्नस समाकलक]] का तेजी से कार्यान्वयन जो कई समय चरणों के साथ लंबी एकीकरण अवधि को संभालते हैं।<ref name="herb21">{{cite journal |last1=Herb |first1=Konstantin |last2=Welter |first2=Pol |title=बैचेड बीएलएएस (बेसिक लीनियर अलजेब्रा सबप्रोग्राम्स) रूटीन का उपयोग करके समानांतर समय एकीकरण|journal=Computer Physics Communications |volume=270 |pages=108181 |date=2022 |doi=10.1016/j.cpc.2021.108181 |arxiv=2108.07126|s2cid=237091802 }}</ref> यहां, [[मैट्रिक्स घातांक|आव्यूह घातांक]], एकीकरण का कम्प्यूटेशनल रूप से महंगा हिस्सा, बैचेड बीएलएएस फलन का उपयोग करके सभी समय-चरणों के लिए समानांतर में कार्यान्वित किया जा सकता है। | |||
==यह भी देखें== | ==यह भी देखें== | ||
* [[संख्यात्मक पुस्तकालयों की सूची]] | * [[संख्यात्मक पुस्तकालयों की सूची]] | ||
* गणित कर्नेल | * गणित कर्नेल पुस्तकालय, इंटेल वास्तुकला के लिए अनुकूलित गणित पुस्तकालय; इसमें बीएलएएस, एलएपीएसीके सम्मिलित हैं। | ||
* [[संख्यात्मक रैखिक बीजगणित]], समस्या का प्रकार जिसे | * [[संख्यात्मक रैखिक बीजगणित]], समस्या का प्रकार जिसे बीएलएएस हल करता है। | ||
==संदर्भ== | ==संदर्भ== | ||
Line 159: | Line 161: | ||
* 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, 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. | * 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 | ; 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 ( | * 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. | * 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. | ||
==बाहरी संबंध== | ==बाहरी संबंध== | ||
* [http://www.netlib.org/blas/ | * [http://www.netlib.org/blas/ बीएलएएस homepage] on Netlib.org | ||
* [http://www.netlib.org/blas/faq.html | * [http://www.netlib.org/blas/faq.html बीएलएएस FAQ] | ||
* [http://www.netlib.org/lapack/lug/node145.html | * [http://www.netlib.org/lapack/lug/node145.html बीएलएएस Quick Reference Guide] from एलएपीएसीके Users' Guide | ||
* [https://web.archive.org/web/20061009230911/http://history.siam.org/oralhistories/lawson.htm Lawson Oral History] One of the original authors of the | * [https://web.archive.org/web/20061009230911/http://history.siam.org/oralhistories/lawson.htm 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. | ||
* [https://web.archive.org/web/20061009230904/http://history.siam.org/oralhistories/dongarra.htm Dongarra Oral History] In an oral history interview, Jack Dongarra explores the early relationship of | * [https://web.archive.org/web/20061009230904/http://history.siam.org/oralhistories/dongarra.htm 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 | ||
*[https://stackoverflow.com/questions/1303182/how-does-blas-get-such-extreme-performance How does | *[https://stackoverflow.com/questions/1303182/how-does-blas-get-such-extreme-performance How does बीएलएएस get such extreme performance?] Ten naive 1000×1000 matrix multiplications (10<sup>10</sup> 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 | * An Overview of the Sparse Basic Linear Algebra Subprograms: The New Standard from the बीएलएएस Technical Forum {{doi-inline|10.1145/567806.567810}} | ||
{{Numerical linear algebra}} | {{Numerical linear algebra}} |
Revision as of 19:29, 11 July 2023
Stable release | 3.8.0
/ 12 November 2017 |
---|---|
Written in | कार्यान्वयन पर निर्भर करता है |
Platform | क्रॉस-प्लेटफॉर्म |
Type | पुस्तकालय |
Website | www |
बुनियादी रैखिक बीजगणित उपप्रोग्राम (बीएलएएस) एक विनिर्देश (तकनीकी मानक) है जो सदिश स्थल जोड़, स्केलर गुणन, डॉट उत्पाद, रैखिक संयोजन और आव्यूह गुणन जैसे सामान्य रैखिक बीजगणित संक्रिया करने के लिए निम्न-स्तरीय दिनचर्या का एक समूह निर्धारित करता है। वे रैखिक बीजगणित पुस्तकालयों के लिए वास्तविक मानक निम्न-स्तरीय नित्यक्रम हैं; नित्यक्रम में C (प्रोग्रामिंग भाषा) (Cबीएलएएस अंतरापृष्ठ) और फोरट्रान (बीएलएएस अंतरापृष्ठ) दोनों के लिए बाइंडिंग है। यद्यपि बीएलएएस विनिर्देश सामान्य है, बीएलएएस कार्यान्वयन प्रायः किसी विशेष यंत्र पर गति के लिए अनुकूलित होते हैं, इसलिए उनका उपयोग करने से पर्याप्त प्रदर्शन लाभ मिल सकता है। बीएलएएस कार्यान्वयन विशेष चल बिन्दु हार्डवेयर जैसे सदिश रजिस्टर या SIMD निर्देशों का लाभ उठाएगा।
इसकी प्रारंभ 1979 में फोरट्रान पुस्तकालय के रूप में हुई थी[1] और इसका अंतरापृष्ठ बीएलएएस टेक्निकल (बीएलएएसT) फोरम द्वारा मानकीकृत किया गया था, जिसकी नवीनतम बीएलएएस रिपोर्ट नेटलिब वेबसाइट पर पाई जा सकती है।[2] इस फोरट्रान पुस्तकालय को संदर्भ कार्यान्वयन (कभी-कभी भ्रमित रूप से बीएलएएस पुस्तकालय के रूप में संदर्भित) के रूप में जाना जाता है और यह गति के लिए अनुकूलित नहीं है परन्तु सार्वजनिक कार्यक्षेत्र में है।[3][4]
अधिकांश अभिकलन पुस्तकालय जो रैखिक बीजगणित नित्यक्रम की प्रस्तुति करती हैं, सामान्य बीएलएएस उपयोगकर्ता अंतरापृष्ठ कमांड संरचनाओं के अनुरूप होती हैं, इस प्रकार उन पुस्तकालयज़ (और संबंधित परिणाम) के लिए क्वेरीज़ प्रायः बीएलएएस पुस्तकालय शाखाओं के मध्य पोर्टेबल होती हैं, जैसे CUDA#प्रोग्रामिंग_एबिलिटीज़ (एनवीडिया GPU, GPGPU), ROCm# rocबीएलएएस_/_hipबीएलएएस (amd GPU, GPGP), और Openबीएलएएस। यह अंतरसंक्रियाीयता तब अभिकलन वास्तुकला के विषम कैस्केड (जैसे कि कुछ उन्नत क्लस्टरिंग कार्यान्वयन में पाए जाने वाले) के मध्य कामकाजी समरूप कोड कार्यान्वयन का आधार है। सीपीयू-आधारित बीएलएएस पुस्तकालय शाखाओं के उदाहरणों में सम्मिलित हैं: ओपनबीएलएएस, बीएलआईएस (सॉफ्टवेयर) | बीएलआईएस (बीएलएएस-जैसे पुस्तकालय इंस्टेंटिएशन सॉफ्टवेयर), आर्म परफॉर्मेंस पुस्तकालयज़,[5] स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर, और इंटेल गणित कर्नेल पुस्तकालय (आईएमकेएल)। एएमडी बीएलआईएस का एक कांटा रखता है जो उन्नत लघु उपकरण प्लेटफॉर्म के लिए अनुकूलित है, हालांकि यह स्पष्ट नहीं है कि एकीकृत लोकपाल संसाधन उस विशेष सॉफ्टवेयर-हार्डवेयर कार्यान्वयन में उपस्थित हैं या नहीं।[6] एटलस एक पोर्टेबल पुस्तकालय है जो स्वचालित रूप से एक मनमानी वास्तुकला के लिए खुद को अनुकूलित करती है। iMKL एक फ्रीवेयर है[7] और मालिकाना[8] इंटेल प्रोसेसर पर प्रदर्शन पर जोर देने के साथ विक्रेता पुस्तकालय को x86 और x86-64 के लिए अनुकूलित किया गया है।[9] ओपनबीएलएएस एक मुक्त स्रोत पुस्तकालय है जिसे कई लोकप्रिय वास्तुकला के लिए हाथ से अनुकूलित किया गया है। लिनपैक बेंचमार्क काफी हद तक बीएलएएस नित्यक्रम पर निर्भर करते हैं जीईएमएम
इसके प्रदर्शन माप के लिए.
कई संख्यात्मक सॉफ़्टवेयर एप्लिकेशन रैखिक बीजगणित गणना करने के लिए बीएलएएस-संगत पुस्तकालय का उपयोग करते हैं, जिनमें एलएपीएसीके, LINPACK, Armadilla (C++ पुस्तकालय), GNU ऑक्टेव, मेथेमेटिका, सम्मिलित हैं।[10] मतलब,[11] Numpy,[12] आर (प्रोग्रामिंग भाषा), जूलिया (प्रोग्रामिंग भाषा) और लिस्प-स्टेट।
पृष्ठभूमि
संख्यात्मक प्रोग्रामिंग के आगमन के साथ, परिष्कृत सबनित्यक्रम पुस्तकालय उपयोगी हो गईं। इन पुस्तकालयों में सामान्य उच्च-स्तरीय गणितीय संक्रिया जैसे रूट खोज, आव्यूह उलटा और समीकरणों की प्रणाली को हल करने के लिए सबनित्यक्रम सम्मिलित होंगे। पसंद की भाषा फोरट्रान थी। सबसे प्रमुख संख्यात्मक प्रोग्रामिंग पुस्तकालय आईबीएम का वैज्ञानिक सबनित्यक्रम पैकेज (एसएसपी) थी।[13] इन सबनित्यक्रम पुस्तकालयज़ ने प्रोग्रामर्स को अपनी विशिष्ट समस्याओं पर ध्यान केंद्रित करने और प्रसिद्ध कलन विधि को फिर से अनुप्रयुक्त करने से बचने की अनुमति दी। पुस्तकालय की दिनचर्या भी औसत कार्यान्वयन से बेहतर होगी; उदाहरण के लिए, आव्यूह कलन विधि, बेहतर संख्यात्मक सटीकता प्राप्त करने के लिए पूर्ण पिवोटिंग का उपयोग कर सकता है। पुस्तकालय की दिनचर्या में भी अधिक कुशल दिनचर्या होगी। उदाहरण के लिए, किसी पुस्तकालय में ऊपरी त्रिकोणीय आव्यूह को हल करने के लिए एक प्रोग्राम सम्मिलित हो सकता है। पुस्तकालयों में कुछ कलन विधि के एकल-सटीक और दोहरे-सटीक संस्करण सम्मिलित होंगे।
प्रारंभ में, इन प्रक्रिया ने अपने निम्न-स्तरीय संक्रिया के लिए हार्ड-कोडेड लूप का उपयोग किया। उदाहरण के लिए, यदि किसी सबनित्यक्रम को आव्यूह गुणन करने की आवश्यकता होती है, तो सबनित्यक्रम में तीन नेस्टेड लूप होंगे। रैखिक बीजगणित कार्यक्रमों में कई सामान्य निम्न-स्तरीय संक्रिया (तथाकथित कर्नेल संक्रिया, कर्नेल (ऑपरेटिंग प्रणाली) से संबंधित नहीं) होते हैं।[14] 1973 और 1977 के मध्य, इनमें से कई कर्नेल संक्रियाों की पहचान की गई।[15] ये कर्नेल संक्रिया परिभाषित सबनित्यक्रम बन गए जिन्हें गणित पुस्तकालय कॉल कर सकते थे। हार्ड-कोडेड लूप की तुलना में कर्नेल कॉल के फायदे थे: पुस्तकालय नित्यक्रम अधिक पठनीय होगी, बग की संभावना कम थी, और कर्नेल कार्यान्वयन को गति के लिए अनुकूलित किया जा सकता था। स्केलर (गणित) और सदिश रिक्त स्थान का उपयोग करके इन कर्नेल संक्रिया के लिए एक विनिर्देश, लेवल -1 बेसिक लीनियर बीजगणित प्रक्रिया (बीएलएएस), 1979 में प्रकाशित किया गया था।[16] बीएलएएस का उपयोग रैखिक बीजगणित सबनित्यक्रम पुस्तकालय LINPACK को अनुप्रयुक्त करने के लिए किया गया था।
बीएलएएस एब्स्ट्रैक्शन उच्च प्रदर्शन के लिए अनुकूलन की अनुमति देता है। उदाहरण के लिए, LINPACK एक सामान्य प्रयोजन पुस्तकालय है जिसका उपयोग बिना किसी संशोधन के कई अलग-अलग यंत्रों पर किया जा सकता है। लिनपैक बीएलएएस के सामान्य संस्करण का उपयोग कर सकता है। प्रदर्शन हासिल करने के लिए, विभिन्न यंत्रें बीएलएएस के अनुरूप संस्करणों का उपयोग कर सकती हैं। जैसे-जैसे कंप्यूटर वास्तुकला अधिक परिष्कृत होता गया, सदिश प्रोसेसर सामने आया। एक सदिश यंत्र के लिए बीएलएएस यंत्र के तीव्र सदिश संक्रिया का उपयोग कर सकता है। (हालांकि सदिश प्रोसेसर अंततः पसंद से बाहर हो गए, आधुनिक सीपीयू में सदिश निर्देश बीएलएएस नित्यक्रम में इष्टतम प्रदर्शन के लिए आवश्यक हैं।)
अन्य यंत्र सुविधाएँ उपलब्ध हो गईं और उनका उपयोग भी किया जा सकता है। नतीजतन, बीएलएएस को 1984 से 1986 तक लेवल-2 कर्नेल ऑपरेशंस के साथ संवर्धित किया गया था जो कि सदिश-आव्यूह ऑपरेशंस से संबंधित था। स्मृति पदानुक्रम को शोषण करने योग्य चीज़ के रूप में भी मान्यता दी गई थी। कई परिकलकों में कैश मैमोरी होती है जो मुख्य मेमोरी से बहुत तीव्र होती है; आव्यूह जोड़तोड़ को स्थानीयकृत रखने से कैश के बेहतर उपयोग की अनुमति मिलती है। 1987 और 1988 में, आव्यूह-आव्यूह संक्रिया करने के लिए स्तर 3 बीएलएएस की पहचान की गई थी। स्तर 3 बीएलएएस ने खंड-विभाजित कलन विधि को प्रोत्साहित किया। एलएपीएसीके पुस्तकालय लेवल 3 बीएलएएस का उपयोग करती है।[17]
मूल बीएलएएस केवल सघन रूप से संग्रहीत सदिश और आव्यूह से संबंधित है। बीएलएएस के आगे के विस्तार, जैसे विरल आव्यूह के लिए, पर ध्यान दिया गया है।[18]
कार्यक्षमता
बीएलएएस कार्यक्षमता को नित्यक्रम के तीन समूहों में वर्गीकृत किया गया है जिन्हें स्तर कहा जाता है, जो परिभाषा और प्रकाशन के कालानुक्रमिक क्रम के साथ-साथ कलन विधि की जटिलताओं में बहुपद की डिग्री दोनों के अनुरूप है; स्तर 1 बीएलएएस संक्रिया में सामान्यतः रैखिक समय लगता है, O(n), स्तर 2 संक्रिया द्विघात समय और स्तर 3 संक्रिया घन समय।[19] आधुनिक बीएलएएस कार्यान्वयन सामान्यतः सभी तीन स्तर प्रदान करते हैं।
स्तर 1
इस स्तर में बीएलएएस (1979) की मूल प्रस्तुति में वर्णित सभी दिनचर्या सम्मिलित हैं।[1]जो किसी सरणी के स्ट्राइड पर केवल सदिश संक्रिया को परिभाषित करता है: डॉट उत्पाद, मानक (गणित), फॉर्म का एक सामान्यीकृत सदिश जोड़
(बुलायाaxpy
, ए एक्स प्लस वाई ) और कई अन्य संक्रिया।
स्तर 2
इस स्तर में आव्यूह-सदिश संक्रिया सम्मिलित हैं, जिसमें अन्य चीजों के अतिरिक्त, एक सामान्यीकृत आव्यूह-सदिश गुणन सम्मिलित है (gemv
):
साथ ही इसके लिए एक सॉल्वर भी xरेखीय समीकरण में
साथ Tत्रिकोणीय होना. लेवल 2 बीएलएएस का डिज़ाइन 1984 में शुरू हुआ, जिसके परिणाम 1988 में प्रकाशित हुए।[20]लेवल 2 प्रक्रिया का उद्देश्य विशेष रूप से सदिश प्रोसेसर पर बीएलएएस का उपयोग करके कार्यक्रमों के प्रदर्शन में सुधार करना है, जहां लेवल 1 बीएलएएस उप-इष्टतम हैं क्योंकि वे कंपाइलर से संक्रिया की आव्यूह-सदिश प्रकृति को छिपाते हैं।[20]
स्तर 3
यह स्तर, औपचारिक रूप से 1990 में प्रकाशित हुआ,[19] इसमें आव्यूह-आव्यूह संक्रिया सम्मिलित हैं, जिसमें सामान्य आव्यूह गुणन सम्मिलित है (जीईएमएम
), फॉर्म का
जहाँ A और B को वैकल्पिक रूप से खिसकाना किया जा सकता है या हर्मिटियन संयुग्मित किया जा सकता है|नित्यक्रम के अंदर हर्मिटियन-संयुग्मित किया जा सकता है, और तीनों आव्यूह को स्ट्राइड किया जा सकता है। साधारण आव्यूह गुणन A Bसमूहिंग द्वारा किया जा सकता है α एक को और C उचित आकार के एक पूर्ण-शून्य आव्यूह के लिए।
लेवल 3 में अभिकलन के लिए नित्यक्रम भी सम्मिलित हैं
जहाँ {{math|T}अन्य कार्यक्षमताओं के साथ-साथ } एक त्रिकोणीय आव्यूह है।
कई वैज्ञानिक अनुप्रयोगों में आव्यूह गुणन की सर्वव्यापकता के कारण, जिसमें शेष स्तर 3 बीएलएएस का कार्यान्वयन भी सम्मिलित है,[21]और क्योंकि आव्यूह-सदिश गुणन की स्पष्ट पुनरावृत्ति से परे तीव्र कलन विधि उपस्थित हैं, जीईएमएम
बीएलएएस कार्यान्वयनकर्ताओं के लिए अनुकूलन का एक प्रमुख लक्ष्य है। उदाहरण के लिए, एक या दोनों को विघटित करके A, B खंड आव्यूह में, जीईएमएम
आव्यूह गुणन एल्गोरिथम#फूट डालो और जीतो एल्गोरिथम हो सकता है। यह सम्मिलित करने के लिए प्रेरणाओं में से एक है β मापदण्ड,[dubious ] ताकि पिछले खंडों के परिणाम जमा किये जा सकें। ध्यान दें कि इस अपघटन के लिए विशेष मामले की आवश्यकता होती है β = 1 जिसके लिए कई कार्यान्वयन अनुकूलित होते हैं, जिससे प्रत्येक मान के लिए एक गुणन समाप्त हो जाता है C. यह अपघटन उत्पाद में उपयोग किए गए डेटा के स्थान और समय दोनों में संदर्भ के बेहतर स्थानीयकरण की अनुमति देता है। यह, बदले में, प्रणाली पर सीपीयू कैश का लाभ उठाता है।[22] एक से अधिक स्तर के कैश वाले प्रणाली के लिए, खंडिंग को उस क्रम में दूसरी बार अनुप्रयुक्त किया जा सकता है जिसमें गणना में खंड का उपयोग किया जाता है। अनुकूलन के इन दोनों स्तरों का उपयोग स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ़्टवेयर जैसे कार्यान्वयन में किया जाता है। अभी हाल ही में, हर एक परत के कार्यान्वयन से पता चला है कि केवल एल2 कैश के लिए खंड करना, अनुवाद लुकसाइड बफर मिस को कम करने के लिए सन्निहित मेमोरी में कॉपी करने के सावधानीपूर्वक परिशोधित विश्लेषण के साथ, स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर से बेहतर है।[23]इन विचारों पर आधारित एक उच्च सुव्यवस्थित कार्यान्वयन गोटोब्लास, ओपनब्लास और बीएलआईएस (सॉफ्टवेयर) का हिस्सा है।
का एक सामान्य रूपांतर gemm
है gemm3m
, जो पारंपरिक चार वास्तविक आव्यूह गुणन और दो वास्तविक आव्यूह जोड़ के बजाय तीन वास्तविक आव्यूह गुणन और पांच वास्तविक आव्यूह जोड़ का उपयोग करके एक जटिल उत्पाद की गणना करता है, यह सड़क कलन विधि के समान एक कलन विधि है जिसे पहले पीटर अनगर द्वारा वर्णित किया गया था।[24]
कार्यान्वयन
- गति बढ़ाएं
- macOS और IOS (Apple) के लिए Apple Inc. का ढांचा, जिसमें बीएलएएस और एलएपीएसीके के ट्यून किए गए संस्करण सम्मिलित हैं।[25][26]
- शाखा प्रदर्शन पुस्तकालय ़
- आर्म परफॉर्मेंस पुस्तकालयज़, आर्म 64-बिट AArch64-आधारित प्रोसेसर का समर्थन करती है, जो आर्म लिमिटेड से उपलब्ध है।[5]; एटलस: स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर, सी (प्रोग्रामिंग भाषा) और फोरट्रान के लिए बीएलएएस अप्लिकेशन प्रोग्रामिंग अंतरफलक का एक खुला स्रोत सॉफ्टवेयर कार्यान्वयन।[27]
- बीएलआईएस (सॉफ्टवेयर)
- तीव्र इंस्टेंटिएशन के लिए बीएलएएस जैसा पुस्तकालय इंस्टेंटिएशन सॉफ्टवेयर ढांचा। अधिकांश आधुनिक सीपीयू के लिए अनुकूलित। BLIS, Gotoबीएलएएस का पूर्ण रीफैक्टरिंग है जो किसी दिए गए प्लेटफ़ॉर्म के लिए लिखे जाने वाले कोड की मात्रा को कम करता है।[28][29]
- C++एएमपी बीएलएएस
- C++एएमपी बीएलएएस पुस्तकालय विज़ुअल C++ के लिए Microsoft केएएमपी भाषा एक्सटेंशन के लिए बीएलएएस का एक मुक्त स्रोत सॉफ़्टवेयर कार्यान्वयन है।[30]
- cuबीएलएएस
- NVIDIA आधारित GPU कार्ड के लिए अनुकूलित बीएलएएस, कुछ अतिरिक्त पुस्तकालय कॉल की आवश्यकता होती है।[31]
- एनवीबीएलएएस
- एनवीडिया आधारित जीपीयू कार्ड के लिए अनुकूलित बीएलएएस, केवल लेवल 3 फलन प्रदान करता है, परन्तु अन्य बीएलएएस पुस्तकालयों के लिए सीधे ड्रॉप-इन प्रतिस्थापन के रूप में।[32]
- सीएलबीएलएएस
- एएमडी द्वारा बीएलएएस का एक ओपनसीएल कार्यान्वयन। एएमडी कंप्यूट पुस्तकालयज़ का हिस्सा।[33]
- clबीएलएएसT
- अधिकांश बीएलएएस एपीआई का एक ट्यून किया गया OpenCL कार्यान्वयन।[34]
- Eigen बीएलएएस
- एक फोरट्रान और C (प्रोग्रामिंग भाषा) बीएलएएस पुस्तकालय, मोज़िला लाइसेंस-लाइसेंस प्राप्त Eigen (C++ पुस्तकालय) के शीर्ष पर कार्यान्वित की गई है, जो x86, x86-64, ARM एआरएम वास्तुकला|ARM (NEON), और PowerPC वास्तुकला का समर्थन करती है।
- ईएसएसएल
- आईबीएम की इंजीनियरिंग और वैज्ञानिक सबनित्यक्रम पुस्तकालय, AIX ऑपरेटिंग प्रणाली और लिनक्स के अंतर्गत पावरपीसी वास्तुकला का समर्थन करती है। [35]
- गोटोब्लास
- काज़ुशिगे गोटो का बीएलएएस का बीएसडी-लाइसेंस प्राप्त कार्यान्वयन, विशेष रूप से इंटेल नेहलेम (माइक्रोवास्तुकला)/इंटेल एटम, वीआईए टेक्नोलॉजीज वीआईए नैनो, एएमडी ओपर्टन के लिए ट्यून किया गया है।[36];जीएनयू वैज्ञानिक पुस्तकालय: कई संख्यात्मक दिनचर्या का बहु-मंच कार्यान्वयन। इसमें Cबीएलएएस अंतरापृष्ठ सम्मिलित है।
- एचपी एमएलआईबी
- हेवलेट पैकर्ड की गणित पुस्तकालय एचपी-यूएक्स और लिनक्स के अंतर्गत आईए-64, पीए-जोखिम, एक्स86 और ओपर्टन वास्तुकला का समर्थन करती है।
- इंटेल एमकेएल
- इंटेल गणित कर्नेल पुस्तकालय, x86 32-बिट्स और 64-बिट्स का समर्थन करती है, जो इंटेल से निःशुल्क उपलब्ध है।[7]इंटेल पेंटियम (ब्रांड), इण्टेल कोर और इंटेल ज़ीऑन सीपीयू और इंटेल ज़ीऑन फाई के लिए अनुकूलन सम्मिलित हैं; Linux, Microsoft Windows और macOS के लिए समर्थन।[37]
- MathKeisan
- NEC Corporation की गणित पुस्तकालय, SUPER-UX के अंतर्गत NEC SX वास्तुकला और Linux के अंतर्गत इटेनियम का समर्थन करती है[38]
- नेटलिब बीएलएएस
- फोरट्रान में लिखा गया नेटलिब पर आधिकारिक संदर्भ कार्यान्वयन।[39]
- नेटलिब सीबीएलएएस
- बीएलएएस के लिए संदर्भ सी (प्रोग्रामिंग भाषा) अंतरापृष्ठ। सी से फोरट्रान बीएलएएस को कॉल करना भी संभव (और लोकप्रिय) है।[40]
- Openबीएलएएस
- Gotoबीएलएएस पर आधारित अनुकूलित बीएलएएस, x86, x86-64, MIPS वास्तुकला और ARM वास्तुकला प्रोसेसर का समर्थन करता है।[41]
- पीडीएलआईबी/एसएक्स
- एनईसी एनईसी एसएक्स वास्तुकला|एसएक्स-4 प्रणाली के लिए एनईसी कॉर्पोरेशन की सार्वजनिक कार्यक्षेत्र गणितीय पुस्तकालय।[42]
- rocबीएलएएस
- कार्यान्वयन जो ROCm के माध्यम से AMD GPU पर चलता है।[43]
- एससीएसएल
- सिलिकॉन ग्राफ़िक्स की वैज्ञानिक अभिकलन सॉफ्टवेयर पुस्तकालय में एसजीआई के इरिक्स वर्कस्टेशन के लिए बीएलएएस और लैपैक कार्यान्वयन सम्मिलित हैं।[44]
- सन परफॉर्मेंस पुस्तकालय
- सोलारिस 8, 9 और 10 के साथ-साथ लिनक्स के अंतर्गत SPARC, इंटेल कोर और AMD64 वास्तुकला के लिए अनुकूलित बीएलएएस और एलएपीएसीके।[45]
- यूबीएलएएस
- एक सामान्य सी++ टेम्पलेट क्लास पुस्तकालय जो बीएलएएस कार्यक्षमता प्रदान करती है। पुस्तकालय को बूस्ट करें का हिस्सा. यह एक एकीकृत नोटेशन में कई हार्डवेयर-त्वरित पुस्तकालयों को बाइंडिंग प्रदान करता है। इसके अतिरिक्त, uबीएलएएस उन्नत C++ सुविधाओं का उपयोग करके कलन विधि की शुद्धता पर ध्यान केंद्रित करता है।[46]
बीएलएएस का उपयोग करने वाली पुस्तकालय
- आर्माडिलो
- आर्माडिलो (सी++ पुस्तकालय) एक सी++ रैखिक बीजगणित पुस्तकालय है जिसका लक्ष्य गति और उपयोग में आसानी के मध्य एक अच्छा संतुलन बनाना है। यह टेम्प्लेट कक्षाओं को नियोजित करता है, और इसमें बीएलएएस/ATLAS और एलएपीएसीके के लिए वैकल्पिक लिंक हैं। यह NICTA (ऑस्ट्रेलिया में) द्वारा प्रायोजित है और इसे निःशुल्क लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।[47]
- एलएपीएसीके
- एलएपीएसीके बीएलएएस पर निर्मित एक उच्च स्तरीय रैखिक बीजगणित पुस्तकालय है। बीएलएएस की तरह, एक संदर्भ कार्यान्वयन उपस्थित है, परन्तु लिबफ्लेम और एमकेएल जैसे कई विकल्प उपस्थित हैं।
- मीर
- डी (प्रोग्रामिंग भाषा) में लिखित विज्ञान और यंत्र सीखने के लिए एक एलएलवीएम-त्वरित सामान्य संख्यात्मक पुस्तकालय। यह सामान्य रैखिक बीजगणित उपप्रोग्राम (GLAS) प्रदान करता है। इसे Cबीएलएएस कार्यान्वयन पर बनाया जा सकता है।[48]
समान पुस्तकालय (बीएलएएस के साथ संगत नहीं)
- एलिमेंटल
- एलिमेंटल वितरित मेमोरी | वितरित-मेमोरी सघन और विरल-प्रत्यक्ष रैखिक बीजगणित और अनुकूलन के लिए एक खुला स्रोत सॉफ्टवेयर है।[49]
- एचएएसईएम
- एक C++ टेम्प्लेट पुस्तकालय है, जो रैखिक समीकरणों को हल करने और eigenvalues की गणना करने में सक्षम है। इसे बीएसडी लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।[50]
- लामा
- त्वरित गणित अनुप्रयोगों के लिए पुस्तकालय (त्वरित गणित अनुप्रयोगों के लिए पुस्तकालय) वितरित मेमोरी प्रणाली पर विभिन्न प्रकार के हार्डवेयर (जैसे सीयूडीए या ओपनसीएल के माध्यम से जीपीयू) को लक्षित करने वाले संख्यात्मक सॉल्वर लिखने के लिए एक सी ++ टेम्पलेट पुस्तकालय है, जो प्रोग्राम से हार्डवेयर विशिष्ट प्रोग्रामिंग को छिपाती है। डेवलपर
- एमटीएल4
- आव्यूह टेम्पलेट पुस्तकालय संस्करण 4 एक सामान्य सी++ टेम्प्लेट पुस्तकालय है जो विरल और सघन बीएलएएस कार्यक्षमता प्रदान करती है। MTL4 सामान्य प्रोग्रामिंग की बदौलत एक सहज अंतरापृष्ठ (MATLAB के समान) और व्यापक प्रयोज्यता स्थापित करता है।
विरल बीएलएएस
पुस्तकालय के इतिहास के दौरान स्पार्स आव्यूह को संभालने के लिए बीएलएएस के कई एक्सटेंशन सुझाए गए हैं; विरल आव्यूह कर्नेल नित्यक्रम का एक छोटा समूह अंततः 2002 में मानकीकृत किया गया था।[51]
प्रचयित बीएलएएस
पारंपरिक बीएलएएस फलन को ऐसे वास्तुकला में भी पोर्ट किया गया है जो जीपीयू जैसे बड़ी मात्रा में समानता का समर्थन करते हैं। यहां, पारंपरिक बीएलएएस फलन बड़े आव्यूह के लिए सामान्यतः अच्छा प्रदर्शन प्रदान करते हैं। हालाँकि, जब जीईएमएम नित्यक्रम का उपयोग करके कई छोटे आव्यूह के आव्यूह उत्पादों की गणना की जाती है, तो वे वास्तुकला महत्वपूर्ण प्रदर्शन हानि दर्शाते हैं। इस समस्या के समाधान के लिए, 2017 में बीएलएएस फलन का एक प्रचयित संस्करण निर्दिष्ट किया गया है।[52]
एक उदाहरण के रूप में, ऊपर से जीईएमएम नित्यक्रम लेते हुए, प्रचयित संस्करण कई आव्यूहों के लिए एक साथ निम्नलिखित गणना करता है:
अनुक्रमणिका वर्गाकार कोष्ठकों में इंगित करता है कि एक स्तंभ में प्रायः संक्रिया सभी आव्यूहों के लिए किया गया है, यह संक्रिया एक प्रगति प्रचयित मेमोरी अभिन्यास के लिए कार्यान्वित किया जाता है जहां सभी आव्यूह सरणी , और में संयोजित होते हैं।
प्रचयित बीएलएएस फलन एक बहुमुखी उपकरण हो सकते हैं और उदाहरण के लिए अनुमति दे सकते हैं। घातीय समाकलक और मैग्नस समाकलक का तेजी से कार्यान्वयन जो कई समय चरणों के साथ लंबी एकीकरण अवधि को संभालते हैं।[53] यहां, आव्यूह घातांक, एकीकरण का कम्प्यूटेशनल रूप से महंगा हिस्सा, बैचेड बीएलएएस फलन का उपयोग करके सभी समय-चरणों के लिए समानांतर में कार्यान्वित किया जा सकता है।
यह भी देखें
- संख्यात्मक पुस्तकालयों की सूची
- गणित कर्नेल पुस्तकालय, इंटेल वास्तुकला के लिए अनुकूलित गणित पुस्तकालय; इसमें बीएलएएस, एलएपीएसीके सम्मिलित हैं।
- संख्यात्मक रैखिक बीजगणित, समस्या का प्रकार जिसे बीएलएएस हल करता है।
संदर्भ
- ↑ 1.0 1.1 *Lawson, C. L.; Hanson, R. J.; Kincaid, D.; Krogh, F. T. (1979). "Basic Linear Algebra Subprograms for FORTRAN usage". ACM Trans. Math. Softw. 5 (3): 308–323. doi:10.1145/355841.355847. hdl:2060/19780018835. S2CID 6585321. Algorithm 539.
- ↑ "बीएलएएस तकनीकी फोरम". netlib.org. Retrieved 2017-07-07.
- ↑ blaseman Archived 2016-10-12 at the Wayback Machine "The products are the implementations of the public domain BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra PACKage), which have been developed by groups of people such as Prof. Jack Dongarra, University of Tennessee, USA and all published on the WWW (URL: http://www.netlib.org/)."[permanent dead link]
- ↑ Jack Dongarra; Gene Golub; Eric Grosse; Cleve Moler; Keith Moore. "Netlib and NA-Net: building a scientific computing community" (PDF). netlib.org. Retrieved 2016-02-13.
The Netlib software repository was created in 1984 to facilitate quick distribution of public domain software routines for use in scientific computation.
- ↑ 5.0 5.1 "शाखा प्रदर्शन पुस्तकालय". Arm. 2020. Retrieved 2020-12-16.
- ↑ "BLAS Library".
- ↑ 7.0 7.1 "इंटेल मैथ कर्नेल लाइब्रेरी (एमकेएल) के लिए कोई लागत विकल्प नहीं, स्वयं का समर्थन करें, रॉयल्टी-मुक्त". Intel. 2015. Retrieved 2015-08-31.
- ↑ "इंटेल गणित कर्नेल लाइब्रेरी (इंटेल एमकेएल)". Intel. 2015. Retrieved 2015-08-25.
- ↑ "अनुकूलन सूचना". Intel. 2012. Retrieved 2013-04-10.
- ↑ Douglas Quinney (2003). "So what's new in Mathematica 5.0?" (PDF). MSOR Connections. The Higher Education Academy. 3 (4). Archived from the original (PDF) on 2013-10-29.
- ↑ Cleve Moler (2000). "मैटलैब में लैपैक शामिल है". MathWorks. Retrieved 2013-10-26.
- ↑ Stéfan van der Walt; S. Chris Colbert & Gaël Varoquaux (2011). "The NumPy array: a structure for efficient numerical computation". Computing in Science and Engineering. 13 (2): 22–30. arXiv:1102.1523. Bibcode:2011CSE....13b..22V. doi:10.1109/MCSE.2011.37. S2CID 16907816.
- ↑ Boisvert, Ronald F. (2000). "Mathematical software: past, present, and future". Mathematics and Computers in Simulation. 54 (4–5): 227–241. arXiv:cs/0004004. Bibcode:2000cs........4004B. doi:10.1016/S0378-4754(00)00185-3. S2CID 15157725.
- ↑ Even the SSP (which appeared around 1966) had some basic routines such as RADD (add rows), CADD (add columns), SRMA (scale row and add to another row), and RINT (row interchange). These routines apparently were not used as kernel operations to implement other routines such as matrix inversion. See IBM (1970), System/360 Scientific Subroutine Package, Version III, Programmer's Manual (5th ed.), International Business Machines, GH20-0205-4.
- ↑ BLAST Forum 2001, p. 1.
- ↑ Lawson et al. 1979.
- ↑ BLAST Forum 2001, pp. 1–2.
- ↑ BLAST Forum 2001, p. 2.
- ↑ 19.0 19.1 Dongarra, Jack J.; Du Croz, Jeremy; Hammarling, Sven; Duff, Iain S. (1990). "A set of level 3 basic linear algebra subprograms". ACM Transactions on Mathematical Software. 16 (1): 1–17. doi:10.1145/77626.79170. ISSN 0098-3500. S2CID 52873593.
- ↑ 20.0 20.1 Dongarra, Jack J.; Du Croz, Jeremy; Hammarling, Sven; Hanson, Richard J. (1988). "फोरट्रान बेसिक लीनियर अलजेब्रा सबप्रोग्राम्स का एक विस्तारित सेट". ACM Trans. Math. Softw. 14: 1–17. CiteSeerX 10.1.1.17.5421. doi:10.1145/42288.42291. S2CID 3579623.
- ↑ Goto, Kazushige; van de Geijn, Robert A. (2008). "High-performance implementation of the level-3 BLAS" (PDF). ACM Transactions on Mathematical Software. 35 (1): 1–14. doi:10.1145/1377603.1377607. S2CID 14722514.
- ↑ Golub, Gene H.; Van Loan, Charles F. (1996), Matrix Computations (3rd ed.), Johns Hopkins, ISBN 978-0-8018-5414-9
- ↑ Goto, Kazushige; van de Geijn, Robert A. (2008). "Anatomy of High-Performance Matrix Multiplication". ACM Transactions on Mathematical Software. 34 (3): 12:1–12:25. CiteSeerX 10.1.1.111.3873. doi:10.1145/1356052.1356053. ISSN 0098-3500. S2CID 9359223. (25 pages) [1]
- ↑ Van Zee, Field G.; Smith, Tyler M. (2017-07-24). "Implementing High-performance Complex Matrix Multiplication via the 3m and 4m Methods". ACM Transactions on Mathematical Software. 44 (1): 1–36. doi:10.1145/3086466. S2CID 25580883.
- ↑ "मार्गदर्शिकाएँ और नमूना कोड". developer.apple.com. Retrieved 2017-07-07.
- ↑ "मार्गदर्शिकाएँ और नमूना कोड". developer.apple.com. Retrieved 2017-07-07.
- ↑ "स्वचालित रूप से ट्यून किए गए रैखिक बीजगणित सॉफ्टवेयर (एटीएलएएस)". math-atlas.sourceforge.net. Retrieved 2017-07-07.
- ↑ blis: BLAS-like Library Instantiation Software Framework, flame, 2017-06-30, retrieved 2017-07-07
- ↑ BLIS GitHub Repository, 2021-10-15
- ↑ "सी++ एएमपी ब्लास लाइब्रेरी". CodePlex (in English). Retrieved 2017-07-07.
- ↑ "क्यूब्लास". NVIDIA Developer (in English). 2013-07-29. Retrieved 2017-07-07.
- ↑ "एनवीबीएलएएस". NVIDIA Developer (in English). 2018-05-15. Retrieved 2018-05-15.
- ↑ clBLAS: a software library containing BLAS functions written in OpenCL, clMathLibraries, 2017-07-03, retrieved 2017-07-07
- ↑ Nugteren, Cedric (2017-07-05), CLBlast: Tuned OpenCL BLAS, retrieved 2017-07-07
- ↑ IBM Knowledge Centre: Engineering and Scientific Subroutine Library
- ↑ Milfeld, Kent. "GotoBLAS2". Texas Advanced Computing Center. Archived from the original on 2020-03-23. Retrieved 2013-08-28.
- ↑ "Intel Math Kernel Library (Intel MKL) | Intel Software". software.intel.com (in English). Retrieved 2017-07-07.
- ↑ Mathkeisan, NEC. "उन्होंने सीखा". www.mathkeisan.com (in English). Retrieved 2017-07-07.
- ↑ "बीएलएएस (बुनियादी रैखिक बीजगणित उपप्रोग्राम)". www.netlib.org. Retrieved 2017-07-07.
- ↑ "बीएलएएस (बुनियादी रैखिक बीजगणित उपप्रोग्राम)". www.netlib.org. Retrieved 2017-07-07.
- ↑ "OpenBLAS : An optimized BLAS library". www.openblas.net. Retrieved 2017-07-07.
- ↑ "PDLIB/SX: Business Solution | NEC". Archived from the original on 2007-02-22. Retrieved 2007-05-20.
- ↑ "रॉकब्लास". rocmdocs.amd.com. Retrieved 2021-05-21.
- ↑ "SGI - SCSL Scientific Library: Home Page". Archived from the original on 2007-05-13. Retrieved 2007-05-20.
- ↑ "ओरेकल डेवलपर स्टूडियो". www.oracle.com. Retrieved 2017-07-07.
- ↑ "Boost Basic Linear Algebra - 1.60.0". www.boost.org. Retrieved 2017-07-07.
- ↑ "Armadillo: C++ linear algebra library". arma.sourceforge.net. Retrieved 2017-07-07.
- ↑ "डेलांग न्यूमेरिकल और सिस्टम लाइब्रेरीज़". GitHub.
- ↑ "Elemental: distributed-memory dense and sparse-direct linear algebra and optimization — Elemental". libelemental.org. Retrieved 2017-07-07.
- ↑ "बेसम". SourceForge (in English). 2015-08-17. Retrieved 2017-07-07.
- ↑ Duff, Iain S.; Heroux, Michael A.; Pozo, Roldan (2002). "An Overview of the Sparse Basic Linear Algebra Subprograms: The New Standard from the BLAS Technical Forum". ACM Transactions on Mathematical Software. 28 (2): 239–267. doi:10.1145/567806.567810. S2CID 9411006.
- ↑ Dongarra, Jack; Hammarling, Sven; Higham, Nicholas J.; Relton, Samuel D.; Valero-Lara, Pedro; Zounon, Mawussi (2017). "आधुनिक उच्च-प्रदर्शन कंप्यूटिंग सिस्टम पर बैचेड बीएलएएस का डिजाइन और प्रदर्शन". Procedia Computer Science. 108: 495–504. doi:10.1016/j.procs.2017.05.138.
- ↑ Herb, Konstantin; Welter, Pol (2022). "बैचेड बीएलएएस (बेसिक लीनियर अलजेब्रा सबप्रोग्राम्स) रूटीन का उपयोग करके समानांतर समय एकीकरण". Computer Physics Communications. 270: 108181. arXiv:2108.07126. doi:10.1016/j.cpc.2021.108181. S2CID 237091802.
अग्रिम पठन
- BLAST Forum (2001-08-21), Basic Linear Algebra Subprograms Technical (BLAST) Forum Standard, Knoxville, TN: University of Tennessee
- Dodson, D. S.; Grimes, R. G. (1982), "Remark on algorithm 539: Basic Linear Algebra Subprograms for Fortran usage", ACM Trans. Math. Softw., 8 (4): 403–404, doi:10.1145/356012.356020, S2CID 43081631
- Dodson, D. S. (1983), "Corrigendum: Remark on "Algorithm 539: Basic Linear Algebra Subroutines for FORTRAN usage"", ACM Trans. Math. Softw., 9: 140, doi:10.1145/356022.356032, S2CID 22163977
- 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.
बाहरी संबंध
- बीएलएएस 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×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 [2]