TensorFlow中的GPU卷积性能

TensorFlow中的GPU卷积性能,tensorflow,convolution,Tensorflow,Convolution,如何实现TensorFlow中的2D/3D卷积运算,即稀疏矩阵-密集向量乘法?如何对同一图像应用多个过滤器来优化性能?对于许多图像应用相同的过滤器,如何优化性能?是否有一篇论文描述了实现卷积的不同方法的性能 我问的原因是我已经用CUDA实现并优化了许多2D和3D(也是4D)卷积器,我在想是否应该将它们的性能与TensorFlow进行比较。TensorFlow没有实现卷积。它使用cuDNN库。好的,但是cuDNN中的卷积是如何实现的?cuDNN是封闭源代码,并且经过了大量优化,因此我怀疑任何由一个

如何实现TensorFlow中的2D/3D卷积运算,即稀疏矩阵-密集向量乘法?如何对同一图像应用多个过滤器来优化性能?对于许多图像应用相同的过滤器,如何优化性能?是否有一篇论文描述了实现卷积的不同方法的性能


我问的原因是我已经用CUDA实现并优化了许多2D和3D(也是4D)卷积器,我在想是否应该将它们的性能与TensorFlow进行比较。

TensorFlow没有实现卷积。它使用cuDNN库。好的,但是cuDNN中的卷积是如何实现的?cuDNN是封闭源代码,并且经过了大量优化,因此我怀疑任何由一个人编写的CUDA代码都不会比它更好。TensorFlow确实有一个CUDA实现,它只是在默认情况下被禁用。我还没有深入研究tf中convs的代码,但这里有一个很好的起点:。文档中提到了GEMM(通用矩阵乘法),对于3D卷积,它需要是稀疏的(否则滤波器矩阵将不适合GPU内存),对于3D CNN中的第一层,医学成像中的通道数是1(灰度)而批处理中的卷数在3D中需要较低,以适应GPU内存,因此这可能会导致Nf稀疏矩阵密集向量乘法,其中Nf是过滤器的数量。应该可以更有效地做到这一点。