Skip to content

Commit 444ef3b

Browse files
committed
readme
1 parent 9e07e21 commit 444ef3b

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

README.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,46 @@
1-
# BLISBLAS
1+
# BLISBLAS.jl
2+
3+
BLISBLAS.jl is a Julia package that allows users to use the [BLIS](https://github.com/flame/blis) library for Julia's underlying BLAS. Note that OpenBLAS, which Julia ships by default, will still be used for LAPACK functionality (BLIS only provides BLAS!).
4+
5+
Like [MKL.jl](https://github.com/JuliaLinearAlgebra/MKL.jl) for Intel's MKL, this package is based on [libblastrampoline](https://github.com/JuliaLinearAlgebra/libblastrampoline), which enables picking a BLAS (and/or LAPACK) library at runtime, and **requires Julia 1.7+**.
6+
7+
## Installation
8+
9+
```
10+
] add https://github.com/carstenbauer/BLISBLAS.jl
11+
```
12+
13+
## Usage
14+
15+
Simply `using BLISBLAS` is enough.
16+
17+
The following example is run with `OPENBLAS_NUM_THREADS=64` and `BLIS_NUM_THREADS=64` on a 64-core AMD EPYC 7763 (Milan) CPU.
18+
19+
```julia
20+
julia> using LinearAlgebra, BenchmarkTools
21+
22+
julia> BLAS.get_config()
23+
LinearAlgebra.BLAS.LBTConfig
24+
Libraries:
25+
└ [ILP64] libopenblas64_.so
26+
27+
julia> A = rand(1000,1000); B = rand(1000,1000);
28+
29+
julia> @btime $A * $B;
30+
3.927 ms (2 allocations: 7.63 MiB)
31+
32+
julia> using BLISBLAS
33+
34+
julia> BLAS.get_config()
35+
LinearAlgebra.BLAS.LBTConfig
36+
Libraries:
37+
├ [ILP64] libopenblas64_.so
38+
└ [ILP64] libblis.so
39+
40+
julia> @btime $A * $B;
41+
2.729 ms (2 allocations: 7.63 MiB)
42+
```
43+
44+
## Related packages
45+
46+
* https://github.com/JuliaLinearAlgebra/BLIS.jl

0 commit comments

Comments
 (0)