Có triển khai BLAS ở mức tham chiếu trong C / C ++ không?


11

Việc triển khai BLAS của netlib là một tài liệu tham khảo tuyệt vời, hầu hết không được tối ưu hóa và được ghi chép tốt (ví dụ: zgemm ). Tuy nhiên, nó nằm trong Fortran 77, khiến nó có phần khó tiếp cận với những người có nền giáo dục lập trình hiện đại hơn. Có một triển khai BLAS ở mức tham chiếu, như netlib, trong C / C ++ không?

Câu trả lời:


10

Bạn đã xem triển khai của Thư viện Khoa học GNU chưa? Tôi thấy mã nguồn đủ để có thể đọc được và các thói quen được ghi lại tốt.


Co vẻ tôt vơi tôi. Tài liệu này hơi thiếu, nhưng tên biến được chọn đủ tốt để tôi nghĩ nó rõ ràng. Có lẽ tôi sẽ chuẩn bị bình luận mở đầu cho các thói quen BLAS của netlib. Chính xác thì bạn có vấn đề gì? Bạn có một sự thay thế?
Max Hutchinson

6

Một triển khai ngôn ngữ C đáng chú ý của BLAS là ATLAS. Trong số các tính năng hữu ích:

  1. Các thói quen đại số được triển khai cả C đơn giản cũng như các phiên bản hỗ trợ trình biên dịch được tối ưu hóa cao cho nhiều kiến ​​trúc và các biến thể.
  2. Hệ thống xây dựng có tính năng "tự động điều chỉnh", biên dịch nhiều biến thể của thư viện ATLAS để thiết lập biến thể nào sẽ nhanh nhất trên máy đã cho.

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


Tôi đã xem ATLAS nhưng bỏ lỡ điều này. Đường dẫn đến việc thực hiện tham chiếu là "src / blas / Reference", với "ref" được chèn giữa ký tự loại và tên thường trình và với các đối số ký tự được nối thêm.
Max Hutchinson


1

Để triển khai hiệu suất cao, không chỉ có hiệu suất cao nhất (tốt hơn 85% so với đỉnh trên 60 lõi của Intel Xeon Phi), mà còn là văn bản đẹp nhất, hãy xem BLIS:

https://github.com/flame/blis


Điều này có vẻ như nó không phải là một triển khai ở mức tham chiếu
mabraham

Chúng tôi muốn làm mỏng nó như là một triển khai tham chiếu hiệu suất cao.
Robert van de Geijn

0

Tôi có triển khai một số bit BLAS / LAPACK trong RNPRNP2 .


Điều này rất thú vị, nhưng nó chắc chắn là hậu BLAS và ít đi thẳng hơn so với GSL và việc triển khai tham chiếu trong ATLAS.
Max Hutchinson

-1

Chúng tôi hiện đang làm việc trên một khóa học trực tuyến mở rộng lớn, "Máy tính hiệu năng cao LAFF" sử dụng dgemm làm ví dụ dẫn một người qua các cấp độ song song khác nhau: cấp độ chỉ dẫn, OpenMP, MPI.

Đây không phải là một triển khai tham chiếu cho BLAS, nhưng nó là một tài liệu tham khảo về cách mã hóa BLAS (cho hiệu suất). Để được thông báo, hãy truy cập www.ulaff.net

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.