Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider eventually abandoning BLAS/Accelerate #1

Open
norman850 opened this issue Jan 23, 2025 · 1 comment
Open

Consider eventually abandoning BLAS/Accelerate #1

norman850 opened this issue Jan 23, 2025 · 1 comment

Comments

@norman850
Copy link

Hi there,

I think that BLAS, in this day and age, is becoming something of a misfeature...

Compilers have come so far that not only is it becoming rarer to see BLAS code outperform compiled code, but compilers would absolutely consider it a defect if handwritten code can meaningfully outperform compiled code on things as simple as DGEMM.

So while BLAS is certainly a quick way to sometimes get good performance on some problems for some problem sizes on some specific platforms, you might want to consider eventually deprecating BLAS.

You might find https://github.com/romeric/Fastor interesting - it has "meta-level" handwritten code (e.g. for AVX512) that, for me at least, outperforms both MKL and BLIS, significantly so for small problem sizes or the moment there's meaningful opportunities for inter-procedural (caller/callee) optimization.

@istmarc
Copy link
Owner

istmarc commented Jan 26, 2025

Hello,

The long term goal is to eventually abandon BLAS and use std::simd. As far as I know it's still in experimental case and it's still actively been worked on. By using it, we can have platform independent code that will hopefully perform as good or outperform BLAS or even vendor specific BLAS versions like Blis or intel MKL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants