Hiệu suất khác nhau giữa ATLAS và MKL?


31

ATLAS là một thay thế BLAS / LAPACK miễn phí tự điều chỉnh cho máy khi được biên dịch. MKL là thư viện thương mại được vận chuyển bởi Intel. Hai thư viện này có thể so sánh được khi nói về hiệu suất, hay MKL có ưu thế hơn đối với một số nhiệm vụ không? Nếu vậy, cái nào?


Câu trả lời:


18

MKL (từ Intel) được tối ưu hóa cho bộ xử lý Intel và có thể có "ưu thế" trong nhiều trường hợp. Nhưng nó cũng "nổi tiếng" khi chọn đường dẫn mã "tệ nhất" cho bộ xử lý AMD, như được mô tả ở đây .


12

BLAS không phải là nguyên khối. BLAS1 và BLAS2 bị giới hạn băng thông bộ nhớ và bạn không thể làm gì nhiều để tăng tốc chúng vượt quá mức rõ ràng (không kiểm soát vòng lặp, chặn bộ đệm cho cấp độ 2). BLAS3 thú vị hơn và điểm chuẩn nguyên mẫu ở đây là phép nhân ma trận. Theo hiểu biết của tôi, GOTOBlas luôn là người chiến thắng rõ ràng ở đây, xem ví dụ so sánh này hoặc so sánh nàybiện minh này .

Bây giờ là nhiều năm sau, và chúng tôi có Dự án BLIS . Nó là sự thay thế miễn phí tốt nhất cho MKL.


4
Matt đúng, nhưng GotoBLAS không còn được phát triển. Nó vẫn hoạt động khá tốt đối với một số bộ xử lý hiện đại, nhưng MKL chắc chắn sẽ vượt qua DGEMM trên các bộ xử lý trong tương lai nếu chưa có. Ví dụ, chúng tôi chưa thử nghiệm nó trên West 4.0.3, nhưng tôi sẽ không ngạc nhiên nếu GotoBLAS đã bị mất.
Bill Barth

2
Tiến sĩ Goto đã được mua bởi M $. Nỗi buồn . . .
meawoppl

2
OpenBLAS là dự án mã nguồn mở được chia từ GotoBLAS. github.com/xianyi/OpenBLAS
ShadowWar Warrior

Goto hoạt động trên MKL ngay bây giờ. Không còn nỗi buồn :-)
Jeff

6

Hồ sơ, đừng suy đoán! (cũng hoạt động như “Benchmark, đừng suy đoán!” )

Không có gì chung chung có thể nói, nó phụ thuộc rất nhiều vào các tác vụ bạn muốn thực hiện (ví dụ BLAS 1/2/3) và phần cứng bạn đang sử dụng (rõ ràng, Intel MKL không chạy trên bộ xử lý ARM, cho ví dụ, nhưng ngay cả trong số các bộ xử lý Intel, bạn có thể mong đợi sự khác biệt về hiệu năng).


Một điều tôi nghĩ đáng nói là AMD cũng cung cấp các thư viện toán học được điều chỉnh cho bộ xử lý của họ, Thư viện toán học AMD Core . Nó không giàu tính năng như MKL của Intel, nhưng nó bao gồm BLAS.


Thật. Có rất nhiều bằng chứng giai thoại (và hồ sơ thực tế) để sao lưu các câu trả lời khác ở đây (bằng chứng là các liên kết). Tuy nhiên, số dặm của bạn có thể thay đổi, và nó luôn giúp hồ sơ để biết rằng bạn đúng.
Geoff Oxberry

1
Thật khó chịu khi hồ sơ, vì MKL là $ 499. Tuy nhiên, họ cung cấp bản dùng thử 1 tháng
Lyndon White

@LyndonWhite có còn như vậy không? Trang tải xuống dường như hiển thị miễn phí
Luciano

Vâng, tôi tin rằng nó bây giờ miễn phí, tôi thấy rất nhiều người đang sử dụng nó.
Lyndon White

6

Các câu trả lời trước cho câu hỏi này đã bao gồm hầu hết các điểm nổi bật, nhưng tôi muốn thêm một nhận xét liên quan đến vấn đề này:

MKL có ưu thế cho một số nhiệm vụ không?

Nhóm MKL ở một vị trí duy nhất để biết về các tập lệnh của Intel trong tương lai và việc triển khai chúng trong các bộ xử lý cụ thể. Hơn nữa, họ có quyền truy cập vào bộ mô phỏng bộ xử lý độc quyền và phần cứng tiền sản xuất mà không ai ngoài Intel có thể sử dụng. Do đó, MKL có ưu thế về mức độ hiểu biết về các sản phẩm trong tương lai và khi họ có được kiến ​​thức này. Do đó, không quá ngạc nhiên nếu họ tạo ra các triển khai BLAS tốt hơn bất kỳ ai khác, ít nhất là sớm trong vòng đời của một sản phẩm có các tính năng mới.

Mặt khác, Intel đã khá cởi mở về tập lệnh AVX-512 và đã cung cấp Trình mô phỏng phát triển phần mềm Intel® (SDE) cho phép các nhà phát triển mô phỏng các hướng dẫn AVX-512 trên các bộ xử lý không hỗ trợ các bộ xử lý này. Do đó, sẽ không quá ngạc nhiên nếu việc triển khai BLAS nguồn mở chất lượng cao có sẵn cho các bộ xử lý Intel hỗ trợ AVX-512 sớm trong vòng đời của các sản phẩm này.

Tất nhiên, có bao nhiêu sự khác biệt để có thông tin chi tiết về một bộ xử lý cụ thể so với các nguyên tắc cơ bản của thuật toán đại số tuyến tính dày đặc không được giải quyết đầy đủ. Các trích dẫn sau đây giải quyết vấn đề này tốt hơn tôi có thể:

Về lý thuyết, không có sự khác biệt giữa lý thuyết và thực hành. Nhưng, trong thực tế, có.

Tiết lộ đầy đủ: Tôi làm việc cho Intel.


Có bất kỳ cơ hội nào có MKL mở nguồn?
Royi

Cho mục đích gì? MKL đã miễn phí như trong bia. Có giá trị giáo dục lớn hơn nhiều trong việc đọc mã nguồn của BLIS. Nếu bạn muốn đọc lắp ráp, hãy thử OpenBLAS.
Jeff

1

Tôi nghĩ rằng sự khác biệt chính giữa các thư viện BLAS của nhà cung cấp và các thư viện BLAS nguồn mở là thời gian cần thiết cho nguồn mở để hỗ trợ các tính năng phần cứng mới nhất.

Vì BLAS được sử dụng rộng rãi, nên nhà cung cấp sẽ quan tâm đến việc hỗ trợ các tính năng phần cứng mới nhất. Ví dụ, hãy xem xét các phần mở rộng vectơ AVX của Intel được giới thiệu với bộ xử lý "cầu cát" vào tháng 1 năm 2011. MKL đã hỗ trợ AVX ngay cả trước khi CPU có sẵn nhưng chỉ gần đây ATLAS (cuối năm 2011) đã bắt đầu triển khai hỗ trợ cho AVX .

Ngoài ra, nếu ứng dụng của bạn thực sự cần hiệu năng và trước khi bạn bắt đầu điểm chuẩn các thư viện BLAS khác nhau hoặc bắt đầu hack xung quanh việc tối ưu hóa mọi thứ: hồ sơ ứng dụng của bạn. Điều thông thường là trực giác của con người không phải là một công cụ dự đoán hồ sơ rất hiệu quả, ít nhất tôi biết là không phải của tôi! Vì vậy, thay vì dành thời gian tối ưu hóa ngẫu nhiên, hãy lập hồ sơ cho ứng dụng của bạn và tiếp cận một cách có hệ thống từng nút thắt cổ chai.

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.