ความแตกต่างด้านประสิทธิภาพระหว่าง ATLAS และ MKL หรือไม่


31

ATLAS คือการแทนที่ BLAS / LAPACK ฟรีที่ปรับแต่งตัวเองไปยังเครื่องเมื่อรวบรวม MKL เป็นห้องสมุดเชิงพาณิชย์ที่จัดส่งโดย Intel ไลบรารีทั้งสองนี้เปรียบได้หรือไม่เมื่อเทียบกับประสิทธิภาพหรือ MKL มีความสามารถเหนือกว่าสำหรับงานบางอย่างหรือไม่? ถ้าเป็นเช่นนั้น


4
ตอนนี้ยังมีOpenBLASด้วย ดูมาตรฐาน VS MKL ในแซนดีบริดจ์
Mark Mikofski

คำตอบ:


18

MKL (จาก Intel) ได้รับการปรับแต่งให้เหมาะสมกับโปรเซสเซอร์ของ Intel และอาจมี "ระดับสูงกว่า" ในหลาย ๆ กรณี แต่ก็ยังเป็น "ชื่อเสียง" สำหรับการเลือก "เลวร้ายที่สุด" รหัสเส้นทางสำหรับการประมวลผลเอเอ็มดีตามที่อธิบายไว้ที่นี่


12

BLAS ไม่ใช่เสาหิน BLAS1 และ BLAS2 เป็นแบนด์วิดท์ของหน่วยความจำที่ จำกัด และมีไม่มากที่คุณสามารถทำได้เพื่อเร่งความเร็วให้เหนือกว่าที่เห็นได้ชัด (การคลายลูปการบล็อกแคชสำหรับระดับ 2) BLAS3 น่าสนใจยิ่งขึ้นและเกณฑ์มาตรฐานต้นแบบที่นี่คือการคูณเมทริกซ์เมทริกซ์ สำหรับความรู้ของฉัน GOTOBlas เป็นผู้ชนะที่ชัดเจนเสมอที่นี่ดูตัวอย่างการเปรียบเทียบนี้หรืออันนี้และเหตุผลนี้

ตอนนี้มันเป็นปีต่อมาและเรามีโครงการ BLIS เป็นทางเลือกฟรีที่ดีที่สุดสำหรับ MKL


4
แมตต์นั้นถูกต้อง แต่ GotoBLAS ไม่ได้อยู่ระหว่างการพัฒนาอีกต่อไป มันยังใช้งานได้ดีสำหรับโปรเซสเซอร์รุ่นใหม่บางตัว แต่ MKL จะเหนือกว่ารุ่น DGEMM สำหรับโปรเซสเซอร์ในอนาคตหากไม่ได้มีอยู่แล้ว ตัวอย่างเช่นเราไม่ได้ทดสอบกับ Westmere แต่ฉันจะไม่แปลกใจถ้า GotoBLAS หายไปแล้ว
Bill Barth

2
Dr. Goto ถูกซื้อโดย M $ ความโศกเศร้า . .
meawoppl

2
OpenBLAS เป็นโครงการ opensource ที่แยกจาก GotoBLAS github.com/xianyi/OpenBLAS
ShadowWarrior

ตอนนี้ Goto ทำงานกับ MKL แล้ว ไม่มีความโศกเศร้ามากขึ้น :-)
เจฟฟ์

6

โปรไฟล์ไม่ต้องเดา! (ทำงานเป็น"เกณฑ์มาตรฐานอย่าคาดเดา!" )

ไม่มีอะไรที่คนทั่วไปพูดได้มันขึ้นอยู่กับงานที่คุณต้องการทำ (ตัวอย่างเช่น BLAS 1/2/3) และฮาร์ดแวร์ที่คุณใช้งานอยู่ (เห็นได้ชัดว่า Intel MKL ไม่ทำงานบนโปรเซสเซอร์ ARM สำหรับ ตัวอย่างเช่นแม้ในโปรเซสเซอร์ Intel คุณสามารถคาดหวังถึงความแตกต่างด้านประสิทธิภาพ)


อีกสิ่งหนึ่งที่ผมคิดว่าเป็นมูลค่าการกล่าวขวัญว่าเอเอ็มดีมีห้องสมุดคณิตศาสตร์ปรับไปประมวลผลของพวกเขาคณิตศาสตร์ห้องสมุด Core AMD มันไม่ได้เป็นคุณสมบัติที่อุดมไปด้วย MKL ของ Intel แต่มันรวม BLAS


จริง มีหลักฐานพอสมควรจำนวนมาก (และการทำโปรไฟล์จริง) เพื่อสำรองคำตอบอื่น ๆ ที่นี่ (เห็นได้จากลิงก์) อย่างไรก็ตามระยะทางของคุณอาจแตกต่างกันไปและจะช่วยให้โปรไฟล์ทราบว่าคุณถูกต้องเสมอ
Geoff Oxberry

1
มันเป็นเรื่องที่สร้างความรำคาญให้กับโปรไฟล์เนื่องจาก MKL อยู่ที่ $ 499 อย่างไรก็ตามพวกเขาจะเสนอการทดลองใช้ 1 เดือน
Lyndon White

@LyndonWhite ยังคงเป็นกรณีนี้หรือไม่? หน้าดาวน์โหลดปรากฏขึ้นเพื่อแสดงว่ามันฟรี
Luciano

ใช่ฉันเชื่อว่าตอนนี้ว่างแล้วฉันเห็นผู้คนมากมายใช้มันตอนนี้
Lyndon White

6

คำตอบก่อนหน้าสำหรับคำถามนี้ได้ครอบคลุมประเด็นสำคัญเกือบทั้งหมด แต่ฉันต้องการเพิ่มความคิดเห็นด้วยความเคารพ:

MKL มีความได้เปรียบสำหรับงานบางอย่างหรือไม่?

ทีม MKL อยู่ในตำแหน่งที่ไม่ซ้ำใครที่จะรู้เกี่ยวกับชุดคำสั่งของ Intel ในอนาคตและการใช้งานในโปรเซสเซอร์เฉพาะ นอกจากนี้พวกเขายังสามารถเข้าถึงตัวจำลองโปรเซสเซอร์ที่เป็นกรรมสิทธิ์และฮาร์ดแวร์ก่อนการผลิตที่ไม่มีใครนอก Intel สามารถใช้ ดังนั้น MKL จึงมีความสามารถระดับสูงของความรู้เกี่ยวกับผลิตภัณฑ์ในอนาคตและเมื่อพวกเขาได้รับความรู้นี้ ดังนั้นจึงไม่ควรแปลกใจถ้าพวกเขาผลิตการใช้งาน BLAS ได้ดีกว่าคนอื่นอย่างน้อยก็ในช่วงอายุของผลิตภัณฑ์ที่มีคุณสมบัติใหม่

ในทางตรงกันข้าม Intel ค่อนข้างเปิดกว้างเกี่ยวกับชุดคำสั่ง AVX-512 และได้จัดเตรียมIntel® Software Development Emulator (SDE) ที่ช่วยให้นักพัฒนาสามารถเลียนแบบคำสั่ง AVX-512 บนโปรเซสเซอร์ที่ไม่รองรับสิ่งเหล่านี้ ด้วยเหตุนี้จึงไม่น่าแปลกใจถ้ามีการใช้งานโอเพ่นซอร์สคุณภาพสูงของ BLAS สำหรับโปรเซสเซอร์ Intel ที่สนับสนุน AVX-512 ในช่วงอายุของผลิตภัณฑ์เหล่านี้

แน่นอนว่ามันมีความแตกต่างกันมากเพียงใดในการมีข้อมูลรายละเอียดเกี่ยวกับตัวประมวลผลเฉพาะเทียบกับพื้นฐานของอัลกอริทึมพีชคณิตเชิงเส้นที่หนาแน่นซึ่งยังไม่ได้รับการแก้ไขอย่างเต็มที่ ใบเสนอราคาต่อไปนี้แก้ไขปัญหานี้ได้ดีกว่าที่ฉันทำได้:

ในทางทฤษฎีไม่มีความแตกต่างระหว่างทฤษฎีและการปฏิบัติ แต่ในทางปฏิบัติมี

การเปิดเผยข้อมูลทั้งหมด: ฉันทำงานให้กับ Intel


มีโอกาสบ้างไหมที่ MKL เปิดแหล่งที่มา?
Royi

เพื่อจุดประสงค์อะไร? MKL ให้บริการฟรีเช่นเดียวกับเบียร์ มีคุณค่าทางการศึกษาที่มากกว่าในการอ่านซอร์สโค้ดของ BLIS หากคุณต้องการอ่านชุดประกอบลอง OpenBLAS
Jeff

1

ฉันคิดว่าความแตกต่างหลักระหว่างไลบรารี BLAS ของผู้จัดจำหน่ายและไลบรารี BLAS ของโอเพ่นซอร์สคือเวลาที่ใช้สำหรับโอเพ่นซอร์สเพื่อสนับสนุนคุณลักษณะฮาร์ดแวร์ล่าสุด

เนื่องจาก BLAS ใช้กันอย่างแพร่หลายเป็นที่สนใจของผู้ขายเพื่อสนับสนุนคุณสมบัติฮาร์ดแวร์ล่าสุด ตัวอย่างเช่นพิจารณาส่วนขยาย AVX ของ Intelที่นำมาใช้กับโปรเซสเซอร์ "sandy-bridge" ในเดือนมกราคม 2011 MKL มีการสนับสนุน AVX แม้กระทั่งก่อนที่ CPU จะพร้อมใช้งาน แต่เมื่อไม่นานมานี้ ATLAS (ปลายปี 2011) ก็เริ่มรองรับ .

นอกจากนี้หากแอปพลิเคชันของคุณต้องการประสิทธิภาพจริงๆและก่อนที่คุณจะเริ่มทำการเปรียบเทียบไลบรารี่ของ BLAS ที่แตกต่างกันหรือเริ่มแฮ็คเพื่อปรับแต่งสิ่งต่าง ๆ : โปรไฟล์แอปพลิเคชันของคุณ เป็นเรื่องธรรมดาที่สัญชาตญาณของมนุษย์ไม่ใช่ตัวทำนายที่มีประสิทธิภาพมากอย่างน้อยฉันก็รู้ว่าของฉันไม่ได้! ดังนั้นแทนที่จะใช้เวลาในการปรับให้เหมาะสมแบบสุ่มโปรไฟล์แอปพลิเคชันของคุณและเข้าหาคอขวดแต่ละระบบอย่างเป็นระบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.