ATLAS और MKL के बीच प्रदर्शन अंतर?


31

एटलस एक निशुल्क BLAS / LAPACK प्रतिस्थापन है जो संकलित होने पर मशीन को स्वयं धुन देता है। MKL Intel द्वारा शिप की गई व्यावसायिक लाइब्रेरी है। जब प्रदर्शन की बात आती है, तो क्या ये दोनों लाइब्रेरी तुलनात्मक हैं, या एमकेएल के पास कुछ कार्यों के लिए ऊपरी हाथ है? यदि हां, तो कौन?


जवाबों:


18

MKL (इंटेल से) इंटेल प्रोसेसर के लिए अनुकूलित है, और संभवतः कई मामलों में "ऊपरी हाथ" है। लेकिन यह भी एएमडी प्रोसेसर के लिए "सबसे खराब" कोड-पथ चुनने के लिए "प्रसिद्ध" है, जैसा कि यहां वर्णित है


12

BLAS अखंड नहीं है। BLAS1 और BLAS2 मेमोरी बैंडविड्थ सीमित हैं, और बहुत कुछ नहीं है जो आप उन्हें स्पष्ट (लूप अनरोलिंग, स्तर 2 के लिए कैश ब्लॉकिंग) से परे गति देने के लिए कर सकते हैं। BLAS3 अधिक दिलचस्प है और यहाँ प्रोटोटाइप बेंचमार्क मैट्रिक्स-मैट्रिक्स गुणा है। मेरी जानकारी के लिए GOTOBlas हमेशा से स्पष्ट विजेता रहा है, उदाहरण के लिए इस तुलना या इस एक और इस औचित्य को देखें

यह अब वर्षों बाद है, और हमारे पास बीएलआईएस परियोजना है । यह MKL के लिए सबसे अच्छा मुफ्त विकल्प है।


4
मैट सही है, लेकिन गोटोब्लास अब विकास के अधीन नहीं है। यह अभी भी कुछ आधुनिक प्रोसेसर के लिए बहुत अच्छा काम करता है, लेकिन MKL निश्चित रूप से भविष्य के प्रोसेसर पर DGEMM के लिए इसे पार कर जाएगा यदि यह पहले से ही नहीं है। उदाहरण के लिए, हमने वेस्टमेयर पर इसका परीक्षण नहीं किया है, लेकिन मुझे आश्चर्य नहीं होगा अगर गोटोब्लास पहले ही हार चुका है।
बिल बर्थ

2
डॉ। गोटो को M $ द्वारा खरीदा गया। उदासी । । ।
5

2
OpenBLAS, GotoBLAS से ली गई ओपनसोर्स परियोजना है। github.com/xianyi/OpenBLAS
शैडोवर्यर

गोटो अब एमकेएल पर काम करते हैं। कोई और दुःख नहीं :-)
जेफ

6

प्रोफ़ाइल, अटकलें मत! ( "बेंचमार्क के रूप में भी काम करता है , अटकलें मत करो!" )

जेनेरिक कुछ भी नहीं कह सकता है, यह उन कार्यों पर बहुत अधिक निर्भर करता है जिन्हें आप प्रदर्शन करना चाहते हैं (उदाहरण के लिए (BLAS 1/2/3), और हार्डवेयर आप पर हैं (जाहिर है, Intel MKL ARM प्रोसेसर पर नहीं चलता है, के लिए) उदाहरण; लेकिन इंटेल प्रोसेसर के बीच भी, आप प्रदर्शन अंतर की उम्मीद कर सकते हैं)।


मुझे लगता है कि एक और बात ध्यान देने योग्य है कि एएमडी अपने प्रोसेसर, एएमडी कोर मैथ लाइब्रेरी के लिए गणितीय लाइब्रेरी प्रदान करता है । यह इंटेल के MKL की तरह फीचर से भरपूर नहीं है, लेकिन इसमें BLAS शामिल है।


सच। यहां अन्य उत्तरों को वापस करने के लिए बहुत सारे वास्तविक सबूत (और वास्तविक रूपरेखा) हैं (जैसा कि लिंक्स द्वारा स्पष्ट किया गया है)। हालाँकि, आपका माइलेज भिन्न हो सकता है, और यह हमेशा यह जानने में मदद करता है कि आप सही हैं।
ज्योफ ऑक्सीबेरी

1
यह प्रोफाइल के लिए कष्टप्रद है, क्योंकि MKL $ 499 है। हालाँकि वे 1 महीने के परीक्षण की पेशकश करते हैं
Lyndon White

@LyndonWhite अभी भी यही है? डाउनलोड पृष्ठ इसे मुक्त
लुसियानो

हां, मेरा मानना ​​है कि यह अब स्वतंत्र है, मैं बहुत से लोगों को अब इसका उपयोग करते हुए देखता हूं।
लिंडन व्हाइट

6

इस सवाल के पहले के जवाबों में अधिकांश मुख्य बिंदु शामिल हैं, लेकिन मैं इस संबंध में एक टिप्पणी जोड़ना चाहता हूं:

क्या MKL में कुछ कार्यों के लिए ऊपरी हाथ है?

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

दूसरी ओर, इंटेल AVX-512 निर्देश सेट के बारे में काफी खुला है और इसने Intel® Software Development Emulator (SDE) प्रदान किया है जो डेवलपर्स को उन प्रोसेसर पर AVX-512 निर्देशों का अनुकरण करने की अनुमति देता है जो इन मूल का समर्थन नहीं करते हैं। इस वजह से, यह बहुत आश्चर्य की बात नहीं होगी यदि BLAS के उच्च-गुणवत्ता वाले ओपन-सोर्स कार्यान्वयन इंटेल प्रोसेसर के लिए उपलब्ध हैं जो इन उत्पादों के जीवनकाल में AVX-512 का समर्थन करते हैं।

बेशक, किसी विशेष प्रोसेसर के बारे में विस्तृत जानकारी के लिए कितना अंतर होता है बनाम घने रैखिक बीजगणित एल्गोरिदम के मूल सिद्धांतों को पूरी तरह से हल नहीं किया गया है। निम्नलिखित उद्धरण इस मुद्दे को मुझसे बेहतर बता सकता है:

सिद्धांत रूप में, सिद्धांत और व्यवहार में कोई अंतर नहीं है। लेकिन, असलियत में, होता है।

पूर्ण प्रकटीकरण: मैं इंटेल के लिए काम करता हूं।


क्या एमकेएल को खुला रखने का कोई मौका है?
रॉय

किस लिए? MKL बीयर में पहले से ही मुफ्त है। बीएलआईएस के स्रोत कोड को पढ़ने में कहीं अधिक शैक्षिक मूल्य है। यदि आप असेंबली पढ़ना चाहते हैं, तो OpenBLAS का प्रयास करें।
जेफ

1

मुझे लगता है कि विक्रेता BLAS पुस्तकालयों और खुले स्रोत BLAS पुस्तकालयों के बीच मुख्य अंतर यह है कि नवीनतम हार्डवेयर सुविधाओं का समर्थन करने के लिए खुले स्रोत के लिए समय लगता है।

जैसा कि BLAS का व्यापक रूप से उपयोग किया जाता है, यह नवीनतम हार्डवेयर सुविधाओं का समर्थन करने के लिए विक्रेता के हित में है। उदाहरण के लिए, इंटेल के AVX वेक्टर एक्सटेंशन पर विचार करें, जो जनवरी 2011 को "रेतीले पुल" प्रोसेसर के साथ पेश किए गए थे। CPU के उपलब्ध होने से पहले ही MKL का AVX समर्थन था, लेकिन हाल ही में ATLAS (2011 के अंत में) AVX को समर्थन देना शुरू किया गया था ।

इसके अलावा, यदि आपके आवेदन को वास्तव में प्रदर्शन की आवश्यकता है और इससे पहले कि आप अलग-अलग BLAS पुस्तकालयों को बेंचमार्क करना शुरू करें या किसी भी चीज को अनुकूलित करने के आसपास हैक करना शुरू करें: अपने आवेदन को प्रोफाइल करें। यह सामान्य है कि मानव अंतर्ज्ञान एक बहुत प्रभावी प्रोफाइलर भविष्यवक्ता नहीं है, कम से कम मुझे पता है कि मेरा नहीं है! इसलिए बेतरतीब ढंग से अनुकूलन करने में समय व्यतीत करने के बजाय, अपने आवेदन को प्रोफाइल करें और व्यवस्थित रूप से प्रत्येक अड़चन का सामना करें।

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