问题标签 [intel-mkl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
random - 使用 MKL VSL 的并行随机数不并行?[fortran90]
我已经实现了使用 MKL VSL 库生成随机数向量的代码:
例如,使用 4 和 32 线程时,我看不到任何加速。
我使用英特尔编译器版本 13.1.3 并编译
这就像随机数不是并行生成的。
这里有什么提示吗?
谢谢,
埃里克。
c++ - 如何使用 MKL 执行线程稀疏矩阵 - 向量乘法?
我需要执行矩阵向量乘法,其中矩阵是复杂的、对称的并且有四个非对角线非零频带。到目前为止,我正在使用稀疏的 BLAS 例程 mkl_zdiasymv 来执行乘法,它在一个核心上运行良好。如果我可以通过使用多线程(例如 openMP)来提高性能,我想尝试一下。据我了解,一些(很多?)MKL 例程是线程化的。但是,如果我使用 mkl_set_num_threads(4) 我的程序仍然在一个线程上运行。
这里举一个具体的例子是我编译的一个小测试程序(使用 icc 14.01):
mkl_test_mp.cpp:
甚至可以以这种方式并行化吗?我究竟做错了什么 ?还有其他建议可以加快乘法吗?
matlab - 在 Matlab 中哪里可以找到英特尔 MKL
我有一个 MATLAB 订阅,并且我读到 MATLAB 使用英特尔 MKL 库,但我不确定在哪里可以找到与英特尔 MKL 库对应的所有 DLL/文件。我可以在文档中找到关于它们位置的任何提及。
谢谢
multithreading - 从 openmp 并行区域调用多线程 MKL
我有一个具有以下结构的代码
对于 dgemm_,我与多线程 mkl 链接。我希望 mkl 使用所有可用的 8 个线程。最好的方法是什么?
python - 比较 NumPy 与 NumPy+MKL 的性能
所以,我从源代码编译 NumPy,链接到 MKL。现在我想比较使用和不使用 MKL 的 NumPy 的性能。有什么办法可以“告诉”NumPy 不要使用 MKL,这样我就可以生成基准测试了吗?例如,使用 numExpr 我们可以做到numexpr.use_vml = False
。NumPy 有类似的东西吗?我真的不想为了这个而在没有 MKL 的情况下编译 NumPy。
(Ubuntu 12.04、Python 2.7.3、NumPy 1.8、英特尔 Composer XE 2013 SP1)
python - 如何使用 Enthought python (Canopy) 安装 CVXOPT
在开始之前,让我为这篇文章添加替代标题:
如何使用英特尔 MKL 编译 CVXOPT?
如何更改 CVXOPT 中的 __init__.py 以使用英特尔 MKL 进行编译?
让我解释一下这个问题。我正在尝试使用 Enthought python 安装 pystruct,因为与 Ubuntu 包管理器中的 python 相比,Enthought python 提供了显着的速度。加速主要是由于使用英特尔 MKL 库编译后端线性代数库。我不得不说 CVXOPT 和 pystruc 与 gnu python 配合得很好。
我想知道是否有人尝试使用 Enthought python(Canopy 以前的 EPD)安装 CVXOpt?它需要使用英特尔 MKL 编译。
当我构建 CVXOPT 并尝试将其导入 Enthought python 时,我收到以下错误(这似乎是链接器错误):
但是,如果我尝试在默认 python 中导入它,我不会收到错误(测试也有效)。
我想问题在于链接到错误的库。我也有 INTEL MKL,以防我需要针对 MKL 重新编译 CVXOPT(这似乎是 blas Enthought 正在使用的版本)。我在文档中找不到任何说明如何使其与 Enthough 一起使用,请告知。
更新:正如我之前提到的,CVXOPT 使用 gnu python 编译和运行。我做了以下技巧,这看起来不是一个好主意,但它确实有效:
我从这篇文章中学到的:(libgfortran:未找到版本“GFORTRAN_1.4”)
现在,问题是这样做的干净方法是什么?我怎样才能只为一个包预加载库。或者使用英特尔 MKL 编译 CVXOPT 并且根本不需要预加载库?
谢谢,
凯汉
c++ - MKL 或 BLAS 例程将向量乘以异地标量
我在仿真软件中工作,对数组进行的众多操作之一就是将向量缩放一个数字。
我有这样的代码:
我有可用的 MKL 库,因此如果我的计算是“就地”完成的,则可以编写以下内容:
但是,这会改变input
变量,这不是我想要的。
我尝试使用,mkl_domatcopy()
但此操作非常慢。
c++ - LD_BIND_NOW:符号查找错误,但可执行文件仍在运行
我正在尝试使用setenv LD_BIND_NOW TRUE
. 当我在启用此选项的情况下运行可执行文件时,出现错误
但是,如果我然后删除LD_BIND_NOW
环境变量,程序执行得很好(直到终止,然后它报告内存损坏——尽管这可能是无关的)。
所以我有点困惑:当程序出现符号查找错误时,它是如何执行的?我认为它必须终止,因为程序是用 C++ 编写的,而不是 Java。(请参阅此处以供参考。)
此外,此错误是否意味着 myrpath
设置不正确,或者 MKL 构建不正确?有没有可以在有限时间内实现的修复?
visual-studio-2010 - 在 Visual Studio 2010 中使用英特尔 MKL
在我的 Windows 7 64 位电脑上安装英特尔 MKL 后,我的印象是运行提供的脚本mklvars.bat -arch
可以"install_dir"\mkl\bin
将 mkl.h 包含在我的 Visual Studio 2010 项目中。相反,我收到一个错误,即 VS 找不到头文件,有人知道我能做些什么来解决这个问题吗?
ubuntu - -fopenmp 在 Ubuntu 13.10 上不起作用
我正在使用英特尔 MKL 库和 GCC 编译器构建相同的应用程序,并使用英特尔建议的所有标志。要使用 GCC OMP 实现,建议使用 -fopenmp,它将程序与 -lgomp 链接。这在 Ubuntu 12.04 上运行良好,但在 Ubuntu 13.10 上 GCC 似乎无法找到正确的符号。任何人都知道我是否做错了什么?
g++ -I$MKLROOT/include -I/home/jjgarcia/mps-bundle-gcc/include -g -O2 -fopenmp -o xy_stuck.exe xy_stuck.cc -O2 -L$MKLROOT/lib -L/home/jjgarcia/ mps-bundle-gcc/lib -lmps -ltensor -lmkl_intel_lp64 -lmkl_core -lmkl_gnu_thread -ldl -lpthread -lf2c
顺便说一句,明确添加 -lgomp 并没有帮助。
这些是错误
使用 -v -v 获取详细输出显示 GCC 调用的链接器。我手动添加了 -lgomp 并且它没有改变。另请注意,链接器不会抱怨找不到 gomp :-?