ฉันรู้ว่า ATLAS สามารถเพิ่มประสิทธิภาพตัวเองสำหรับเครื่องที่รวบรวมและทำให้เกิดประโยชน์สูงสุดโดยรวบรวมจากแหล่งที่มา มีประโยชน์ในการรวบรวม LAPACK จากแหล่งที่มา? มันจะง่ายกว่าการติดตั้งแพ็คเกจที่สร้างไว้ล่วงหน้า
ฉันรู้ว่า ATLAS สามารถเพิ่มประสิทธิภาพตัวเองสำหรับเครื่องที่รวบรวมและทำให้เกิดประโยชน์สูงสุดโดยรวบรวมจากแหล่งที่มา มีประโยชน์ในการรวบรวม LAPACK จากแหล่งที่มา? มันจะง่ายกว่าการติดตั้งแพ็คเกจที่สร้างไว้ล่วงหน้า
คำตอบ:
OpenBlas ค่อนข้างเร็วคุณสามารถเชื่อมโยงกับ LAPACK ได้ คุณลอง LAPACK / BLAS รุ่น precompiled จากผู้จำหน่าย CPU ของคุณหรือไม่ ตัวอย่างเช่น AMD ACML (ฟรี) หรือ Intel MKL (ฟรีบน linux สำหรับการใช้ที่ไม่ใช่เชิงพาณิชย์และไม่ใช่เชิงวิชาการ) คุณเพียงแค่ต้องแกะและเรียกใช้ไฟล์ติดตั้ง
ในความคิดของฉันข้อได้เปรียบเพียงข้อเดียวของการใช้ ATLAS ก็คือเมื่อคุณใช้ CPU ที่ผิดปกติ ไม่เช่นนั้นให้ใช้จากผู้จำหน่าย CPU นอกจากนี้ยังมี nVIDIA CUDA และ AMD OpenCL เวอร์ชันที่มีให้เลือก
แก้ไข: จำไว้ว่าคุณสามารถสร้างแพ็คเกจ Ubuntu DEB จากแหล่งซึ่งมักจะง่ายกว่าการรวบรวมซอฟต์แวร์จากแหล่งที่มา
libmkl_rt.so
ไฟล์ที่มักจะเชื่อมโยงโดยใช้:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
แพคเกจพื้นที่เก็บข้อมูลไม่ปลอดภัยที่จะใช้กับเธรดเนื่องจากวิธีการรวบรวม ฉันรายงานข้อผิดพลาดในฟอรัม Lapackแต่จะใช้เวลานานสำหรับการแก้ไขปัญหาหรือวิธีแก้ไขเพื่อหยดลงในที่เก็บ หากคุณรวบรวมด้วยตัวเองโปรดเพิ่ม "-frecursive" ใน gfortran
จากประสบการณ์ของผมวิธีที่ดีที่สุดในการใช้ blas / lapack กับ Ubuntu รุ่นล่าสุดคือการใช้ openblas แบบแพ็คเกจ
สำหรับสิ่งที่คุ้มค่าฉันส่วนใหญ่ใช้ blas / lapack ผ่าน python numpy / scipy และการใช้ openblas เร่งพีชคณิตเชิงเส้นบางส่วนด้วยความเร็ว 200x เทียบกับค่าเริ่มต้น ฉันได้ลองใช้ ATLAS ที่กำหนดเองแล้ว แต่มันก็เจ็บปวดมากและไม่ได้ให้อะไรมากหาก speedup เทียบกับ openblas แต่ฉันอาจทำผิดไป