我正在为每个矩阵乘法的矩阵和每个向量乘法的矩阵实现一个简单版本,使用带有dgemm和dgemv的openblas。我看到openblas只在一个核心上运行。
我尝试添加-lpthread进行编译,但这并没有使它工作。
我称之为dgemm和dgemv的方式很简单:
cblas_dgemv(order, trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
cblas_dgemm(M, N, K, alpha, A, 1, M, B, 1, K, beta, C, 1, M);
有没有人在多核上成功运行openblas?
答案 0 :(得分:0)
您是否尝试使用environment variables设置主题数?
export OMP_NUM_THREADS=4
如果这不起作用,您可以通过以下函数设置openblas正在使用的线程数:
void openblas_set_num_threads(int num_threads);
比照https://github.com/xianyi/OpenBLAS#set-the-number-of-threads-on-runtime