Armadillo + OpenBLAS 多线程
Armadillo + OpenBLAS multi-threading
我在 Ubuntu 14.04[= 的硕士论文中成功使用了 Armadillo 和 OpenBLAS 22=] 64 位(安装 Armadillo 和未安装)。性能非常出色——我的代码主要由基本矩阵运算组成。所有这些都是使用所有可用线程执行的。
现在我尝试在 Windows 7 64 位机器上使用 Armadillo 和 OpenBLAS Visual Studio 2013。我在网上找到了一些帮助并成功添加了 PThread 库。代码本身可以工作,但性能很差。我使用 1000x1000 矩阵测试了三个基本运算 - 加法、乘法和逐元素乘法。在这三个中,只有经典乘法使用了所有 CPU 次方。其他两个使用 25% CPU,这表明它们在单线程上 运行。
我没有在 Ubuntu 的情况下遇到过这种行为。有人有什么建议吗?我还没有看到任何 link,有人有类似的问题。
您确定 OpenBLAS 在 Ubuntu 上使用多线程进行加法和逐元素乘法吗?直觉上我希望这些操作受 BW 限制而不是 FPU 限制,所以我猜多线程不会有那么多帮助?
我在 Ubuntu 14.04[= 的硕士论文中成功使用了 Armadillo 和 OpenBLAS 22=] 64 位(安装 Armadillo 和未安装)。性能非常出色——我的代码主要由基本矩阵运算组成。所有这些都是使用所有可用线程执行的。
现在我尝试在 Windows 7 64 位机器上使用 Armadillo 和 OpenBLAS Visual Studio 2013。我在网上找到了一些帮助并成功添加了 PThread 库。代码本身可以工作,但性能很差。我使用 1000x1000 矩阵测试了三个基本运算 - 加法、乘法和逐元素乘法。在这三个中,只有经典乘法使用了所有 CPU 次方。其他两个使用 25% CPU,这表明它们在单线程上 运行。
我没有在 Ubuntu 的情况下遇到过这种行为。有人有什么建议吗?我还没有看到任何 link,有人有类似的问题。
您确定 OpenBLAS 在 Ubuntu 上使用多线程进行加法和逐元素乘法吗?直觉上我希望这些操作受 BW 限制而不是 FPU 限制,所以我猜多线程不会有那么多帮助?