英特尔MKL /至强融核卸载运行时问题-自动卸载不起作用

时间:2018-08-14 07:40:31

标签: r intel intel-mkl xeon-phi

我已在Windows 10 Pro中使用MPSS 3.8.4和Parallel XE 2017(初始发行版)设置了Xeon phi 3120A。我选择了Parallel XE,因为这是x100系列最后支持的XE。我已经安装了Parallel XE 2017(初始发行版)附带的MKL版本。

我做了什么/设置:

设置了MPSS 3.8.4,并执行了闪烁和ping之类的步骤之后,我检查了micctrl -s显示“ mic0 ready”(Linux映像包含相应的KNC名称),miccheck产生了所有“ pass” micinfo为我提供了协处理器提供的所有关键统计信息。

因此,在我看来,协处理器肯定已安装并被我的计算机识别。我还可以在micsmc gui中看到mic0已启动并正在运行。

然后,我已经设置了环境变量以启用自动卸载,即MKL_MIC_ENABLE = 1,OFFLOAD_DEVICES = 0,MKL_MIC_MAX_MEMORY = 2GB,MIC_ENV_PREFIX = MIC,MIC_OMP_NUM_THREADS = 228,MIC_KMP_AFFINITY =平衡。

问题-自动卸载不起作用

当我去运行R-3.4.3中的一些简单代码(复制后,专门为自动卸载而设计)时,它将继续通过我的主机运行代码,而不是通过Xeon phi运行任何代码。

为此,当我查看micsmc gui时,看不到Xeon Phis上有任何活动。

因此,自动卸载无法正常工作。

R代码:

require(Matrix)
sink("output.txt")
N <- 16000
cat("Initialization...\n")
a <- matrix(runif(N*N), ncol=N, nrow=N);
b <- matrix(runif(N*N), ncol=N, nrow=N);
cat("Matrix-matrix multiplication of size ", N, "x", N, ":\n")
for (i in 1:5) {
  dt=system.time( c <- a %*% b )
  gflops = 2*N*N*N*1e-9/dt[3]
  cat("Trial: ", i, ", time: ", dt[3], " sec, performance: ", gflops, " GFLOP/s\n")
}

我尝试过的其他步骤:

然后我继续设置MKL_MIC_DISABLE_HOST_FALLBACK = 1环境变量,并且按预期的方式,当我运行上述代码时,R终止了。

Using Intel® MKL Automatic Offload on Intel Xeon Phi Coprocessors中,它表示如果HOST_FALLBACK标志处于活动状态并且尝试进行卸载但失败(由于“卸载运行时找不到协处理器或无法正确初始化它”),它将终止程序–这是发生在R完全终止。为了完整起见,在R-3.5.1,Microsoft R Open 3.5.0和R-3.2.1上也会发生此问题。

所以我的问题是:

  1. 要让R代码在Xeon phi上运行,我缺少什么?你是否可以 请告诉我我需要做什么才能完成这项工作?
  2. (链接到 1)有没有一种方法可以检查MKL卸载运行时是否可以看到 至强phi?或设置正确,或有什么问题(如果有) MKL正在初始化Xeon phi?

如果有人可以帮助我,我将表示由衷的感谢–我认为我缺少基本/简单的步骤,并且一直在努力完成这项工作。

在此先感谢

皮疹

0 个答案:

没有答案