)]}'
{
  "commit": "0dff29e78cd7dc660e63b4fe80a4221d2beaf127",
  "tree": "3af06b274b6acd884c636e61c4727ce5e94875c5",
  "parents": [
    "3d0c17b9a5ae682ff71cf6ec35d4b39a11c9321e"
  ],
  "author": {
    "name": "WMC",
    "email": "tnwilly@gmail.com",
    "time": "Mon Aug 31 17:24:41 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 31 11:24:41 2026 +0200"
  },
  "message": "[LLVMGPU] Add dense and paged attention runtime correctness tests (#24829)\n\n## Summary\n\nThis PR adds a CUDA end-to-end runtime correctness test for paged-KV\nattention as Stage 2 of\n[#24766](https://github.com/iree-org/iree/issues/24766).\n\nThis change also fixes and enables the shared host-side attention\nchecker used by the existing dense-attention e2e tests. Before this\nchange, the reference softmax was numerically incorrect and the checker\ngenerated expected results without comparing them against device output.\n\n## Changes\n\n- Adds CUDA paged-KV attention coverage with non-contiguous, distinct\nkey and value page tables, `iree_linalg_ext.gather`, and\n`iree_linalg_ext.online_attention`.\n- Makes the page-table dimension dynamic (`tensor\u003c4x?xi64\u003e`), matching\nthe runtime `NUM_PAGES` use case.\n- Fixes the shared stable-softmax reference and makes it compare device\noutput with expected results.\n- Refactors the paged checker to gather paged K/V into dense tensors and\nreuse the shared attention reference and checker.\n- Passes the f16-rounded `1 / sqrt(head_dim)` scale to both the\noperation and host reference.\n\n## Testing\nValidated on NVIDIA RTX PRO 6000 Blackwell Server Edition\n\n- All existing CPU dense-attention configurations.\n- CUDA paged attention with 4 pages.\n- The same compiled paged-attention VMFB with 2, 4, and 6 runtime pages.\n\nAttention e2e tests use:\n\n```text\n--require_exact_results\u003dfalse\n--acceptable_fp_delta\u003d0.01\n```\n\n---------\n\nSigned-off-by: weimin023 \u003ctnwilly@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ed58cdd51f6d5d9ad090525e70a50236b8eb571c",
      "old_mode": 33188,
      "old_path": "tests/e2e/attention/CMakeLists.txt",
      "new_id": "356158f4171f0618e6bbed879abfc7a46554b913",
      "new_mode": 33188,
      "new_path": "tests/e2e/attention/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "e32ecdb9902e088cc02d564714e521e949413688",
      "old_mode": 33188,
      "old_path": "tests/e2e/attention/generate_e2e_attention_tests.py",
      "new_id": "69d3cc8b267a89b6600416242bc1e055905b6b1b",
      "new_mode": 33188,
      "new_path": "tests/e2e/attention/generate_e2e_attention_tests.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0fac0dcdb07bf7efd35729af847eb7885497c39f",
      "new_mode": 33188,
      "new_path": "tests/e2e/attention/generate_e2e_paged_attention_tests.py"
    },
    {
      "type": "modify",
      "old_id": "7dc96bd4a7baf57568abf39471f9f6614c424c80",
      "old_mode": 33188,
      "old_path": "tools/testing/e2e/iree-e2e-attention-test.cc",
      "new_id": "aedff21f9ab5947fece6f43f6e81862b6a8c712d",
      "new_mode": 33188,
      "new_path": "tools/testing/e2e/iree-e2e-attention-test.cc"
    }
  ]
}
