OpenBLAS将只使用4个线程,尽管有32个可用线程 最近,我在Windows 10上使用Linux子系统安装Linux,以便我可以在C++中运行优化的矩阵计算,但是我认为库没有充分利用我正在运行的硬件。
例如,如果我运行一个简单的OpenBLAS将只使用4个线程,尽管有32个可用线程 最近,我在Windows 10上使用Linux子系统安装Linux,以便我可以在C++中运行优化的矩阵计算,但是我认为库没有充分利用我正在运行的硬件。,c++,multithreading,windows-10,openblas,C++,Multithreading,Windows 10,Openblas,例如,如果我运行一个简单的dgemm调用以将两个10000x1000矩阵相乘,则运行大约需要10-11秒,而在完全相同大小的矩阵上运行numpy,使用相同的数据类型(double/float64),只需要4-5秒。在任务管理器中查看,似乎numpy可以使用32个线程中的大约16个,而OpenBLAS只使用4个线程(这是在我运行OpenBLAS\u get\u num\u threads()时确认的) 即使在明确告诉OpenBLAS使用更多线程之后,我仍然使用了4个线程,如下代码所示: openb
dgemm
调用以将两个10000x1000矩阵相乘,则运行大约需要10-11秒,而在完全相同大小的矩阵上运行numpy
,使用相同的数据类型(double
/float64
),只需要4-5秒。在任务管理器中查看,似乎numpy
可以使用32个线程中的大约16个,而OpenBLAS只使用4个线程(这是在我运行OpenBLAS\u get\u num\u threads()时确认的)
即使在明确告诉OpenBLAS使用更多线程之后,我仍然使用了4个线程,如下代码所示:
openblas_set_num_threads(8);//这应该将OpenBLAS线程数设置为8
goto_set_num_线程(8);//这还应将OpenBLAS线程数设置为8
标准::cout