我尝试使用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”尺寸。
有人可以帮我了解这里发生的事情吗?
谢谢!