Почему функция vta.graph.pack () не разлагает мой множитель матрицы-вектора? - PullRequest
0 голосов
/ 10 июля 2019

Используя TVM-компилятор , я пытаюсь реализовать 32x32 матричный вектор-множитель (MVM), записанный в TensorFlow , на сервере VTA. Я ожидаю увидеть, как дизайн будет разложен на 4 операции MVM 16x16, так как конфигурация 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» на втором графике выше.

Может кто-нибудь помочь мне понять, что здесь происходит?

Спасибо!

...