在Tensorflow,Theano,Pytorch中使用的是GEMM还是BLAS

时间:2018-08-13 01:27:02

标签: tensorflow deep-learning caffe pytorch blas

我知道Caffe使用通用矩阵到矩阵乘法(GEMM),它是基本线性代数子程序(BLAS)库的一部分,用于执行卷积运算。将卷积转换为矩阵乘法运算。我已提及以下文章。 https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/

我想了解Theano,Tensorflow,Pytorch等其他深度学习框架如何执行卷积运算。他们是否在后端使用类似的库。关于此主题可能有一些文章。如果有人可以指出我的意思或可以给出答案来解释。

PS:我在datascience.stackexchange.com上发布了相同的问题。由于我在那儿没有得到答复,因此我也将其张贴在这里。如果有更好的论坛来发布此问题,请告诉我。

1 个答案:

答案 0 :(得分:3)

tensorflow的操作有多种选择。

对于GPU,使用cuda支持。大部分操作是使用cuDNN实现的,其中一些使用cuBLAS,而其他使用cuda。

您也可以使用openCL代替cuda,但是您应该自己编译tensorflow。

对于CPU,intel mkl用作blas库。

我对pytorch和theano不熟悉,但是下面列出了一些常用的blas库:

  • cuDNN,cuBLAS和cuda:nvidia GPU支持,最受欢迎的库
  • openCL:通用的GPU支持,我一点也不了解。
  • MKL:英特尔提供的CPU blas库
  • openBLAS:CPU库