我试图找到实际Conv2D操作的实现位置,以便我可以评估内存访问模式。跟踪事物,看起来Conv2D操作的执行通过contract()
函数调用进入Eigen。问题是,我似乎无法在TensorFlow或Eigen源中找到函数的定义或声明。
哪些功能主要负责在TensorFlow中执行Conv2D操作?我想看看它是如何瘫痪的,一般的内存访问模式是什么,以及原始计算是如何完成的。
此查询专门针对CPU,因为我已经在一定程度上研究了GPU执行。
答案 0 :(得分:1)
经过一番搜索,我发现CPU Conv2D的实际实现在deep_conv2d.cc。
答案 1 :(得分:0)
我认为Conv2dCPU是使用Eigen conv ops Line 61 onwards
在此文件中实现的答案 2 :(得分:0)
contract()
返回一个抽象表达式,其评估在TensorContraction.h中实现。它本质上是Eigen矩阵矩阵或矩阵向量乘积之上的包装器。