I know that Caffe uses GEneral Matrix to Matrix Multiplication (GEMM) which is part of Basic Linear Algebra Subprograms (BLAS) library for performing convolution operations. Where a convolution is converted to matrix multiplication operation. I have referred below article. https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/

I want to understand how other deep learning frameworks like Theano, Tensorflow, Pytorch perform convolution operations. Do they use similar libraries in the backend. There might be some articles present on this topic. If someone can point me to those or can explain with an answer.


1 Answer 1


Those Frameworks are based on Cuda, which is the parallel computing tool for GPUs. Specificaly it is cuDNN that is used by the deep learning framework.

You can find the user guide : https://docs.nvidia.com/deeplearning/sdk/pdf/cuDNN-Developer-Guide.pdf

All off the operations are described and indeed GEMM algorithms are used for convolution operations.

  • $\begingroup$ I posted the same question on stackoverflow (stackoverflow.com/questions/51814148/…). As I received more comments on stackoverflow, I am inclined to remove this post to prevent duplicate posts. Can you please repost your answer there and I will remove this post. Then based on how other answers compare with yours, I can mark yours as accepted. $\endgroup$ Aug 14, 2018 at 5:04
  • $\begingroup$ No need, the answer Kaihong Zhang gave you is much more sophisticated. You can remove this post. $\endgroup$
    – Adrien D
    Aug 14, 2018 at 7:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.