इससे पहले, जब मैंने कुछ रैखिक बीजगणित करना शुरू किया C
, तो यह देखकर आश्चर्य हुआ कि इस तरह के कुछ ट्यूटोरियल हैं BLAS
, LAPACK
और अन्य मौलिक हैं API
, इस तथ्य के बावजूद कि वे किसी तरह कई अन्य पुस्तकालयों के कोने हैं। यही वजह है कि मैं के लिए इंटरनेट पर सभी उदाहरणों / ट्यूटोरियल मैं सभी मिल सकता है इकट्ठा करने शुरू कर दिया BLAS
, CBLAS
, LAPACK
, CLAPACK
, LAPACKE
, ATLAS
, OpenBLAS
... में इस Github रेपो ।
खैर, मुझे आपको चेतावनी देनी चाहिए कि एक मैकेनिकल इंजीनियर के रूप में मुझे इस तरह के गिट रिपॉजिटरी या गिटहब के प्रबंधन का बहुत कम अनुभव है। यह पहली बार आप लोगों को पूरी तरह से गड़बड़ लगेगा। हालाँकि यदि आप गन्दे ढाँचे पर जाने का प्रबंधन करते हैं तो आपको सभी प्रकार के उदाहरण और निर्देश मिलेंगे जो एक मदद हो सकती है। मैंने उनमें से अधिकांश की कोशिश की है, यह सुनिश्चित करने के लिए कि वे संकलन करें। और जिन लोगों का संकलन नहीं है, उनका मैंने उल्लेख किया है। मैं उनमें से कई के साथ compilable होने के लिए संशोधित किया है GNU compilers
( gcc
, g++
और gfortran
)। मैं बना दिया है MakeFile
रों आप जानने के लिए कैसे आप अलग-अलग कॉल कर सकते हैं पढ़ सकते हैं जो Fortran/FORTRAN
एक में दिनचर्या C
या C++
कार्यक्रम। मैंने मैक और लिनक्स के लिए कुछ इंस्टॉलेशन निर्देश भी दिए हैं (क्षमा करें विंडोज़ लोग!)। मैंने भी कुछ बनाया हैbash
.sh
इनमें से कुछ पुस्तकालयों के स्वत: संकलन के लिए फाइलें।
लेकिन अपने अन्य प्रश्न के लिए जा रहे हैं : BLAS
और विशिष्ट नहीं हैं । वे केवल कार्यान्वयन या पुस्तकालयों के बजाय विनिर्देशों या भाषा एक्सटेंशन की एक सूची हैं। इसके साथ ही कहा, वहाँ से मूल कार्यान्वयन हैं Netlib में है, जो ज्यादातर लोगों का उल्लेख (भ्रमित करने वाले!) जब के बारे में बात और । इसलिए यदि आप इन एस का उपयोग करते समय बहुत सी अजीब चीजें देखते हैं क्योंकि आप वास्तव में पुस्तकालयों और कार्यों के बजाय रूटीन कह रहे थे । और का सबसे अच्छा कार्यान्वयन में से कुछ हैं और जहाँ तक मुझे पता है। वे मूल के अनुरूप हैं , भले ही, मेरे ज्ञान के लिए उन्हें लागू किया गया होLAPACK
API
SDK
FORTRAN 77
BLAS
LAPACK
API
FORTRAN
C
C
ATLAS
OpenBLAS
BLAS
LACPACK
API
C/C++
खरोंच से (यकीन नहीं!)। वहाँ की GPGPU कार्यान्वयन हैं API
s का उपयोग करके OpenCL
: CLBlast , clBLAS , clMAGMA , ArrayFire और ViennaCL कुछ का उल्लेख। विशिष्ट हार्डवेयर या प्लेटफ़ॉर्म के लिए अनुकूलित वेंडर विशिष्ट कार्यान्वयन भी हैं, जो मैं किसी को भी उनका उपयोग करने के लिए दृढ़ता से हतोत्साहित करता हूं।
किसी को जो का उपयोग कर सीखना चाहता है मेरे सिफारिश BLAS
और LAPACK
में C
जानने के लिए है FORTRAN-C
मिश्रित प्रोग्रामिंग पहले। उल्लिखित रेपो का पहला अध्याय इस मामले के लिए समर्पित है और वहाँ मैंने कई अलग-अलग उदाहरण एकत्र किए हैं।
पुनश्च मैं समय-समय पर भंडार की देव शाखा पर काम कर रहा हूं । यह थोड़ा कम गन्दा लगता है!