Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenBLAS将只使用4个线程,尽管有32个可用线程 最近,我在Windows 10上使用Linux子系统安装Linux,以便我可以在C++中运行优化的矩阵计算,但是我认为库没有充分利用我正在运行的硬件。_C++_Multithreading_Windows 10_Openblas - Fatal编程技术网

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