在Windows上面编译使用Julia-MKL


#1

1. 准备工作

确保你的Julia环境中包含BinaryProviderPackageCompiler这两个库,如果没有,请使用如下命令下载

julia> import Pkg
julia> Pkg.add("BinaryProvider")
julia> Pkg.add("PackageCompiler")

这两个库在build过程中可能会报错,但不用担心,使用Pkg.build("库名")重新build即可

2. 下载MKL.jl文件

下载地址是 https://github.com/JuliaComputing/MKL.jl
下载之后解压缩得到MKL.jl-master文件夹

3. 编译

进入MKL.jl-master\deps文件夹,在此位置利用命令行窗口或 Windows PowerShellShift+鼠标右键即可)打开Julia,执行命令

julia> include("build.jl")

执行过程中,程序会自动创建 ..\deps\usr、下载 IntelOpenMPMKL 文件,并将下载的文件保存在 ..\deps\usr\downloads 中。 不过由于 MKL 文件比较大,下载速度比较慢,建议手动下载 MKL 文件,下载地址是 https://github.com/JuliaPackaging/Yggdrasil/releases/tag/MKL-v2019.0.117 , 选择MKL.v2019.0.117.x86_64-w64-mingw32.tar.gzMKL.v2019.0.117.i686-w64-mingw32.tar.gz , 具体下载哪一个,可以通过查看程序自动下载的 IntelOpenMP 判断(保持一致),并将下载的 MKL 保存到 ..\deps\usr\downloads中。
程序接下来会自动重新编译Julia

4. 错误解决

build.jl执行完毕之后重启 Julia,可能会遇到错误提示 mkl_intel_thread.dll missing ,解决办法是:
..\deps\usr\bin加入到你的环境变量PATH中。

Julia中执行

julia> using LinearAlgebra
julia> BLAS.vendor()

若执行结果为:mkl则编译成功。