1. 准备工作
确保你的Julia环境中包含BinaryProvider
和PackageCompiler
这两个库,如果没有,请使用如下命令下载
julia> import Pkg
julia> Pkg.add("BinaryProvider")
julia> Pkg.add("PackageCompiler")
这两个库在build
过程中可能会报错,但不用担心,使用Pkg.build("库名")
重新build
即可
2. 下载MKL.jl
文件
下载地址是 GitHub - JuliaLinearAlgebra/MKL.jl: Intel MKL linear algebra backend for Julia
下载之后解压缩得到MKL.jl-master
文件夹
3. 编译
进入MKL.jl-master\deps
文件夹,在此位置利用命令行窗口或 Windows PowerShell
(Shift
+鼠标右键即可)打开Julia
,执行命令
julia> include("build.jl")
执行过程中,程序会自动创建 ..\deps\usr
、下载 IntelOpenMP
和 MKL
文件,并将下载的文件保存在 ..\deps\usr\downloads
中。 不过由于 MKL
文件比较大,下载速度比较慢,建议手动下载 MKL
文件,下载地址是 Release MKL-v2019.0.117 · JuliaPackaging/Yggdrasil · GitHub , 选择MKL.v2019.0.117.x86_64-w64-mingw32.tar.gz
或 MKL.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
则编译成功。