มีประโยชน์ในการรวบรวม LAPACK จากแหล่งที่มาเมื่อเทียบกับการติดตั้งแพคเกจที่สร้างไว้ล่วงหน้าจาก Ubuntu หรือไม่


13

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


มันอาจจะคุ้มค่าที่จะลองใช้เทคนิคนี้เพื่อดูว่าทำไมถึงใช้เวลา ฉันได้พบว่าถ้าฉันทำงานกับเมทริกซ์ที่ไม่ใหญ่นักกิจวัตรห้องสมุดใช้เวลากว่าครึ่งหนึ่งในการจำแนกแฟล็กอักขระอินพุตและการจำแนกอินพุตอื่น ๆ ดังนั้นคุณอาจได้รับความเร็วมากขึ้นโดยเพิ่มไลบรารี ด้วยรูทีนที่เขียนด้วยมือที่คัดสรรมาอย่างดี
Mike Dunlavey

คำตอบ:


9

OpenBlas ค่อนข้างเร็วคุณสามารถเชื่อมโยงกับ LAPACK ได้ คุณลอง LAPACK / BLAS รุ่น precompiled จากผู้จำหน่าย CPU ของคุณหรือไม่ ตัวอย่างเช่น AMD ACML (ฟรี) หรือ Intel MKL (ฟรีบน linux สำหรับการใช้ที่ไม่ใช่เชิงพาณิชย์และไม่ใช่เชิงวิชาการ) คุณเพียงแค่ต้องแกะและเรียกใช้ไฟล์ติดตั้ง

ในความคิดของฉันข้อได้เปรียบเพียงข้อเดียวของการใช้ ATLAS ก็คือเมื่อคุณใช้ CPU ที่ผิดปกติ ไม่เช่นนั้นให้ใช้จากผู้จำหน่าย CPU นอกจากนี้ยังมี nVIDIA CUDA และ AMD OpenCL เวอร์ชันที่มีให้เลือก

แก้ไข: จำไว้ว่าคุณสามารถสร้างแพ็คเกจ Ubuntu DEB จากแหล่งซึ่งมักจะง่ายกว่าการรวบรวมซอฟต์แวร์จากแหล่งที่มา


ฉันคิดว่าฉันจะไปกับข้อเสนอแนะของคุณและติดตั้ง MKL ขอบคุณสำหรับเคล็ดลับในการสร้างแพ็คเกจ DEB ฉันไม่ทราบว่าเป็นไปได้
OSE

2
โปรดจำไว้ว่าคุณต้องกำหนดค่า ld (ตัวเชื่อมโยงไลบรารีแบบไดนามิกเพื่อให้สามารถค้นหา libs เหล่านั้นได้) BLAS และ LAPACK จาก Intel MKL อยู่ในlibmkl_rt.soไฟล์ที่มักจะเชื่อมโยงโดยใช้:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Misery

2
สิ่งหนึ่งที่ควรชี้ให้เห็นว่าใบอนุญาตที่ไม่ใช่เชิงพาณิชย์ของ Intel นั้นมีข้อ จำกัด มากขึ้นเรื่อย ๆ ในแต่ละรุ่นจนถึงตอนนี้พวกเขามีความชัดเจนมากเกี่ยวกับการใช้งานด้านวิชาการที่ไม่ได้รับการคุ้มครองโดยทันทีที่คุณได้รับเงินสำหรับงานวิจัยของคุณ
Christian Clason

ใช่ว่าเป็นมูลค่าการกล่าวขวัญ อย่างไรก็ตามหนึ่งสามารถทดสอบได้ฟรี:] และถ้ามันพิสูจน์ว่ามีประโยชน์มันไม่ใช่สิ่งที่แพงที่สุดในโลก
Misery

7

แพคเกจพื้นที่เก็บข้อมูลไม่ปลอดภัยที่จะใช้กับเธรดเนื่องจากวิธีการรวบรวม ฉันรายงานข้อผิดพลาดในฟอรัม Lapackแต่จะใช้เวลานานสำหรับการแก้ไขปัญหาหรือวิธีแก้ไขเพื่อหยดลงในที่เก็บ หากคุณรวบรวมด้วยตัวเองโปรดเพิ่ม "-frecursive" ใน gfortran


6

จากประสบการณ์ของผมวิธีที่ดีที่สุดในการใช้ blas / lapack กับ Ubuntu รุ่นล่าสุดคือการใช้ openblas แบบแพ็คเกจ

สำหรับสิ่งที่คุ้มค่าฉันส่วนใหญ่ใช้ blas / lapack ผ่าน python numpy / scipy และการใช้ openblas เร่งพีชคณิตเชิงเส้นบางส่วนด้วยความเร็ว 200x เทียบกับค่าเริ่มต้น ฉันได้ลองใช้ ATLAS ที่กำหนดเองแล้ว แต่มันก็เจ็บปวดมากและไม่ได้ให้อะไรมากหาก speedup เทียบกับ openblas แต่ฉันอาจทำผิดไป

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