2

主要问题(#1):
有没有什么秘诀可以让 anaconda R (请不要使用其他 R,其他 R 没有问题)在 Ubuntu 上使用常驻 BLAS 子系统?

根据环境变量 OMP_NUM_THREADS 的值,同一主机上的其他数值应用程序 (Octave) 正在证明 BLAS 子系统安装是有效的,并且对于数值矩阵运算具有预期的高性能。将这个非 anaconda 软件挂接到驻留的 BLAS 子系统中不需要特殊技巧。

相关问题(#2):英特尔 MKL
BLAS 子系统 是否与 anaconda 一起分发,并且可以被 anaconda R 使用,作为 OpenBLAS 的后备?在这种情况下,如何激活 MKL BLAS?

程序htop在基准运行期间仅由 Anaconda R 显示单核 100% 利用率。出乎意料的是,Anaconda R 无法使用 OpenBLAS 进行并行矩阵代码。与使用普通 R 而不是 anaconda R 的参考机器相比,观察到 > 40 倍的显着减速。这是一个不可接受的性能问题。

blas 子系统安装本身使用 GNU Octave 包通过运行数值基准验证为正确且功能齐全,当OMP_NUM_THREADS=1更改为时显示出预期的出色改进OMP_NUM_THREADS=16,这对于测试硬件来说是适当的值。

最后一个问题(#3):
anaconda 维护者供应商是否有意构建仅用于英特尔 MKL的 R 二进制文件,不包括 OpenBLAS 子系统?

谢谢阅读。

请求任何回复仅限于具有实际使用 MKS 或 OpenBLAS 并仅通过 anaconda 软件包成功使用经验的人。感谢您的理解。

随意使用我的基准:

# Plain old R, OpenBLAS, OMP_NUM_THREADS=4, Intel Core i7-920, 4 HW cores:
n=5e3
print(system.time({ x <- replicate(n, rnorm(n)); tcrossprod(x) }))
# elapsed: 6.1 

# Anaconda R, OpenBLAS, OMP_NUM_THREADS=16, 2 x Intel Xeon-2690, 16 HW cores:
n=5e3
print(system.time({ x <- replicate(n, rnorm(n)); tcrossprod(x) }))
# elapsed: 291.8

GNU Octave benchmarks on same machine 2 x Intel Xeon-2690:
**Note GNU Octave is outside of anaconda**

ga@ga-HP-Z820:~/projects/blas_bench$ bash octave_benchmark.sh
Run program in octave using NVBLAS GPU-parallel algebra code, not CPU. LD_PRELOAD=libnvblas.so:
[NVBLAS] NVBLAS_CONFIG_FILE environment variable is set to 'nvblas.conf'
[NVBLAS] NVBLAS_CONFIG_FILE environment variable is set to 'nvblas.conf'
Elapsed time:
 0.012405
Gigaflops:
   7.0905e+05
Run program in octave using OpenBLAS CPU-parallel algebra code. OMP_NUM_THREADS=16 LD_PRELOAD=libblas.so.3:
Elapsed time:
 17.559
Gigaflops:
 500.95
Same but without LD_PRELOAD=libblas.so.3, does it still really run fast, indicating OpenBLAS is still used? OMP_NUM_THREADS=16:
Elapsed time:
 16.063
Gigaflops:
 547.61
Run program in almost plain old octave: This might still use OpenBLAS since its default ON on this host. Setting OMP_NUM_THREADS=1 so its nearly stock.
Elapsed time:
 233.34
Gigaflops:
 37.696

(遗憾的是,由于 NVIDIA 专有视频驱动程序安装在某些时候被 Ubuntu 自动更新损坏,请忽略未完成测试的 NVBLAS。)

4

0 回答 0