问题标签 [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.

0 投票
2 回答
1919 浏览

python - 在 Linux 上使用 gcc-4.7.2 安装 numpy-1.7.1 和 MKL-10.3

几天来,我一直在尝试在系统上numpy-1.7.1使用时安装。我不久前使用相同的编译器成功编译。MKL-10.3python-2.7.5gcc-4.7.2linux-2.6.18-308.24.1.el5R-3.0.1MKL

我将site.cfg文件修改numpy-1.7.1如下:

当我调用时python setup.py install,它会找到 和的MKL库。到目前为止,没有任何投诉或警告。一旦我尝试用.BLASLAPACKnumpy

这似乎是一个已知问题(指向源的链接),因此libiomp5不由libmkl_rt. 当我将路径添加到libiomp5中的library_dirs变量时site.cfgnumpy无法检测到所有 MKL库。

我什至尝试了以下方法来强制gcc使用它自己的openMP库/头文件,但无济于事。

对于此事,我将不胜感激任何形式的帮助或建议。不要犹豫,让我知道我在这个线程中省略了关键信息。

编辑:我在一个x86_64平台上运行。

0 投票
1 回答
381 浏览

multithreading - CPU上最快的多线程迭代稀疏求解器?

英特尔 MKL 库提供了一组优化的线程化函数,但对于迭代稀疏求解器 (ISS),预处理共轭梯度法似乎并不容易被线程化。

更准确地说,使用不完全 Cholesky 分解或 ILU 等预处理技术,在某些时候需要稀疏三角求解器,但执行三角求解mkl_cspblas_?csrtrsv的相应 MKL 函数不是线程化的。我的问题是,是否有任何稀疏求解器库可以在多核处理器上击败当前版本的 MKL(未完全线程化)?

0 投票
1 回答
109 浏览

c++ - 我可以将矩阵的子集传递给 MKL 中的另一个函数吗?

我正在尝试优化 MKL 中的许多矩阵计算,这需要我使用以下方法分配大块内存:

double* test_matrix = (double*)mkl_malloc(n * sizeof(double), 64).

最近,我发现了很多内存分配错误,这些错误很难复制,甚至更难调试。我担心 MKL 将一些内部标头数据放入堆中,而我使用当前方法没有考虑这些数据。

是否有将 MKL 矩阵的子集传递给另一个函数的“官方”方式?传递一份副本肯定会过多地增加我的开销。我目前正在提供对矩阵子集的引用,如下所示:

0 投票
2 回答
510 浏览

fortran - 使用比使用更多的进程调用 BLACS

我想创建一个大量使用 SCALAPACK 的并行程序。SCALAPACK 的基础是 BLACS,它本身依赖 MPI 进行进程间通信。

我想以定义数量的进程(例如机器上的内核数)启动程序,并让算法决定如何使用这些进程进行计算。

作为测试用例,我想使用 10 个进程。其中 9 个进程应排列成网格 ( BLACS_GRIDINIT),第 10 个进程应等到其他进程完成。

不幸的是,OpenMPI 崩溃是因为最后一个进程没有从 BLACS 进入 MPI 上下文,而其他进程却进入了。

问题:使用 BLACS 处理比需要的更多的正确方法是什么?

我做了一些额外的MPI_INITMPI_FINALIZE调用的实验,但我的尝试都没有成功。


我从 Intel MKL 的示例代码开始(稍微缩短了一点):


更新:我调查了源代码,BLACS看看那里发生了什么。

如果以前没有发生这种情况,该调用BLACS_PINFO会使用 初始化 MPI 上下文。MPI_INIT这意味着,在这一点上,一切都按预期工作。

最后,调用BLACS_EXIT(0)应该释放所有资源BLACS,如果参数是0,它也应该调用MPI_FINALIZE。不幸的是,这没有按预期工作,我的最后一个过程没有调用MPI_FINALIZE.

作为一种解决方法,如有必要,可以询问MPI_FINALIZED并致电。MPI_FINALIZE

更新 2:我之前的尝试是使用Intel Studio 2013.0.079OpenMPI 1.6.2on完成的SUSE Linux Enterprise Server 11

在阅读了cteo的回答后,我尝试使用Ubuntu 12.04gfortran 4.6.3, OpenMPI 1.4.3, BLACS 1.1)给出的工具编译这个例子并且成功了。

我的结论是,英特尔的实施似乎有问题。我将在不久的将来使用 的最新服务版本重试此示例Intel Studio,但不要期望任何更改。

但是,我将不胜感激任何其他(也许更好)的解决方案。

0 投票
1 回答
658 浏览

c++ - const void* 作为 C++ 中 MKL Blas 例程的复数

我被困在调用 MKL Blas 函数cblas_zgemv

有两个系数 alpha 和 beta 是复数:

. 但是在函数的定义中:

我试图设置 alpha = complex(1.0,0) 但这会给我一个错误:

我能做些什么?我不明白这个 const void* 是什么......

0 投票
1 回答
852 浏览

fft - 英特尔至强融核上的 MKL 3D 双精度复数 FFT

我为 3 维 FFT(MKL 接口)开发了 C 代码,以便在英特尔 MIC 平台上本地运行。

对于复数到复数的转换,数据元素是双精度复数。我使用填充的前导维度,mkl_malloc() 64 字节对齐,并为数组使用 radix-2 维度我最终得到的性能约为 50 Gflop/s。

对于类似类型的转换,我无法在任何地方执行列表。谁能告诉我这对 Xeon Phi 是否合理(满意)?

0 投票
1 回答
306 浏览

windows - gfortran 是否放弃了对 Cygwin 的 svml 支持?

我在全新的 Cygwin 安装上编译 Fortran 代码时遇到了一些问题,我可以追溯到对英特尔svml(短向量数学库)库中函数的未定义引用。

具体来说,我收到了表格错误

并且该函数vmldPow2svml库的一部分,如此处所示我将其作为选项传递给我的 makefile 中的 gfortran

(我也在使用库lapacklblas。)

该文件在我的笔记本电脑上编译得很好,在 Windows 7 上运行 Cygwin 1.7.17。(大约在 2013 年 4 月 18 日安装;gfortran 版本是 4.5.3。)我现在正在尝试在新桌面上复制安装,同样运行 Windows 7,并已安装 Cygwin 1.7.25。我在 32 位和 64 位安装(分别使用 gfortran 4.7.3 和 4.8.1 运行)以及在我的桌面上新安装 64 位 Cygwin 时都遇到了上述错误。我也没有在同一个桌面上启动 Linux 时遇到错误,目前我无法解决。

我很清楚svml,在较新的 Cygwin 安装中,有 (a) 到 的链接断开,或 (b) 该库缺少部分。我已尽我所能广泛搜索恢复该库的方法,但它似乎是 GNU 编译器的固有部分。事实上,GNU 编译器是否放弃了对这个库的支持?如果没有,那么我推测我需要修复库或链接到它的文件。在那种情况下,这个库在哪里可用?我应该修复哪些文件以及如何修复?

不过,我承认,我很可能会找错树,如果是这样的话,我很乐意直截了当。我应该在哪里寻找?

0 投票
2 回答
10325 浏览

c++ - 如何链接英特尔 MKL 库,只使用 cblas_dgemm 函数

我想测试Intel MKL矩阵乘法,所以我包含并且我只使用 cblas_dgemm 函数,但它总是说

我也链接了-lmkl_core -lmkl_blas95_lp64 -lmkl_lapack95_lp64,但是我在$MKLROOT/lib/intel64/目录中的库之间测试了很多组合,错误仍然存​​在。有人可以给我一些建议吗?谢谢。

0 投票
1 回答
210 浏览

c++ - 英特尔酷睿 i7-3770 上的 ACML 5.3.1 段错误

昨天想测试cblas_dgemm的例子,但是遇到了问题:How to link Intel MKL library, just cblas_dgemm function is used ,它仍然存在。所以我使用 ACML 5.3.1 库测试了 dgemm。演示示例来自http://r2labs.org/pct/Scott_McAllister_work/pCT/acmlg0.1/win64/examples/time_dgemm_c/dgemm_c_example.c,但是当我将项目与 链接时-L/opt/acml5.3.1/gfortran64/ -lacml,它可以编译成功。但是运行的时候报错:

请帮助我。谢谢。

0 投票
1 回答
899 浏览

matlab - C++中有没有比MATLAB的eig函数更快的特征值分解方法?

为什么eig()MATLAB中的运行速度如此之快?它是如何制作的?我使用 Eigen 的 EigenSolver,它比 MATLAB 慢很多。使用Intel-MKL? 我们能否实现与 MATLAB 相同或更高的性能?或BLAS/ LAPACK/ ATLAS/ ARPACK/ OpenBLAS/ GotoBLAS/ ACML?特征值分解的工业解决方案是什么?