มีการใช้งานระดับอ้างอิงของ BLAS ใน C / C ++ หรือไม่


11

การใช้งาน netlib BLAS เป็นข้อมูลอ้างอิงที่ยอดเยี่ยมโดยส่วนใหญ่จะไม่ได้รับการปรับปรุงและจัดทำเอกสารอย่างดี (เช่นzgemm ) อย่างไรก็ตามมันอยู่ใน Fortran 77 ทำให้ไม่สามารถเข้าถึงผู้ที่มีการศึกษาการเขียนโปรแกรมที่ทันสมัย มีการใช้งานระดับอ้างอิงของ BLAS เช่น netlib ใน C / C ++ หรือไม่

คำตอบ:


10

คุณเคยดูการนำGNU Scientific Library มาใช้หรือไม่? ฉันพบว่าซอร์สโค้ดสามารถอ่านได้อย่างเพียงพอและมีการบันทึกเป็นประจำ


ดูดีกับผม. เอกสารค่อนข้างขาดหายไป แต่ชื่อตัวแปรนั้นได้รับเลือกอย่างดีพอที่ฉันคิดว่าชัดเจน ฉันอาจจะเสริมความคิดเห็นเปิดของรูทีน netlib BLAS คุณมีปัญหาอะไรกับ? คุณมีทางเลือกอื่นหรือไม่?
Max Hutchinson

6

การใช้งานภาษา C ของ BLAS ที่โดดเด่นคือ ATLAS ในบรรดาคุณสมบัติที่มีประโยชน์:

  1. รูทีนพีชคณิตนำมาใช้ทั้งในรูปแบบ C ที่ตรงไปตรงมาเช่นเดียวกับแอสเซมเบลอร์แอสเซมเบลอร์ที่ปรับให้เหมาะสมที่สุดสำหรับสถาปัตยกรรมและตัวแปรหลายชุด
  2. ระบบ build ประกอบไปด้วย "auto-tuner" ซึ่งรวบรวมหลายตัวแปรของไลบรารี ATLAS เพื่อสร้างว่าตัวใดจะเร็วที่สุดในเครื่องที่กำหนด

http://math-atlas.sourceforge.net/


ฉันดู ATLAS แต่พลาดไป พา ธ ไปยังการใช้งานอ้างอิงคือ "src / blas / reference" โดยมี "ref" แทรกระหว่างอักขระประเภทและชื่อรูทีนและผนวกเข้ากับอาร์กิวเมนต์ของอักขระ
Max Hutchinson


1

สำหรับการใช้งานที่มีประสิทธิภาพสูงซึ่งไม่เพียง แต่เป็นหนึ่งในการทำงานที่มีประสิทธิภาพสูงสุด (ดีกว่า 85% ของยอดสูงสุดใน 60 คอร์ของ Intel Xeon Phi) แต่ยังเป็นงานเขียนที่สวยงามที่สุดอีกด้วยดูที่ BLIS:

https://github.com/flame/blis


สิ่งนี้ดูเหมือนจะไม่อ้างว่าเป็นการใช้งานระดับอ้างอิง
mabraham

เราชอบที่จะทำให้มันบางอย่างเป็นการดำเนินการอ้างอิงที่มีประสิทธิภาพสูง
Robert van de Geijn

0

ฉันมีการใช้งานของบิตบางส่วนของหน่าย / LAPACK ในRNPและRNP2


นี่เป็นเรื่องที่น่าสนใจ แต่มันเป็น post-BLAS อย่างแน่นอนและตรงไปตรงมาน้อยกว่า GSL และการใช้งานการอ้างอิงใน ATLAS
Max Hutchinson

-1

ขณะนี้เรากำลังทำงานในหลักสูตร Massive Open Online "LAFF-On High-Performance Computing" ที่ใช้ dgemm เป็นตัวอย่างที่นำไปสู่หนึ่งในระดับที่แตกต่างกันของการขนาน: ระดับคำสั่ง OpenMP, MPI

นี่ไม่ใช่การใช้งานอ้างอิงสำหรับ BLAS แต่เป็นการอ้างอิงถึงวิธีการเขียนโค้ด BLAS (สำหรับประสิทธิภาพ) เพื่อรับทราบข้อมูลโปรดเยี่ยมชมwww.ulaff.net

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