如何使用openBLAS改善矢量化操作?

时间:2018-11-27 02:02:40

标签: c numpy optimization vectorization openblas

我正在自学如何编写高效,优化的深度学习代码;但是我对此非常新手。

例如:我读到numpy使用vectorization来避免python loops

根据该链接,他们还创造了broadcasting一词,TensorFlow,PyTorch等使用了该链接。

我做了一些挖掘,发现我的Debian盒子上的ldd显示了multiarray.so链接libopenblasp-r0-39a31c03.2.18.so

因此,让我们以矩阵减法为例。我想了解如何使用openBLAS改进这种非常幼稚的实现:

void matrix_sub(Matrix *a, Matrix *b, Matrix *res)
{
  assert(a->cols == b->cols);
  assert(a->rows == b->rows);

  zero_out_data(res, a->rows, a->cols);

  for (int i = 0; i < (a->rows*a->cols); i++)
    {
      res->data[i] = a->data[i] - b->data[i];
    }
}

是明智的内部产品,还是附加产品?

0 个答案:

没有答案