)]}'
{
  "commit": "8fc32e0e1e968d4ccf038667a759d3ad54962d05",
  "tree": "4dece432bb0702b5a2604e36e3dce102b674cc7f",
  "parents": [
    "3be9dc6479c55e5838cf9ee404592d890893c005"
  ],
  "author": {
    "name": "Vivian Zhang",
    "email": "zhyuhang88@gmail.com",
    "time": "Fri May 01 10:32:21 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 01 10:32:21 2026 -0700"
  },
  "message": "[DispatchCreation] Refactor and add low-parallelism split reduction parameter set (#24293)\n\nIntroduce a `low-parallelism` flag that selects a split reduction\nparameter set tuned for targets with limited concurrent workgroup\nparallelism (e.g. RDNA-class GPUs), distinct from the existing\nhigh-parallelism default (CDNA-class). The matmul and convolution\nlimit-parallel-loops helpers are restructured into a single top-down\noutput size ladder with reduction size sub-rules in each band.\n\nRepresentative benchmark results:\n\nRDNA4 (RX 9070 XT) conv:\n| Speedup | Baseline (us) | This PR (us) | Saved (us) | Shape |\n|--------:|--------------:|-------------:|-----------:|-------|\n| 2.21x | 6234.3 | 2825.4 | 3408.9 | -n 32 -c 256 -H 25 -W 25 -k 2376 -y\n3 -x 3 -F 4 |\n| 1.54x | 6537.7 | 4234.0 | 2303.7 | -n 32 -c 256 -H 25 -W 25 -k 2376 -y\n3 -x 3 -F 2 |\n| 1.24x | 10359.2 | 8330.5 | 2028.6 | -n 12 -c 224 -H 470 -W 725 -k 224\n-u 2 -v 2 -g 4 -F 4 |\n| 1.62x | 5210.9 | 3220.0 | 1990.9 | -n 5 -c 224 -H 470 -W 725 -k 224 -u\n2 -v 2 -g 4 -F 4 |\n| 1.43x | 3660.4 | 2568.0 | 1092.4 | -n 4 -c 224 -H 470 -W 725 -k 224 -u\n2 -v 2 -g 4 -F 4 |\n\nRDNA4 1x1 conv:\n| Speedup | Baseline (us) | This PR (us) | Saved (us) | Shape |\n|--------:|--------------:|-------------:|-----------:|-------|\n| 4.12x | 45.2 | 11.0 | 34.2 | -n 16 -c 64 -H 24 -W 16 -k 192 -F 4 |\n| 2.27x | 61.3 | 27.0 | 34.3 | -n 16 -c 96 -H 48 -W 32 -k 96 -F 4 |\n| 2.30x | 30.9 | 13.4 | 17.5 | -n 16 -c 48 -H 24 -W 16 -k 192 -F 4 |\n\nCDNA4 (MI355) conv:\n| Speedup | Baseline (us) | This PR (us) | Saved (us) | Shape |\n|--------:|--------------:|-------------:|-----------:|-------|\n| 2.60x | 48.7 | 18.7 | 30.0 | -n 16 -c 96 -H 48 -W 32 -k 96 -y 3 -x 1\n-F 4 |\n| 1.81x | 4198.3 | 2319.7 | 1878.6 | -n 12 -c 224 -H 470 -W 725 -k 224\n-u 2 -v 2 -g 4 -F 4 |\n| 1.71x | 3287.0 | 1924.0 | 1363.0 | -n 10 -c 224 -H 470 -W 725 -k 224\n-u 2 -v 2 -g 4 -F 4 |\n| 1.49x | 3218.2 | 2160.6 | 1057.6 | -n 12 -c 224 -H 235 -W 363 -k 224\n-g 4 -F 4 |\n\nCDNA4 1x1 conv:\n| Speedup | Baseline (us) | This PR (us) | Saved (us) | Shape |\n|--------:|--------------:|-------------:|-----------:|-------|\n| 2.54x | 1499.0 | 589.5 | 909.5 | -n 10 -c 448 -H 118 -W 182 -k 896 -F\n4 |\n| 2.06x | 1703.2 | 826.4 | 876.8 | -n 12 -c 448 -H 118 -W 182 -k 896 -F\n4 |\n\n---------\n\nSigned-off-by: yzhang93 \u003czhyuhang88@gmail.com\u003e\nCo-authored-by: Claude \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9274eb3ebaa466551167ae4540a96370bee19cd0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/Passes.cpp",
      "new_id": "9d63c34e8a9f836c7e7b39b6c2556051d8d16400",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "b1800a764516e83ba753f83174a5724bd05d49e3",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/Passes.h",
      "new_id": "80f60d8aec24bce868ca96b8d4d2d0a24af9aba1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "d12a766e5451b84ba7701f1670fb5f3c1a7db35a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/Passes.td",
      "new_id": "c2ae0941880f01b89bbf576d03bddc3f8e95d20f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "f5026b6e7dce4c7946628b038539c288b6774dac",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/SetSplitReductionSizes.cpp",
      "new_id": "2f88e51620808d82129fcb07e2982c607e83062b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/SetSplitReductionSizes.cpp"
    },
    {
      "type": "modify",
      "old_id": "01ff92fe815b0a4e35eef15eb02ea999a5637813",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/BUILD.bazel",
      "new_id": "f2922e6f3aff87246af603e9c2f266de7c3532fa",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "b7a04b66b5d30f2b96fb648632d957a270eedb54",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/CMakeLists.txt",
      "new_id": "76e848a46a7f1b8a9848d3d1496456717b25ef5d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "6c7cd2ba123bdeb4a5a65b3a5e06fb26303f4c31",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/DispatchCreation/test/set_split_reduction_sizes_conv.mlir",
      "new_id": "13a09465acb9437f4bba362eac92d6d332247db9",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/set_split_reduction_sizes_conv.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "751234bd9bfb6261702b5b30bdcf46a7322db13b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/DispatchCreation/test/set_split_reduction_sizes_low_parallelism.mlir"
    },
    {
      "type": "modify",
      "old_id": "82561070680d82752622f833982a0860e481c4c1",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Pipelines/Options.cpp",
      "new_id": "3de600b3d1571fa071e7e0a5154fba609efe37b5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Pipelines/Options.cpp"
    },
    {
      "type": "modify",
      "old_id": "8d2ac68c40a768fd7f8c110e213a9e7bf99c5205",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Pipelines/Options.h",
      "new_id": "b0c385e89df3111560337070ea6425becae76c2c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Pipelines/Options.h"
    },
    {
      "type": "modify",
      "old_id": "827867884315d1564871533a0ca8e1c8ddc444ef",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Pipelines/Pipelines.cpp",
      "new_id": "b3c61697fb98d6ce8c74523a320dc3830aabcafa",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Pipelines/Pipelines.cpp"
    }
  ]
}
