OpenBLAS
prometeo
Our great sponsors
OpenBLAS | prometeo | |
---|---|---|
21 | 10 | |
5,886 | 610 | |
2.0% | - | |
9.8 | 0.0 | |
4 days ago | almost 2 years ago | |
C | Python | |
BSD 3-clause "New" or "Revised" License | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
OpenBLAS
- Assume I'm an idiot - oogabooga LLaMa.cpp??!
-
Learn x86-64 assembly by writing a GUI from scratch
Yeah. I'm going to be helping to work on expanding CI for OpenBlas and have been diving into this stuff lately. See the discussion in this closed OpenBlas issue gh-1968 [0] for instance. OpenBlas's Skylake kernels do rely on intrinsics [1] for compilers that support them, but there's a wide range of architectures to support, and when hand-tuned assembly kernels work better, that's what are used. For example, [2].
[0] https://github.com/xianyi/OpenBLAS/issues/1968
[1] https://github.com/xianyi/OpenBLAS/blob/develop/kernel/x86_6...
[2] https://github.com/xianyi/OpenBLAS/blob/23693f09a26ffd8b60eb...
-
AI’s compute fragmentation: what matrix multiplication teaches us
We'll have to wait until part 2 to see what they are actually proposing, but they are trying to solve a real problem. To get a sense of things check out the handwritten assembly kernels in OpenBlas [0]. Note the level of granularity. There are micro-optimized implementations for specific chipsets.
If progress in ML will be aided by a proliferation of hyper-specialized hardware, then there really is a scalability issue around developing optimized matmul routines for each specialized chip. To be able to develop a custom ASIC for a particular application and then easily generate the necessary matrix libraries without having to write hand-crafted assembly for each specific case seems like it could be very powerful.
-
The Bitter Truth: Python 3.11 vs Cython vs C++ Performance for Simulations
There isn't any fortran code in the repo there itself but numpy itself can be linked with several numeric libraries. If you look through the wheels for numpy available on pypi, all the latest ones are packaged with OpenBLAS which uses Fortran quite a bit: https://github.com/xianyi/OpenBLAS
- Optimizing compilers reload vector constants needlessly
-
Just a quick question, can a programming language be as fast as C++ and efficient with as simple syntax like Python?
Sure - write functions in another language, export C bindings, and then call those functions from Python. An example is NumPy - a lot of its linear algebra functions are implemented in C and Fortran.
-
CL-AUTOWRAP generated (C)BLAS wrapper in QUICKLISP
Is there a canonical (C)BLAS header file? I've been using the one provided by netlib, however OpenBLAS also provides a cblas.h and this also defines some additional functions such as cblas_crotg and cblas_zrotg. What about versioning for header files?
- Russia to Legalize Software Piracy
- Fork() is evil; vfork() is goodness; afork() would be better; clone() is stupid
-
Benchmarking the Apple M1 Max
I used OpenBLAS on my cheap last-generation AMD Ryzen 7 4700U laptop like so:
git clone https://github.com/xianyi/OpenBLAS
prometeo
-
I made a Python compiler, that can compile Python source down to fast, standalone executables.
Honest question: How does pycom compare to similar tools like Nuitka, prometeo, or mypyc?
-
Profiling and Analyzing Performance of Python Programs
If you don't mind switching to a little different syntax of Python, then you also might want to take a look at prometeo - an embedded domain specific language based on Python, specifically aimed at scientific computing. Prometeo programs transpile to pure C code and its performance can be comparable with hand-written C code.
-
Show HN: prometeo – a Python-to-C transpiler for high-performance computing
Four a matrix size 50 it beats Julia by a factor of 10 wow
https://github.com/zanellia/prometeo/blob/master/benchmarks/...
Good point, it should be easy to add Julia to the Fibonacci benchmark. Here is the Python code https://github.com/zanellia/prometeo/blob/master/examples/fi...
This is awesome! The direction of using a subset of python, while leveraging the user base and static typing to accomplish some other everyday task in a different language is very legit IMO.
I took a cursory look at:
https://github.com/zanellia/prometeo/blob/master/prometeo/cg...
It seems quite similar in spirit to
https://github.com/adsharma/py2many/blob/main/pyrs/transpile...
I'm not spending much time on py2many last few months (started a new job). Let me know if any of it sounds useful - especially the ability to transpile to 7-8 languages including Julia, C++ and Rust.
What are some alternatives?
Eigen
GLM - OpenGL Mathematics (GLM)
cblas - Netlib's C BLAS wrapper: http://www.netlib.org/blas/#_cblas
blaze
Boost.Multiprecision - Boost.Multiprecision
ceres-solver - A large scale non-linear optimization library
CGal - The public CGAL repository, see the README below
Octavian.jl - Multi-threaded BLAS-like library that provides pure Julia matrix multiplication
QuantLib - The QuantLib C++ library
ExprTK - C++ Mathematical Expression Parsing And Evaluation Library https://www.partow.net/programming/exprtk/index.html
Vc - SIMD Vector Classes for C++
Klein - P(R*_{3, 0, 1}) specialized SIMD Geometric Algebra Library