You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-24Lines changed: 13 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,30 +10,20 @@ Similar packages are [Yeppp.jl](https://github.com/JuliaMath/Yeppp.jl), which wr
10
10
11
11
## Basic install
12
12
13
-
To use IntelVectorMath.jl, you must have the shared libraries of the Intel Vector Math Library available on your system, for which you currently have two options:
14
-
15
-
### 1. MKL.jl
16
-
The easiest option is to use [MKL.jl](https://github.com/JuliaComputing/MKL.jl) via
This will overwrite your julia sysimage to use MKL instead of OpenBLAS which could break compatability with certain packages and is difficult to reverse without reinstalling julia from scratch. In addition, MKL.jl is currently broken on Windows, so you can only use the following option. Please see the MKL.jl repository for more information.
22
-
23
-
### 2. Standalone MKL
24
-
You can also install MKL directly [from intel](https://software.intel.com/en-us/mkl/choose-download). For macOS and Windows this requires a free registration, on Linux this can be done via the command line, as seen [here](https://github.com/JuliaMath/IntelVectorMath.jl/blob/d4f8dd4083cf228cd493a4aed9964f1bc0f08d4f/.github/workflows/main.yml#L53).
25
-
There is also the `intel-mkl-slim` package in the AUR that works well.
26
-
27
-
Note that intel MKL has a separate license, which you may want to check for commercial projects (see [FAQ](https://software.intel.com/en-us/mkl/license-faq)).
17
+
Since version 0.3 IntelVectorMath downloads its own version of MKL and keeps only the required files in its own directory. As such installing MKL.jl or MKL via intel are no longer required, and may mean some duplicate files if they are present. However, this package will adopt the new artifact system in the next minor version update and fix this issue.
28
18
29
-
### IntelVectorMath
30
-
To install IntelVectorMath.jl run
19
+
In the event that MKL was not installed properly you will get an error when first `using` it. Please try running
31
20
```julia
32
-
julia> ] add IntelVectorMath
21
+
julia> ] build IntelVectorMath
33
22
```
34
-
If you used this package prior to its renaming, you may have to run `] rm VML` first. Otherwise there will be a conflict due to the UUID.
23
+
If this does not work, please open an issue and include the output of `<packagedir>/deps/build.log`.
35
24
36
-
In the event that MKL was not installed properly you will get an error when first `using` it.
25
+
#### Renaming from VML
26
+
If you used this package prior to its renaming, you may have to run `] rm VML` first. Otherwise there will be a conflict due to the UUID.
37
27
38
28
## Using IntelVectorMath
39
29
After loading `IntelVectorMath`, you have the supported function listed below, for example `IntelVectorMath.sin(rand(100))`. These should provide a significant speed-up over broadcasting the Base functions.
@@ -253,14 +243,13 @@ Next steps for this package
253
243
*[x] Move Testing to GitHub Actions
254
244
*[x] Add test for using standalone MKL
255
245
*[x] Update Benchmarks
256
-
*[ ] Add tests for mutating functions
246
+
*[x] Add tests for mutating functions
247
+
*[x] Add own dependency management via BinaryProvider
248
+
*[ ] Update function list in README
249
+
*[ ] Adopt Julia 1.3 artifact system, breaking backwards compatibility
257
250
258
251
259
252
260
253
## Advanced
261
-
IntelVectorMath.jl works via Libdl which loads the relevant shared libraries. Libdl automatically finds the relevant libraries if the location of the binaries has been added to the system search paths.
262
-
This already taken care of if you use MKL.jl, but the stand-alone may require you to source `mklvars.sh` in the shell you are opening the REPL in. The default command on Mac and Ubuntu is `source /opt/intel/mkl/bin/mklvars.sh intel64`. You may want to add this to your `.bashrc`.
263
-
Adding a new `*.conf` file in `/etc/ld.so.conf.d` also works, as the `intel-mkl-slim` package in the AUR does automatically.
264
-
265
-
Further, IntelVectorMath.jl uses [CpuId.jl](https://github.com/m-j-w/CpuId.jl) to detect if your processor supports the newer `avx2` instructions, and if not defaults to `libmkl_vml_avx`. If your system does not have AVX this package will currently not work for you.
254
+
IntelVectorMath.jl uses [CpuId.jl](https://github.com/m-j-w/CpuId.jl) to detect if your processor supports the newer `avx2` instructions, and if not defaults to `libmkl_vml_avx`. If your system does not have AVX this package will currently not work for you.
266
255
If the CPU feature detection does not work for you, please open an issue.
0 commit comments