1

我已经使用 ATLAS 库(特别是多线程库:libtatlas.so)构建了 octave(成功)。

在配置和制作过程中一切看起来都很好(经过多次调试),但是在制作 Octave 之后,我仍然看到矩阵乘法运算在单个线程中运行(ATLAS 库应该使该操作成为多线程的)。

有没有一种方法可以让我看到 Octave在执行矩阵乘法运算时实际使用的库,例如:

x = rand(10000,10000); y = rand(10000,10000); t=time(); 
z = x * y; 

我正在尝试确定这是否仍然是构建问题(例如,Octave 没有链接到正确的 ATLAS 库中)或者这是否是 ATLAS 问题(Octave 使用正确的库但 ATLAS 未按预期运行)。

4

1 回答 1

1

如果您在 linux 平台上,那么您可以最轻松地使用ldd. 如果您只是在应用程序二进制文件上运行它:

ldd <the binary file>

它将输出如何解决库依赖关系的列表。

更复杂的方法是在运行应用程序之前设置LD_DEBUG为:libs

env LD_DEBUG=libs <command to run application>

这会将信息输出到命令行,显示整个共享库解析和初始化过程。

于 2014-05-29T19:14:34.177 回答