为什么vta.graph.pack()函数不能分解矩阵向量乘数?

时间:2019-07-09 21:06:58

标签: python tensorflow matrix-multiplication

我尝试使用TVM compiler在VTA后端上实现一个用 TensorFlow 编写的32x32矩阵矢量乘法器(MVM)。 我希望看到设计分解为4个16x16 MVM操作,因为VTA的默认配置使用16个元素的累加器(并且我还没有摆弄它)。 但是,我看到在调用vta.graph.pack()之前和之后的图形保持不变:

Graph(%W, %x) {
  %1 = transpose(%W, axes='(0, 1)')
  %2 = reshape(%1, shape='(32, 32)')
  %4 = transpose(%x, axes='(0,)')
  %5 = reshape(%4, shape='(32, 1)')
  %6 = transpose(%5, axes='(1, 0)')
  %7 = dense(%2, %6, use_bias='False', units='1')
  %8 = reshape(%7, shape='(32,)')
  ret %8
}
Graph(%W, %x) {
  %1 = transpose(%W, axes='(0, 1)')
  %2 = reshape(%1, shape='(32, 32)')
  %4 = transpose(%x, axes='(0,)')
  %5 = reshape(%4, shape='(32, 1)')
  %6 = transpose(%5, axes='(1, 0)')
  %7 = dense(%2, %6, use_bias='False', units='1')
  %8 = reshape(%7, shape='(32,)')
  ret %8
}
graph_attr_keys = [shape_num_unknown_nodes, shape]

我期望在上面的第二张图中看到“ 16”尺寸。

有人可以帮我了解这里发生的事情吗?

谢谢!

0 个答案:

没有答案