)]}'
{
  "commit": "fb4f8d2dd93ef8bd8fb6c16d508e6e006c516c36",
  "tree": "a07a770a16917debe76c4d689be2d0b29e1e35b2",
  "parents": [
    "5d75e54d9d71a9627e7519d6bacb6ff9888ac4a5"
  ],
  "author": {
    "name": "Stanley Winata",
    "email": "68087699+raikonenfnu@users.noreply.github.com",
    "time": "Fri Sep 30 16:04:03 2022 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Sep 30 16:04:03 2022 -0700"
  },
  "message": "[flow] Generalize 1x1 Conv2D to matmul for NCHW (#10616)\n\nMost models from PyTorch uses NCHW Conv2D by default. To accelerate the\r\n1x1 filter Conv2D workload with NCHW layout, we generalize the 1x1 filter\r\nConv2D to matmul pass to be able to handle NCHW as well.\r\n\r\nPerf boost on ResNet50 (PyTorch):\r\n- CPU (Threadripper PRO 3995WX): 100ms -\u003e 80ms\r\n- Vulkan (Threadripper PRO 3995WX): 48ms -\u003e 31.7ms",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6a886e316a5ae9234447066c0846a4cb02e437e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD",
      "new_id": "8d1064b989d38fdd75a3ac932e970197791c1093",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/BUILD"
    },
    {
      "type": "modify",
      "old_id": "82c3bbb381509e1363e033891408616c5e64a503",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt",
      "new_id": "ac62bf84f30f9ec150b03749ac811227f207ad16",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "67739427a0d274374cbb0b07c9068fee1473e758",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Convert1X1FilterConv2DToMatmul.cpp"
    },
    {
      "type": "delete",
      "old_id": "ef45208ec875264ec9ce03c37a8cd5804c796a20",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/ConvertConv2D1x1ToMatmul.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "11ffd5e973611cfc8099c05386b10a7b6f735361",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.cpp",
      "new_id": "84540d4d8a951cac8d4df8f50e4d7b6bf22deefc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "71a122688608be0f4c72a27043190e51f637909b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.h",
      "new_id": "b11318b0baf6b95610c95bfffe5d8810c727a93e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "3c4f6f8b4d236262b8f3294214b55e3cbc49208b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.td",
      "new_id": "cf008a2fa5bf35b244bdc7c8f91fd0834ef65a86",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "3956456a80eadc3f5fe48426c695e45a77673dd6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/conv1x1_to_matmul.mlir",
      "new_id": "ea2b8975a18706a200de8c15d163d42cc02e2e5d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/Transforms/test/conv1x1_to_matmul.mlir"
    }
  ]
}
