kernels-bot commited on
Commit
fa57a29
·
verified ·
1 Parent(s): 9e3e9bd

Uploaded using `kernel-builder`.

Browse files
Files changed (32) hide show
  1. build/torch210-xpu20253-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} +1 -1
  2. build/torch210-xpu20253-x86_64-linux/_ops.py +3 -3
  3. build/torch210-xpu20253-x86_64-linux/metadata.json +6 -6
  4. build/torch210-xpu20253-x86_64-linux/metadata.json.sigstore +1 -1
  5. build/torch210-xpu20253-x86_64-linux/symbols.json +13 -13
  6. build/torch211-xpu20253-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} +1 -1
  7. build/torch211-xpu20253-x86_64-linux/_ops.py +3 -3
  8. build/torch211-xpu20253-x86_64-linux/metadata.json +6 -6
  9. build/torch211-xpu20253-x86_64-linux/metadata.json.sigstore +1 -1
  10. build/torch211-xpu20253-x86_64-linux/symbols.json +13 -13
  11. build/torch212-xpu20253-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} +1 -1
  12. build/torch212-xpu20253-x86_64-linux/_ops.py +3 -3
  13. build/torch212-xpu20253-x86_64-linux/metadata.json +6 -6
  14. build/torch212-xpu20253-x86_64-linux/metadata.json.sigstore +1 -1
  15. build/torch212-xpu20253-x86_64-linux/symbols.json +13 -13
  16. build/torch213-xpu20260-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} +2 -2
  17. build/torch213-xpu20260-x86_64-linux/_ops.py +3 -3
  18. build/torch213-xpu20260-x86_64-linux/metadata.json +6 -6
  19. build/torch213-xpu20260-x86_64-linux/metadata.json.sigstore +1 -1
  20. build/torch213-xpu20260-x86_64-linux/symbols.json +13 -13
  21. build/torch214-xpu20261-x86_64-linux/_flash_attn2_xpu_18153cd.abi3.so +3 -0
  22. build/torch214-xpu20261-x86_64-linux/_flash_attn2_xpu_460047c.abi3.so +0 -3
  23. build/torch214-xpu20261-x86_64-linux/_ops.py +3 -3
  24. build/torch214-xpu20261-x86_64-linux/metadata.json +6 -6
  25. build/torch214-xpu20261-x86_64-linux/metadata.json.sigstore +1 -1
  26. build/torch214-xpu20261-x86_64-linux/symbols.json +13 -13
  27. build/torch215-xpu20261-x86_64-linux/_flash_attn2_xpu_18153cd.abi3.so +3 -0
  28. build/torch215-xpu20261-x86_64-linux/_flash_attn2_xpu_460047c.abi3.so +0 -3
  29. build/torch215-xpu20261-x86_64-linux/_ops.py +3 -3
  30. build/torch215-xpu20261-x86_64-linux/metadata.json +6 -6
  31. build/torch215-xpu20261-x86_64-linux/metadata.json.sigstore +1 -1
  32. build/torch215-xpu20261-x86_64-linux/symbols.json +13 -13
build/torch210-xpu20253-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ba0848b295d3952fc5c8445719f7694d632641d2a37816e9a8e3b8f382b9c4a3
3
  size 83936048
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cef2aabfda24660baf78c276afa13bd3ab98b3ebef8ea7a5d3bdef5101ee0dee
3
  size 83936048
build/torch210-xpu20253-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _flash_attn2_xpu_460047c
3
- ops = torch.ops._flash_attn2_xpu_460047c
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_flash_attn2_xpu_460047c::{op_name}"
 
1
  import torch
2
+ from . import _flash_attn2_xpu_18153cd
3
+ ops = torch.ops._flash_attn2_xpu_18153cd
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_flash_attn2_xpu_18153cd::{op_name}"
build/torch210-xpu20253-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "flash-attn2",
3
- "id": "_flash_attn2_xpu_460047c",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
@@ -13,20 +13,20 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
- "_flash_attn2_xpu_460047c.abi3.so": "ughIspXTlS/FyERXGfdpTWMmQdKjeBbpqOO484K5xKM=",
17
- "_ops.py": "HZjwooCDut16FGNQHV9lhPui7ds/0p/UXwHG3ps0HIA=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
- "symbols.json": "yW2V0d8YC44XlLwj22LiBnVEOxvAyKK7q7Z7P/ntYrQ="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
- "commit": "d054906a13710b811b96697b4635f03020842733",
26
  "dirty": false
27
  },
28
  "kernel": {
29
- "commit": "460047c291fc7f0b3dbd4239b46bd5e1281b1806",
30
  "dirty": false
31
  }
32
  }
 
1
  {
2
  "name": "flash-attn2",
3
+ "id": "_flash_attn2_xpu_18153cd",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
+ "_flash_attn2_xpu_18153cd.abi3.so": "zvKqv9okZguveMJ2r6E706uYs+vvjqel073vUQHuDe4=",
17
+ "_ops.py": "ebZyCW+vFEQeWFBcyvjl5aL2bF86ROig66EXIaF4N9Y=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
+ "symbols.json": "fdd4zMGi+JSGhadpnzLoAgOJmwac1ucRXeXCIy6XNaw="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
+ "commit": "d0ed138c0e5132e810e6fbbbc2a5c6981a9c7649",
26
  "dirty": false
27
  },
28
  "kernel": {
29
+ "commit": "18153cd077b6541e9c4cb98ad9678db4e1253d1f",
30
  "dirty": false
31
  }
32
  }
build/torch210-xpu20253-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3434757290", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792811826", "inclusionPromise":{"signedEntryTimestamp":"MEQCIBmk1mItZjD2ejsirNV/GAp7V1HJB9FMKwdT27d9MmP/AiBHIuptespDKAujGimZa5/Ogv5Ve1TXSMEEw+cztwaPHQ=="}, "inclusionProof":{"logIndex":"3312853028", "rootHash":"ITl2uZZtHGZqkXmkoEoxRd30K7qd6yquZWzx/NMBE/c=", "treeSize":"3312853115", "hashes":["ZUbFybgkiH9xne9rDAdu+HGxJaWXsU+OBLd7yhBrKSg=", "O741kK999aBB/YhjY20uUO3Ly43bK967nuw43d795Uw=", "BgZSNGxqrIjLEGnGZqTmNd2BhFA3eY8sNNVvbDI0R6Q=", "NG6BZ7Nct912mNAOsKw/0vn/H08ZHCuAQGmJLqMXG6w=", "seshs2cHUPK0iin/09CfPZR2hOGeSAd7osyz5JZwKsM=", "xufDOZwvUgBvxKQx+7wMKJXFVZGHLj6Njo5JDLifY88=", "mPQLQOQSHlbk3JzfgEMT/1e7sxCSsMkdSTiFb6AyIo0=", "/0h1q77t2M0cwUFzO9XWvsGvu08wg+uaZtSooF6VRVo=", "311qGYxj2us1hfCTJfkWyhodwGp/5wVZyxZo8POtD/U=", "bptXV3AQDejPGUKuSw48+UvbspRbkoEiDJE3UP1mXM0=", "kxm3SkqVZsyzvxBnctr9e1RjUfW2c1GU3aNOY1dzth4=", "v429CjMaikVN7AeQP8G/qVSQlh2NXejha29mbgC7OFs=", "wVYvbfvuGPPApUk0oNj5Nw1jcp1hjXeV+dnXr5on3XQ=", "iDfImp65w8dirRfYGNgFA34JTUYDWbcJwNBBU/Ok+X4=", "YYCr61A8azar3dfO8Ct+pri7LqDxkUlUkfs7fiqYErU=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3312853115\nITl2uZZtHGZqkXmkoEoxRd30K7qd6yquZWzx/NMBE/c=\n\n— rekor.sigstore.dev wNI9ajBGAiEAnBRed6Z+t28HC3D5pPLEW2/d9qgQR5BJsoIOev+8/mACIQDgHYI/2R9goaPYbAklyTg3pPCtSiHviOkEhX+PCXIaqQ==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJhMGY0ZDYwMTVhY2NmYzY0MTg5OWIwODJjYjE4YjUwOTE0YTBmNzA4Yjk0NzQ0NzA3MjU1MzM4YzQwMzA4OGE1In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQlJlT1lRa2lnVEY1SVFjT3FGNHdoWGFxOUxTeGVTazZqU0kwUW4ybzhPdEFpQWlmZE1KTXhGTklIcGtPRUZUc2IwODhVWjdzSHNjalhsVE1NVDBveHRmdEE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlMyazBVa3RUUWxOcGR6WmhRME16VW1SdFNGUmpVaTlaVkhkM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1RCTlJFMTRUbnBCTWxkb1kwNU5hbGw0VFVSSk1FMUVUWGxPZWtFeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZaUWpoVk5HNTVlRmhJYWpKdFdHZEhOSFpKZHpGek5tSkdZV1JxVTBoSmEzbHZTWElLYjNKTGRreFBhV0ZYVFhBdlNUQjFjQ3RVVFdGb2JGb3djRE5JYkZCNGJ6SkdWakV2TUZFM1kyZDJNVFE1VlhaaWVqWlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN3VG1wQmR3cE9SR1JxVFdwcmVGcHRUVE5hYWtKcFRUSlNhVnBFVVhsTmVteHBUa1JhYVZwRVZteE5WRWswVFZkSmVFOUVRVEpOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpCT2FrRjNUa1JrYWsxcWEzaGFiVTB6Q2xwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpCT2FrRjNDazVFWkdwTmFtdDRXbTFOTTFwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPUkZsM1RVUlJNMWw2U1RWTlYxcHFUakpaZDFscVRtdFpiVkV3VFdwTk5WbHFVVEpaYlZFeFdsUkZlVTlFUm1rS1RWUm5kMDVxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUnJORTFxV1RCTlJGVjRUbE01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWVN0c04yVm5RVUZDUVUxQlVucENSa0ZwUlVFMk5qUllUVmxSVjBGR1VEZFpMM2xrZW5sNWNXRXhjRVJ1VkhveWNIYzNXUW80VFdWeVQzTlVOV0ZuWjBOSlNETjVOSHBFVkhSTVpGZE5ka00zTlZjdk5GWlRiM0pMU2tzMWNXVklNMmhTU0RKdVRHOXlNVTlTYjAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUlZOSE4xSm1aazFFVEVNNU9FRlpPRWxNYWpOM1dXWmtZVXRCYnpkNE1rTnFha1ptTWxNd1lubHJlbkl5TlVRS1ZVMXRMMHMzWWs5RFdGcENOMW8zUmxoUlNYaEJTVk5MWVRKWFJUaGlXRFkzZGpkTUswVlFVV1Z4Y1dsQ1lqYzNhR00yWlRoR1prVnhObUp0YTFaWlJRcE9ZbWd3WVROaFdYZGxjbk5LVmtkaE1uRXpXV2huUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgL0tI6YzuICfjRsKcupXQQjYd618GgepGNk7/YgfDNQECFQDF5wX3kPsKRyBXaqPvnSIIJsV+pRgPMjAyNjEwMjQwMzE3MDZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAyNDAzMTcwNlowLwYJKoZIhvcNAQkEMSIEIElcvYp/NOZm03afmv7H2L3+0jpVm5Q9LQYPb35FU0P0MIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQC8pchqIWA6Ywlt8u4LtFznFaJDMOTaldLfoMSizBe5krU7L0g2nkUiXY4TluxIQVcCMQDOyWNXddA5hWuCKuoCTXln18WyJeIjIrKDLssW3eluTpA6U8kOseb1BGDot3xpwSI="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"oPTWAVrM/GQYmbCCyxi1CRSg9wi5R0RwclUzjEAwiKU="}, "signature":"MEQCIBReOYQkigTF5IQcOqF4whXaq9LSxeSk6jSI0Qn2o8OtAiAifdMJMxFNIHpkOEFTsb088UZ7sHscjXlTMMT0oxtftA=="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3505388448", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1793075871", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCNFzfK8XkY3suz3DzUsk/2K+ToSa3+mSu19KXZyrwlNAIhANROdDu8iOjK+9cno/uS25t9eFltNbT5LgBWLMN1DM9T"}, "inclusionProof":{"logIndex":"3383484186", "rootHash":"Prt9frOeAWoU8oFYk1sIKjHvPflQiss0wNl2hvL43KY=", "treeSize":"3383485890", "hashes":["WO86Uqa8H8Eh6zIrtXNtafWs88mUUVqGocIff0YuNjU=", "KsqjOVwm+wHqdZ6z0ecxnUPKqAemAd1B5tIrzqlIKaI=", "rJt3A+oIghqHTlDIIyjShcnFUoG3HbLYoRNsj6HPZtY=", "09VUOteOI6Nj2s2JoIx+62sjo4/gOHBtoiMylDIyn8c=", "ZPVeUgBN/65MKMDZnVi5MxhHgQpDj9i22ALOUyTli8o=", "RhN0oI+aAYWz40+ziTpNdDeIvnMnZJa06WRh8sWifk0=", "VHuiHn8tf544pFY5rJHobRI1Fw06+O/WPtQX3xTNWS8=", "aPUp97hX3XKOblxF/qbguC0z0P6CnGPWETJiDQiJijM=", "2nHo5JwJ92xX19ITeTOHMGOAAdYAgGWfqzSwtzf2d4E=", "X56fvd3CTRG2p6U/ScfP++f8YxRtWqHAjR9y7nQBw8M=", "tzePFoZfCXn3q9Txc1Ee40rnViCcpW2Dy9lGpIQ9dBA=", "avRJZl4onRQr/Gco01Q9RPoAd0YhtjVfw0BidHDwsmg=", "OYfcGZDNa46je1p1vUX/o3kPfDk+xTkC/6pDGBDO0HU=", "5OS4bzq0OhDzyPwi6Vo+LNJvi/bI5Unkh+Tpkp75knM=", "0tkBPflsXXWD/q1Sv6CfMMu1guzkZY6h7BnZWzHZcys=", "JTEfL/a+HBrsBFY9U2WvWWT8EYTBBoSiACj7I2LKREM=", "9RTTTRLi2/mYimEyHLICZSUkSEY+5bBAqMjiTSNp1lU=", "nJ74L4QP8yCXh97uHxDCZPQ+tkMLqi1tIOSyGOfbGRQ=", "AfhdCA0SKq06KfnBMbH03363Y2xDrpSlEAebhvj5YdU=", "EkBu+pSIqUL+stncmyWLXTfvg33KgWvQA/hFfSE8iGA=", "DGHKRV9Hj1e3Z4G8WPXuCUHHumJYK14vN1lAd3RRZqc=", "6isO7d5SZuUjk8FoC2N/4lrs2iljQ9nlCzDM90al4Mw=", "zGfeoWKmrZlXMOvyi3R2GDbGpmI1skJW/wLTXCCgF0o=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3383485890\nPrt9frOeAWoU8oFYk1sIKjHvPflQiss0wNl2hvL43KY=\n\n— rekor.sigstore.dev wNI9ajBEAiAK09A9CFqNybbAhNek69FE63rdy6/kwzuD9N+phM/g5gIgPIY3Q+bznzIXxmUgfcJ4D7at0rFupck3Ib2unfQ4+D8=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1YTkzMzIwOTAzNTkwZDJmZTQ5YWE1MDZjOTQxN2FlMDViMDllYmI4NWIxYzg0MWZjZWRlMzgwOTJiNmI0MWEwIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUMrZUdnQmVCaGdKL0ZObFU4WXkrb2lnZW5VYk9tVElQT2hzd1VhY1dRTXZ3SWdZNXlCeS81b282QWwrWENlc1BqNitwYjcyMHZqKzJVVHhJSG9WTWNPSzdFPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KUFowRjNTVUpCWjBsVlpVZHVjRUZhVEhOQk1FWXdjbWxhU1dwVVlWTkNWM1V3UjJOemQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1ROTlJGRjZUbnBWZUZkb1kwNU5hbGw0VFVSSk0wMUVVVEJPZWxWNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZhUmpad2JuTXlWelJKZFZkQ1RESklZalYwSzJkTE1ITmxjM1pOVFU1MmNXbEhVeklLWm1OMGNubHRjbVo0ZEhveGNXaEhUWE5uUlU5UlYzTXlVeXNyTDJaTGRWbDVSRTQwUlhWc1FWRllUbE01ZVhjM2RXRlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmQ0VDBSRk1RcE5NazVyVFVSak0xbHFXVEZPUkVac1QxZE5NRmt5U1RWUFIwWnJUMVJaTTA5SFVtbE9SMVY0VFdwVmVscEVSbTFOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWjNoUFJFVXhUVEpPYTAxRVl6TlphbGt4Q2s1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWjNoUFJFVXhDazB5VG10TlJHTXpXV3BaTVU1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlOVkdkNFRsUk9hbHBFUVROT01ra3lUbFJSZUZwVWJHcE9SMDVwVDFSb2FGcEVhekpPZW1ocldXcFNiRTFVU1RFS1RUSlJlRnBxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRnd1RVUk5lRTlVWXpOT1JHZDRUV2s1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWlRaYU9WSlJRVUZDUVUxQlUwUkNSMEZwUlVGd00wRk1OVUZVVEdaYVdIcDVSR1ZHY1V4SldtUlNRMVZxV1dreWNDdE9jZ3BZZG01MGFVd3pRVlprUVVOSlVVTm5UekZYVkVKeVlWRjZlaXRGVm10Q2N6ZGpRM0YwWjJSdWMwa3JWV1ZJZDJselptcHdRbVV2VDI1cVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2IwRkVRbXhCYWtGU2IxTnJUMmxJYzI1V1ZFOXpTMkpWUm1kcFRVcFZiVFF2VVhJMFNTdE9kVzFVWkRWaVduY3dURTFKU0hJS2RqZHJlR0p2Tm0xU1ZXZzFUbWxOYjNkeFJVTk5VVVJPZDFrNVUycFlNMVY1UW5SMmJXRlVlV3B3Y0RBNGRVeExVbWx4Y0ZOTldsVm5SMGhHYlRob1Z3cENkaXRxVldsSmVHOUxiMlprVVdOMGEwdHdTM014T0QwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgoxIGHHQZ0llpZlgnuRWHKbzHAKot742vsj63qOqfZocCFG8uDRpadJ29ez/crtyGt3jW2t90GA8yMDI2MTAyNzA0Mzc1MVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDI3MDQzNzUxWjAvBgkqhkiG9w0BCQQxIgQg98Mb6Oib4AP/OoW27DIX7pNLSNMITKP5+70mZu35SW4wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAIoT4rZNSFiYRkJ9FV4WkpvMnQCB6OjAsd3w8+OnmKQdUnsylUvQo283q2BBL5hPlgIxAMhQ3BMUlqdM1uojjADkLUxSTVk+6LjE9v0+3iKzSO1fCO0CIjoMht/dvSHdjzoITg=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"WpMyCQNZDS/kmqUGyUF64FsJ67hbHIQfzt44CStrQaA="}, "signature":"MEUCIQC+eGgBeBhgJ/FNlU8Yy+oigenUbOmTIPOhswUacWQMvwIgY5yBy/5oo6Al+XCesPj6+pb720vj+2UTxIHoVMcOK7E="}}
build/torch210-xpu20253-x86_64-linux/symbols.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "schema_version": 1,
3
- "module": "_flash_attn2_xpu_460047c",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
@@ -83,7 +83,7 @@
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
@@ -155,7 +155,7 @@
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
@@ -221,7 +221,7 @@
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
@@ -329,7 +329,7 @@
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
@@ -425,7 +425,7 @@
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
@@ -503,7 +503,7 @@
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
@@ -629,7 +629,7 @@
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
- "module": "_flash_attn2_xpu_460047c",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
@@ -719,7 +719,7 @@
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
- "module": "_flash_attn2_xpu_460047c",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
@@ -857,7 +857,7 @@
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
- "module": "_flash_attn2_xpu_460047c",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
@@ -983,7 +983,7 @@
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
- "module": "_flash_attn2_xpu_460047c",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
@@ -1139,7 +1139,7 @@
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
- "module": "_flash_attn2_xpu_460047c",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
 
1
  {
2
  "schema_version": 1,
3
+ "module": "_flash_attn2_xpu_18153cd",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
 
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
 
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
 
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
 
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
 
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
 
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
 
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
+ "module": "_flash_attn2_xpu_18153cd",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
 
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
+ "module": "_flash_attn2_xpu_18153cd",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
 
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
+ "module": "_flash_attn2_xpu_18153cd",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
 
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
+ "module": "_flash_attn2_xpu_18153cd",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
 
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
+ "module": "_flash_attn2_xpu_18153cd",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
build/torch211-xpu20253-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:800e1a779975328b56539adfd9fa0d178af067053f7d3c778c1d6140db37164c
3
  size 83936048
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:20600bad30232c01f3663c5a3617fc68014fdeb52e4244bf9cfa24678aa0134d
3
  size 83936048
build/torch211-xpu20253-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _flash_attn2_xpu_460047c
3
- ops = torch.ops._flash_attn2_xpu_460047c
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_flash_attn2_xpu_460047c::{op_name}"
 
1
  import torch
2
+ from . import _flash_attn2_xpu_18153cd
3
+ ops = torch.ops._flash_attn2_xpu_18153cd
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_flash_attn2_xpu_18153cd::{op_name}"
build/torch211-xpu20253-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "flash-attn2",
3
- "id": "_flash_attn2_xpu_460047c",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
@@ -13,20 +13,20 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
- "_flash_attn2_xpu_460047c.abi3.so": "gA4ad5l1MotWU5rf2foNF4rwZwU/fTx3jB1hQNs3Fkw=",
17
- "_ops.py": "HZjwooCDut16FGNQHV9lhPui7ds/0p/UXwHG3ps0HIA=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
- "symbols.json": "yW2V0d8YC44XlLwj22LiBnVEOxvAyKK7q7Z7P/ntYrQ="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
- "commit": "d054906a13710b811b96697b4635f03020842733",
26
  "dirty": false
27
  },
28
  "kernel": {
29
- "commit": "460047c291fc7f0b3dbd4239b46bd5e1281b1806",
30
  "dirty": false
31
  }
32
  }
 
1
  {
2
  "name": "flash-attn2",
3
+ "id": "_flash_attn2_xpu_18153cd",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
+ "_flash_attn2_xpu_18153cd.abi3.so": "IGALrTAjLAHzZjxaNhf8aAFP3rUuQkS/nPokZ4qgE00=",
17
+ "_ops.py": "ebZyCW+vFEQeWFBcyvjl5aL2bF86ROig66EXIaF4N9Y=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
+ "symbols.json": "fdd4zMGi+JSGhadpnzLoAgOJmwac1ucRXeXCIy6XNaw="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
+ "commit": "d0ed138c0e5132e810e6fbbbc2a5c6981a9c7649",
26
  "dirty": false
27
  },
28
  "kernel": {
29
+ "commit": "18153cd077b6541e9c4cb98ad9678db4e1253d1f",
30
  "dirty": false
31
  }
32
  }
build/torch211-xpu20253-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3434757597", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792811827", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCvtP29LNPJlPDdOdCzI7au4R/riS+0lSi18vyyRZGGmAIhAJ+Abbxe/jaxonF+EwTCq3WN0i9ntpb7W5+QfLoUWmtS"}, "inclusionProof":{"logIndex":"3312853335", "rootHash":"00dfCu/zuFU9io0H01g4XL8U1hx0iF+ildtLfsssdNk=", "treeSize":"3312853448", "hashes":["t7BrakF0pxLabzUh1jjm2DzuFSd0E9O8krlbZmrmnzI=", "JvIp1Bcr26RL0l0kj1VaQX5gGAereip/iFgv4KSUV6Q=", "3RQY/s13G7a76tw0Wi1cohravK3QqAG1g4mRCuGPUuA=", "CUiWwtuyJM9eLP6EVFevIPxoNoibBnVLMJrwEAtuH/U=", "Jx2aCZ0N7T47rqbmAwkaC9zJnWD8c3viq6+l6fOwmo8=", "wRSAOLjVDWD27mD8mh8nr5CMSu32Z5vUrwDBRUPT2z0=", "XJruJpVfrb/79sGXfI8ldU+fr4C8PjZXIzru+mkxZUo=", "iluJ2O3moAbdX+4UL5Mwb7vuUTHrrgr/GyKiiVf9EmE=", "ecntxtnxf7Wv1jnHOkjXfO3WpgZCQ6BusIU9ayPEmQI=", "/0h1q77t2M0cwUFzO9XWvsGvu08wg+uaZtSooF6VRVo=", "311qGYxj2us1hfCTJfkWyhodwGp/5wVZyxZo8POtD/U=", "bptXV3AQDejPGUKuSw48+UvbspRbkoEiDJE3UP1mXM0=", "kxm3SkqVZsyzvxBnctr9e1RjUfW2c1GU3aNOY1dzth4=", "v429CjMaikVN7AeQP8G/qVSQlh2NXejha29mbgC7OFs=", "wVYvbfvuGPPApUk0oNj5Nw1jcp1hjXeV+dnXr5on3XQ=", "iDfImp65w8dirRfYGNgFA34JTUYDWbcJwNBBU/Ok+X4=", "YYCr61A8azar3dfO8Ct+pri7LqDxkUlUkfs7fiqYErU=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3312853448\n00dfCu/zuFU9io0H01g4XL8U1hx0iF+ildtLfsssdNk=\n\n— rekor.sigstore.dev wNI9ajBFAiAP8T5WVHjkP7WklxpyIs0ZrU3xClBbjkX+S+OOJ+uifgIhAIOeOAmD2eFv58LfzossJ6Z++xDT4egJ+1VLb8+vSWH1\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJhZTNmZjQ2OTIyOGVhOWZlMzIzYjYwNTg3M2JkOWVmZWE2MzFlNjAzODAwMzdlYzdhOTBhMjRhMzBiODM1ZTE1In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQzlkbEZGWUMycENtc3U1ZktkaFRnMVdIM1QvTHEwaEJtU0F0TXFMWm5RZkFpRUFuZnkzSVMxLzkzVVdoalNyVmxzVElSNkR1cDhWZDNvMk9lbjNzdTV1bU5ZPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KUFowRjNTVUpCWjBsVlEzQkZaM2hzZEZGamJsWkJUVk5qV1dndmJWTllkbE5JYmt0amQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1RCTlJFMTRUbnBCTTFkb1kwNU5hbGw0VFVSSk1FMUVUWGxPZWtFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVVyT0VzM2FqaHRURmxQYTFWc1dtUTNjRUp4Um1GWWVtcDVLMnhHTDFaM1NWaElVR29LVG1wU1ZWRlhWazVFYWl0QlNrcDZOa0pqUVZoSE1qWjZZWGR1Y2xWYWJreFplWHBFVVc1d1ZWRjJSVXBLYTJSUmMwdFBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN3VG1wQmR3cE9SR1JxVFdwcmVGcHRUVE5hYWtKcFRUSlNhVnBFVVhsTmVteHBUa1JhYVZwRVZteE5WRWswVFZkSmVFOUVRVEpOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpCT2FrRjNUa1JrYWsxcWEzaGFiVTB6Q2xwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpCT2FrRjNDazVFWkdwTmFtdDRXbTFOTTFwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPUkZsM1RVUlJNMWw2U1RWTlYxcHFUakpaZDFscVRtdFpiVkV3VFdwTk5WbHFVVEpaYlZFeFdsUkZlVTlFUm1rS1RWUm5kMDVxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUnJORTFxV1RCTlJGVjRUbE01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWVN0c0wzbG5RVUZDUVUxQlUwUkNSMEZwUlVFdlExaEpNa1JtT0ZnclJtcEdMMUJUT1dWblZHUk1URE53VDJwSU0wRkRNQXBVVm1sd09XOWxaak5tYjBOSlVVTTFaV1J1U3pobVdGVmlhbXRsWkVGbVdEaFRTM00xTkdZNFF6SnVWbGxFTnpSUlNHcEVWVWNyV2twRVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2JrRkVRbXRCYWtGdlozSXdjMUI0TWpnemJWRmFabXhhZUVoWFZtaDJlRzVZYkZSSWJHZHJNM1pSUlVKSVduSmhiVGhrZUVjS2FFRjFkRkpCTkdKc2RGRkVUVXhZVkhkbGMwTk5RWEJVUkUxSGVqbERabU5tYkdoMlp6UklaWGhvZGtsV1pYQjVZalYzVDJadmVXWlJSVU54U1hOdWRBcE5VRkZMUXpnNVdWcE9PREJrY21obU0yUlJiVTFCUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgPzja33iolP5SqOqV9gmF225NLxCIEECpKoNQBJPOQMUCFHJR84Y2ArpYNGYW66/pRzxPgnHhGA8yMDI2MTAyNDAzMTcwN1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDI0MDMxNzA3WjAvBgkqhkiG9w0BCQQxIgQgwNmv2ao++WJRRpnvRhdUeUJON0oNvR2lHU5Oozyw/QowgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwKA5Kd1x8u6rLcVxkCLQw6apt9+0NdZFKRZ5nvAcqT1YqxDbEmYpTA/oj2bM9meaIAjEAtZsVXyuWrGbjyjPXweqQV9rZvux1/aUlF/OyMFBIzFm/KmiZdPvt+P0k7sSTo1wJ"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"rj/0aSKOqf4yO2BYc72e/qYx5gOAA37HqQokowuDXhU="}, "signature":"MEUCIC9dlFFYC2pCmsu5fKdhTg1WH3T/Lq0hBmSAtMqLZnQfAiEAnfy3IS1/93UWhjSrVlsTIR6Dup8Vd3o2Oen3su5umNY="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3505391001", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1793075877", "inclusionPromise":{"signedEntryTimestamp":"MEQCIDQsBPVVchIO0NEJI0HNIEq/rY0gFEpuT6PmOLfOosceAiAs4KB/l1HZG7tQ8sxXSaAPROzFAmkMzxw9+/YFLFg3ng=="}, "inclusionProof":{"logIndex":"3383486739", "rootHash":"NqMJ518/fmtomyWLT3RO+rwsAujILM6MR14pMw2KBMg=", "treeSize":"3383487533", "hashes":["PqIUoER0O6YeMV9QTCyADxVQBhrupFhFX4O3pHsKhRM=", "jb340hjEOTitgHlzUq5NsILJLvYkpVKrm2JVgUce438=", "gz9CYUOgi5hWfnKOrSS4H26zemfo75pZ+0SOLTmaSjU=", "PcrlR/qxbVcNWwkCyyQAXuRidNmWe99w8GHJGQsjCVM=", "aYSFhFXHDjrUbxj600gg/2AhNcz29baYy7PyPcuSUYw=", "G05fqzP3fTSOHGS9fmEzEfzSVCBGRD98gJNAx6dYY6Y=", "XzKic9bGYxOPgHyOhBX+WvQVSau+A9utNwImxmNaTSc=", "AA23cyiqzTC41UYyOYjaV7BtywGEBRnVvXq+KX2aDzQ=", "sktICkrbENKyLb9d5vSaB3HGReBMztgPznXTCDjf5so=", "Ka2ElMBsU5NnmtAasfhUI1FqbCHrFmsvRMSBCILk34w=", "ayDpc6lYILmqzT+ih3B7AzBFIMFiL975rNO6CJ5m1pQ=", "m+19uOaGTX95kXWe3/+f/PF88Cm1iqO8wi0U7x0lK60=", "3IWYyP4psAParYRXuFM3CfeJdPcidyA5+wenBeSGc1E=", "0tkBPflsXXWD/q1Sv6CfMMu1guzkZY6h7BnZWzHZcys=", "JTEfL/a+HBrsBFY9U2WvWWT8EYTBBoSiACj7I2LKREM=", "9RTTTRLi2/mYimEyHLICZSUkSEY+5bBAqMjiTSNp1lU=", "nJ74L4QP8yCXh97uHxDCZPQ+tkMLqi1tIOSyGOfbGRQ=", "AfhdCA0SKq06KfnBMbH03363Y2xDrpSlEAebhvj5YdU=", "EkBu+pSIqUL+stncmyWLXTfvg33KgWvQA/hFfSE8iGA=", "DGHKRV9Hj1e3Z4G8WPXuCUHHumJYK14vN1lAd3RRZqc=", "6isO7d5SZuUjk8FoC2N/4lrs2iljQ9nlCzDM90al4Mw=", "zGfeoWKmrZlXMOvyi3R2GDbGpmI1skJW/wLTXCCgF0o=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3383487533\nNqMJ518/fmtomyWLT3RO+rwsAujILM6MR14pMw2KBMg=\n\n— rekor.sigstore.dev wNI9ajBGAiEAm3SriV2Ij5/NAS56I2dszdtN6RxZl4fCDn6D7jURHq0CIQCU44y3qmZEwtmWC1riAxdTZSaESzeyNZkI7JX3WEJf/w==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIwZTczNzdjMzUzNjBlZjJiYzgzNTM4Y2NhMmY1MzYyZDY3MTdiODA0ODRjMDAxNDlkYTNkMTMzNDk5YTJlMWU3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURxZE5ubUZsWVFaZlZNVThtWUNCMVpoNzIwT1FXUWhGa2NEOTl0NVhUbm13SWdYcU5Iayt0M3pBUzZCUzIvS2RBMDB3eEkxVElXSXRIaTNFV2F2RG1RQ3JrPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExWRU5EUW5KRFowRjNTVUpCWjBsVlJERnhNVkIyZVdOaVVWcDJlakZYTkVsbk1WUjNNRlpzWW5CamQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1ROTlJGRjZUbnBWTWxkb1kwNU5hbGw0VFVSSk0wMUVVVEJPZWxVeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZJWWxJclRGZHFORlZOY2xoSFJqQTBiMVZMY0VoaGRHczVlR016ZG1OUmJ5dHNTV2NLZWlzdlJFMUhNU3MwTkVaTmNqVTVibEpCV1dsQ2R6TXlhalY1Y1RWTFRVRkVWM0ZJY2k5SmRtdERlRWxHU21aVlpEWlBRMEpqT0hkbloxaE1UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmQ0VDBSRk1RcE5NazVyVFVSak0xbHFXVEZPUkVac1QxZE5NRmt5U1RWUFIwWnJUMVJaTTA5SFVtbE9SMVY0VFdwVmVscEVSbTFOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWjNoUFJFVXhUVEpPYTAxRVl6TlphbGt4Q2s1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWjNoUFJFVXhDazB5VG10TlJHTXpXV3BaTVU1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlOVkdkNFRsUk9hbHBFUVROT01ra3lUbFJSZUZwVWJHcE9SMDVwVDFSb2FGcEVhekpPZW1ocldXcFNiRTFVU1RFS1RUSlJlRnBxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRnd1RVUk5lRTlVWXpOT1JHZDRUV2s1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkSkNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NHOUZaVUZDTWtGSVVVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWlRaaFVrSkJRVUZDUVUxQlVsUkNSRUZwUVM5Nk5tUkJjbGxEVG04emNuVlVjR3gyYzBkdVZqTkZkMEZOTjJkdVdDOUlNUW8wUVRSbFMwUXZibEZSU1daQ2RrVXlOazVJY21RMlZtdHdiVVZ2TTBGR1ozZEhkRTVhYUV4b1NuRnBVVEpIVFdoQ1Uya3lla1JCUzBKblozRm9hMnBQQ2xCUlVVUkJkMDV1UVVSQ2EwRnFRVzUyUkd0RWVrSm9hbkpPUTBaQ2FYRnVURkpZZGxkdmFYSnJXbXR2ZDJWb09WZGhSVFpNUTNFdlVVNVNRMFF5ZURFS2RqWktUSGQwUjFSQ2VEa3dUVzQ0UTAxSVJTdHZNVlZvZERGV1JqQjJTR2w1UkhoRGRFRnNZemcyYXpoMFdXcGFOMWMzZWpaRE5VOURjbkpyUjJJMldRcFZPWEpyVVhOVGQzaEtLMnd6WmpobVVtYzlQUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgw1C76e+znSMYPLFxLPLiYcjxpuVLKehMT4dZS5xB2yYCFA9xBqf4e8fd0LkMT3q/+M7oNOnDGA8yMDI2MTAyNzA0Mzc1NlowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDI3MDQzNzU2WjAvBgkqhkiG9w0BCQQxIgQgGYqz7OtPvpOoxpVMyg0BGep8Mb4qZtZY9ghR22T/SlEwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAIJexTWEF80Za0qyn8rkRNvhyCRemhl/qEwdfNXZcqCu9YpShJ+ghebEAXlLC+S9dQIxAPjDaZ95k1CaiOAC+RKtS3QzmyKp3O5o7/fL+NRvUoCFfUIIBipPqLevIl6w6NBS8g=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"DnN3w1Ng7yvINTjMovU2LWcXuASEwAFJ2j0TNJmi4ec="}, "signature":"MEUCIQDqdNnmFlYQZfVMU8mYCB1Zh720OQWQhFkcD99t5XTnmwIgXqNHk+t3zAS6BS2/KdA00wxI1TIWItHi3EWavDmQCrk="}}
build/torch211-xpu20253-x86_64-linux/symbols.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "schema_version": 1,
3
- "module": "_flash_attn2_xpu_460047c",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
@@ -83,7 +83,7 @@
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
@@ -155,7 +155,7 @@
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
@@ -221,7 +221,7 @@
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
@@ -329,7 +329,7 @@
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
@@ -425,7 +425,7 @@
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
@@ -503,7 +503,7 @@
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
@@ -629,7 +629,7 @@
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
- "module": "_flash_attn2_xpu_460047c",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
@@ -719,7 +719,7 @@
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
- "module": "_flash_attn2_xpu_460047c",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
@@ -857,7 +857,7 @@
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
- "module": "_flash_attn2_xpu_460047c",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
@@ -983,7 +983,7 @@
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
- "module": "_flash_attn2_xpu_460047c",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
@@ -1139,7 +1139,7 @@
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
- "module": "_flash_attn2_xpu_460047c",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
 
1
  {
2
  "schema_version": 1,
3
+ "module": "_flash_attn2_xpu_18153cd",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
 
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
 
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
 
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
 
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
 
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
 
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
 
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
+ "module": "_flash_attn2_xpu_18153cd",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
 
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
+ "module": "_flash_attn2_xpu_18153cd",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
 
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
+ "module": "_flash_attn2_xpu_18153cd",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
 
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
+ "module": "_flash_attn2_xpu_18153cd",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
 
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
+ "module": "_flash_attn2_xpu_18153cd",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
build/torch212-xpu20253-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:52c393bba1808c5837ba7e4674827696c0f46bcde4e39fa5ba6170c3b47cacba
3
  size 83935896
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1b0a4c3df95fe9ea34ba409a7d9c289f3e7fe6faf5a02d65411b79fbdb4043b8
3
  size 83935896
build/torch212-xpu20253-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _flash_attn2_xpu_460047c
3
- ops = torch.ops._flash_attn2_xpu_460047c
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_flash_attn2_xpu_460047c::{op_name}"
 
1
  import torch
2
+ from . import _flash_attn2_xpu_18153cd
3
+ ops = torch.ops._flash_attn2_xpu_18153cd
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_flash_attn2_xpu_18153cd::{op_name}"
build/torch212-xpu20253-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "flash-attn2",
3
- "id": "_flash_attn2_xpu_460047c",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
@@ -13,20 +13,20 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
- "_flash_attn2_xpu_460047c.abi3.so": "UsOTu6GAjFg3un5GdIJ2lsD0a83k45+lumFww7R8rLo=",
17
- "_ops.py": "HZjwooCDut16FGNQHV9lhPui7ds/0p/UXwHG3ps0HIA=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
- "symbols.json": "yW2V0d8YC44XlLwj22LiBnVEOxvAyKK7q7Z7P/ntYrQ="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
- "commit": "d054906a13710b811b96697b4635f03020842733",
26
  "dirty": false
27
  },
28
  "kernel": {
29
- "commit": "460047c291fc7f0b3dbd4239b46bd5e1281b1806",
30
  "dirty": false
31
  }
32
  }
 
1
  {
2
  "name": "flash-attn2",
3
+ "id": "_flash_attn2_xpu_18153cd",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
+ "_flash_attn2_xpu_18153cd.abi3.so": "GwpMPflf6eo0ukCafZwonz5/5vr1oC1lQRt5+9tAQ7g=",
17
+ "_ops.py": "ebZyCW+vFEQeWFBcyvjl5aL2bF86ROig66EXIaF4N9Y=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
+ "symbols.json": "fdd4zMGi+JSGhadpnzLoAgOJmwac1ucRXeXCIy6XNaw="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
+ "commit": "d0ed138c0e5132e810e6fbbbc2a5c6981a9c7649",
26
  "dirty": false
27
  },
28
  "kernel": {
29
+ "commit": "18153cd077b6541e9c4cb98ad9678db4e1253d1f",
30
  "dirty": false
31
  }
32
  }
build/torch212-xpu20253-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3434758011", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792811828", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCMzSg7m4p54VhwbNnDoOBXGU4TV1x0uG1A5K1hew0LnwIhAPdRqLcU+l3cClu6FF0t1djm4wnDrZbV7En0pjpqC1cF"}, "inclusionProof":{"logIndex":"3312853749", "rootHash":"MN9CsdT8RQF1/b7Zzx/2zpQMOxPpgrFNe8kJLddRMt4=", "treeSize":"3312853770", "hashes":["0ihrn2ey8aiFrWldfpKVVn0qtvDAlq6ndpqt+Al8a8k=", "qgrR30PbCm17Ly+lqnddEGPDvXnwRPREur5+wsLUgko=", "RFtZcfV94C3exY3pVUn7Nty8w8M/527QKqPcOSvLm5A=", "2QN5eQo4XkGyQS9jlzyutYovwqIsT0cty+E5HTQ7ask=", "sZNMEPZFpmxJNUS/7xTOq9y65ZJX1Rs4XFUt60gTLYM=", "QekH/X0gfEDpb7L/eZbrRhD2oNHZtO89Xel0pqK6NtM=", "IaqXX+6cCopi3DmzqDbTOYg10wFESYWKfMjw0TMrNGM=", "5MTd7zmRjDrO93As88yGFs6H298k3B1AlfNQwgAgqes=", "PVDvzWPzKEXwtivzUUEWO6DjLc69Px5UwoS1J7050VY=", "9DS53a0D+mQjmnZnTaSGW3ZFg9awMHGCg3vYPvUZNoE=", "/0h1q77t2M0cwUFzO9XWvsGvu08wg+uaZtSooF6VRVo=", "311qGYxj2us1hfCTJfkWyhodwGp/5wVZyxZo8POtD/U=", "bptXV3AQDejPGUKuSw48+UvbspRbkoEiDJE3UP1mXM0=", "kxm3SkqVZsyzvxBnctr9e1RjUfW2c1GU3aNOY1dzth4=", "v429CjMaikVN7AeQP8G/qVSQlh2NXejha29mbgC7OFs=", "wVYvbfvuGPPApUk0oNj5Nw1jcp1hjXeV+dnXr5on3XQ=", "iDfImp65w8dirRfYGNgFA34JTUYDWbcJwNBBU/Ok+X4=", "YYCr61A8azar3dfO8Ct+pri7LqDxkUlUkfs7fiqYErU=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3312853770\nMN9CsdT8RQF1/b7Zzx/2zpQMOxPpgrFNe8kJLddRMt4=\n\n— rekor.sigstore.dev wNI9ajBGAiEA9pry4T4JqcrI6nPVhYrsY8ntKJTlYByjEBtWPQIhQngCIQCHHK8yesgVtpokBtAJnAXr9VU/f3eQCEUJNuSRRc0Nug==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJkZmRlMzExNWRiZWQ4ZWExOWFmNzcwNDNkN2MzY2NhNTMzMmM5MzJkM2M2NGU5NGQ5ODRhMmNiOTQ3MDNlZTI3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUR3Wi9BVmI0emlpZ0M0aEI4UXFXa0t1SEZzR1JEaDNCbFY0UFhqYkM1aHd3SWhBTHZtTVNjdW5Td3B2aUF0MGFJeldnVW1hNGpYc2pNTGpIWmdLL1ZJMVArQiIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExha05EUW5KSFowRjNTVUpCWjBsVldIbFhRM1p0WnpsU0wzQkpSVkl3VUd0Q1ZIUmhVWFJ0YzBWTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1RCTlJFMTRUbnBCTkZkb1kwNU5hbGw0VFVSSk1FMUVUWGxPZWtFMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZEZG1WUlRFaDFPRzVNWVVSdFEyd3lWRlZTZW5KclRrWkhiMmx1Tm1RcmRqSlhUWE1LTWpOQmNUSnZXUzl6ZGtOVVVVcFllbGRMTTJzdmFESm9UMGx5ZGpONGRqRllOVGwwUWxoaFYyVkdWSEJRWWt0Q1NuRlBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN3VG1wQmR3cE9SR1JxVFdwcmVGcHRUVE5hYWtKcFRUSlNhVnBFVVhsTmVteHBUa1JhYVZwRVZteE5WRWswVFZkSmVFOUVRVEpOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpCT2FrRjNUa1JrYWsxcWEzaGFiVTB6Q2xwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpCT2FrRjNDazVFWkdwTmFtdDRXbTFOTTFwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPUkZsM1RVUlJNMWw2U1RWTlYxcHFUakpaZDFscVRtdFpiVkV3VFdwTk5WbHFVVEpaYlZFeFdsUkZlVTlFUm1rS1RWUm5kMDVxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUnJORTFxV1RCTlJGVjRUbE01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWVN0dFJXbFJRVUZDUVUxQlVtcENSVUZwUVRka1RIWjNNbU5vT1hKdGNISlZRVzlwY0RnMlZWazNZblJWTUM5V1pXODNOZ3BUYUdaeEsySmhjazFSU1dkUVRrRjNVV2xvYkVRMGVISk9NMDFDY21KaE1XZE5UekpsZW1sV1JXRlhZekpyTjFwbGRsaFdSekYzZDBObldVbExiMXBKQ25wcU1FVkJkMDFFV25kQmQxcEJTWGRKYjBkQmFEbDBkelprVkZoM1pHdHpSakJhVlRWdFpFWjNhekZOVlVaWU5UTkdUMlF4UVRaQ01XNVpjbE5IZWpFS1NYQjVhekZSWmpGbU5VNHZaVFpRV1VGcVFXeHBWak5hVDJGdlIydFdOeTk2TUZWVVZtMUdNbTB6TjJ4RFIwY3pPRWg1VW1sdWEyMVJVME5HYzNsSVdncE5TbkoyV2toSFVHRnNTREpoUVd4VmFXbGpQUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg6z5wWuS3TYkRbmX3F0fcprAkqbmkLTHrFP9/rAyzvhkCFQDQQIGl981w5xir+kYy13dmkZeG8BgPMjAyNjEwMjQwMzE3MDhaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAyNDAzMTcwOFowLwYJKoZIhvcNAQkEMSIEIK0rrltjk4a2suwgSl6ZT2QDtTEKxkuSkCHsh+hVEDfwMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQCgsnLOeB+byQd4wcjvZWeNmjUdJS9MQQ4GyGigHermlEuY+o+TLg9+ZMKswzgcYpkCMGKUb8ucR8ulUt44nbsqRNgZnbNVLlO8bfIQaWOVyyJmKN0FixovtMgUuGMWkNzTkg=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"394xFdvtjqGa93BD18PMpTMsky08ZOlNmEosuUcD7ic="}, "signature":"MEYCIQDwZ/AVb4ziigC4hB8QqWkKuHFsGRDh3BlV4PXjbC5hwwIhALvmMScunSwpviAt0aIzWgUma4jXsjMLjHZgK/VI1P+B"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHKjCCBrGgAwIBAgIUfeDPicH2rnqQkXzKNdz7hV6D2k4wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDI3MDQzODAzWhcNMjYxMDI3MDQ0ODAzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1nxCznIew082vxkm16hLCQsDz93uozpTNv+SrDp3burvPo3BvoKy94Jhe+6AbSzYxSMPX8jexhFxGRvZk2y7+6OCBdAwggXMMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBCgxODE1M2NkMDc3YjY1NDFlOWM0Y2I5OGFkOTY3OGRiNGUxMjUzZDFmMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDCgxODE1M2NkMDc3YjY1NDFlOWM0Y2I5OGFkOTY3OGRiNGUxMjUzZDFmMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDCgxODE1M2NkMDc3YjY1NDFlOWM0Y2I5OGFkOTY3OGRiNGUxMjUzZDFmMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoMTgxNTNjZDA3N2I2NTQxZTljNGNiOThhZDk2NzhkYjRlMTI1M2QxZjAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy80MDMxOTc3NDgxMi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGJBgorBgEEAdZ5AgQCBHsEeQB3AHUA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhe6autAAABAMARjBEAiBCMih3JSymtC7iAVZKUUQzZ40bDsucNsJadXI+anzvUgIgb83opuZjxRhmumqSsQ3alZHhXJa42Gi0sNpXNYaKNzgwCgYIKoZIzj0EAwMDZwAwZAIwfTTrZosASUKrVPGN97/QVvg4Q5BUDsSGyirP9wOSpoFeFZiz0BfDwHhsKvFEo/f3AjB3b/V5OJmsOpZJ+U67IDp6hw49ZPQxxpJ4C1FsXF5yCt2aTDD88J2C+Ihq0RVZ6s8="}, "tlogEntries":[{"logIndex":"3505393891", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1793075884", "inclusionPromise":{"signedEntryTimestamp":"MEUCIHM9EATAfLQsMp1OgggHQzT5yV0ijkKehr4U/riW5ZyLAiEAgnJZt8fLFD9G7afu4dPFZqGG478apI0z1CD+oAMjTUs="}, "inclusionProof":{"logIndex":"3383489629", "rootHash":"3bFzQ0lmKH0hHLXYbluSa15RiR2Y/69Cw6H1lHcA3Qc=", "treeSize":"3383490263", "hashes":["rThEeVBQVL25dv0GHtpXm67agrEFe+dgEXblA4TvG1M=", "mgQjJdB6OisBDStq26e8IN+4X7lMtvSyIANqUIU7wgM=", "wxeELcDHcJiXSkO0JQrP1aLXJ/gxkakPdO/f1t5FpKk=", "DsfrtRygXAD7dxWePIypNVMadgwvQJImOy28LFlys5M=", "TaR8QYmaatyqc23yYAvbdmORbzOGH6lKC/ccZN9DTwo=", "G5KltMPOIUfX3pMKRx4aUrmxMc0Te+45xGy4FJr4yX8=", "IQfXbDXqFrn/5CZ6TAlRSMpFnvZeV606rLAaz9gFmbw=", "mEAcGXv/T5xkbQ/9gJPKUszoG15lqSv4sesK+BodN/Y=", "HFc6sPSTdzT1a3wN5xgRmq5+UtE/m88eZyypjv7u5Kc=", "85XWdz/WWRxBuLfgzaV5adOtem29grYRsuyra0rYft0=", "WaNSc7RrVfl3k5LUU+UZYGwP0DiEsyRNVF3dycwi9YU=", "YXKVqIXe3u6qBHANJOsXF2BiMQqoeUwWbbCpMpvMqWw=", "3IWYyP4psAParYRXuFM3CfeJdPcidyA5+wenBeSGc1E=", "0tkBPflsXXWD/q1Sv6CfMMu1guzkZY6h7BnZWzHZcys=", "JTEfL/a+HBrsBFY9U2WvWWT8EYTBBoSiACj7I2LKREM=", "9RTTTRLi2/mYimEyHLICZSUkSEY+5bBAqMjiTSNp1lU=", "nJ74L4QP8yCXh97uHxDCZPQ+tkMLqi1tIOSyGOfbGRQ=", "AfhdCA0SKq06KfnBMbH03363Y2xDrpSlEAebhvj5YdU=", "EkBu+pSIqUL+stncmyWLXTfvg33KgWvQA/hFfSE8iGA=", "DGHKRV9Hj1e3Z4G8WPXuCUHHumJYK14vN1lAd3RRZqc=", "6isO7d5SZuUjk8FoC2N/4lrs2iljQ9nlCzDM90al4Mw=", "zGfeoWKmrZlXMOvyi3R2GDbGpmI1skJW/wLTXCCgF0o=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3383490263\n3bFzQ0lmKH0hHLXYbluSa15RiR2Y/69Cw6H1lHcA3Qc=\n\n— rekor.sigstore.dev wNI9ajBGAiEAoPI2zar+Vevti5oGqM+btBzdS0/Oh5u9x+6ex6ZAkQcCIQC5Qb3CHLuXFf9Zk8zSR+sByB8UG0AaHO5dz+ekArnl0w==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI5Mzc0Y2FjNmJhMGMxZWFhYjUzMGE5ZjBkOWIzNjdkZWJmNDhjOWY3NDNkNGVlMzY5MzdkMTE2YmI5ZGM1YmUxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJSEphYjU4VVRCVGhHNUxUNG15MFpPdUJ6cE04bFNIeE5OUUw0U2Fxc25SWUFpRUEwUWhUUkx0V281N3JKbThSbndSNmhCLy96QjBKYnVWM2RIanRGSEdQVnJJPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExha05EUW5KSFowRjNTVUpCWjBsVlptVkVVR2xqU0RKeWJuRlJhMWg2UzA1a2VqZG9WalpFTW1zMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1ROTlJGRjZUMFJCZWxkb1kwNU5hbGw0VFVSSk0wMUVVVEJQUkVGNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVV4Ym5oRGVtNUpaWGN3T0RKMmVHdHRNVFpvVEVOUmMwUjZPVE4xYjNwd1ZFNTJLMU1LY2tSd00ySjFjblpRYnpOQ2RtOUxlVGswU21obEt6WkJZbE42V1hoVFRWQllPR3BsZUdoR2VFZFNkbHByTW5rM0t6WlBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmQ0VDBSRk1RcE5NazVyVFVSak0xbHFXVEZPUkVac1QxZE5NRmt5U1RWUFIwWnJUMVJaTTA5SFVtbE9SMVY0VFdwVmVscEVSbTFOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWjNoUFJFVXhUVEpPYTAxRVl6TlphbGt4Q2s1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWjNoUFJFVXhDazB5VG10TlJHTXpXV3BaTVU1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlOVkdkNFRsUk9hbHBFUVROT01ra3lUbFJSZUZwVWJHcE9SMDVwVDFSb2FGcEVhekpPZW1ocldXcFNiRTFVU1RFS1RUSlJlRnBxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRnd1RVUk5lRTlVWXpOT1JHZDRUV2s1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWlRaaGRYUkJRVUZDUVUxQlVtcENSVUZwUWtOTmFXZ3pTbE41YlhSRE4ybEJWbHBMVlZWUmVsbzBNR0pFYzNWalRuTktZUXBrV0VrcllXNTZkbFZuU1dkaU9ETnZjSFZhYW5oU2FHMTFiWEZUYzFFellXeGFTR2hZU21FME1rZHBNSE5PY0ZoT1dXRkxUbnBuZDBObldVbExiMXBKQ25wcU1FVkJkMDFFV25kQmQxcEJTWGRtVkZSeVdtOXpRVk5WUzNKV1VFZE9PVGN2VVZaMlp6UlJOVUpWUkhOVFIzbHBjbEE1ZDA5VGNHOUdaVVphYVhvS01FSm1SSGRJYUhOTGRrWkZieTltTTBGcVFqTmlMMVkxVDBwdGMwOXdXa29yVlRZM1NVUndObWgzTkRsYVVGRjRlSEJLTkVNeFJuTllSalY1UTNReVlRcFVSRVE0T0VveVF5dEphSEV3VWxaYU5uTTRQUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgx5d/AFK7FnaL1+x93tpXW+1LaGy9TrR0m7w4VE9FFZ8CFFX1zB1NsOUxcSYjRCddynSFG+wDGA8yMDI2MTAyNzA0MzgwM1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDI3MDQzODAzWjAvBgkqhkiG9w0BCQQxIgQgxgsjqFX5X502U5zV+wPwM46O/tm2PLb959yVIULs4gEwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAKhgrkbUMvg1oEn0Zy/ISbYiePfj9DBIRciktiPMvr9Uz11xFgyXEy56wfsARp/tOAIxAOzNWLQwoXvFxNeH+9VnR6ukJ74Ccyfulexlr1yalTXZllMy6Q0HUkXCWfO4m8OElA=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"k3TKxroMHqq1MKnw2bNn3r9IyfdD1O42k30Ra7ncW+E="}, "signature":"MEUCIHJab58UTBThG5LT4my0ZOuBzpM8lSHxNNQL4SaqsnRYAiEA0QhTRLtWo57rJm8RnwR6hB//zB0JbuV3dHjtFHGPVrI="}}
build/torch212-xpu20253-x86_64-linux/symbols.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "schema_version": 1,
3
- "module": "_flash_attn2_xpu_460047c",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
@@ -83,7 +83,7 @@
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
@@ -155,7 +155,7 @@
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
@@ -221,7 +221,7 @@
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
@@ -329,7 +329,7 @@
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
@@ -425,7 +425,7 @@
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
@@ -503,7 +503,7 @@
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
@@ -629,7 +629,7 @@
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
- "module": "_flash_attn2_xpu_460047c",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
@@ -719,7 +719,7 @@
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
- "module": "_flash_attn2_xpu_460047c",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
@@ -857,7 +857,7 @@
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
- "module": "_flash_attn2_xpu_460047c",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
@@ -983,7 +983,7 @@
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
- "module": "_flash_attn2_xpu_460047c",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
@@ -1139,7 +1139,7 @@
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
- "module": "_flash_attn2_xpu_460047c",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
 
1
  {
2
  "schema_version": 1,
3
+ "module": "_flash_attn2_xpu_18153cd",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
 
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
 
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
 
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
 
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
 
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
 
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
 
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
+ "module": "_flash_attn2_xpu_18153cd",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
 
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
+ "module": "_flash_attn2_xpu_18153cd",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
 
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
+ "module": "_flash_attn2_xpu_18153cd",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
 
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
+ "module": "_flash_attn2_xpu_18153cd",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
 
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
+ "module": "_flash_attn2_xpu_18153cd",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
build/torch213-xpu20260-x86_64-linux/{_flash_attn2_xpu_460047c.abi3.so → _flash_attn2_xpu_18153cd.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8ca4953a1e50c6db9225a185bf42cecd1a97f12bf5f4441e151251a0620356f3
3
- size 154068680
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8be715e2beacbdecf9e5fa26849e005652e848daaa4dc2ed562c3b9087e8400c
3
+ size 154646216
build/torch213-xpu20260-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _flash_attn2_xpu_460047c
3
- ops = torch.ops._flash_attn2_xpu_460047c
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_flash_attn2_xpu_460047c::{op_name}"
 
1
  import torch
2
+ from . import _flash_attn2_xpu_18153cd
3
+ ops = torch.ops._flash_attn2_xpu_18153cd
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_flash_attn2_xpu_18153cd::{op_name}"
build/torch213-xpu20260-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "flash-attn2",
3
- "id": "_flash_attn2_xpu_460047c",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
@@ -13,20 +13,20 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
- "_flash_attn2_xpu_460047c.abi3.so": "jKSVOh5QxtuSJaGFv0LOzRqX8Sv19EQeFRJRoGIDVvM=",
17
- "_ops.py": "HZjwooCDut16FGNQHV9lhPui7ds/0p/UXwHG3ps0HIA=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
- "symbols.json": "yW2V0d8YC44XlLwj22LiBnVEOxvAyKK7q7Z7P/ntYrQ="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
- "commit": "d054906a13710b811b96697b4635f03020842733",
26
  "dirty": false
27
  },
28
  "kernel": {
29
- "commit": "460047c291fc7f0b3dbd4239b46bd5e1281b1806",
30
  "dirty": false
31
  }
32
  }
 
1
  {
2
  "name": "flash-attn2",
3
+ "id": "_flash_attn2_xpu_18153cd",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
+ "_flash_attn2_xpu_18153cd.abi3.so": "i+cV4r6svez55fomhJ4AVlLoSNqqTcLtViw7kIfoQAw=",
17
+ "_ops.py": "ebZyCW+vFEQeWFBcyvjl5aL2bF86ROig66EXIaF4N9Y=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
+ "symbols.json": "fdd4zMGi+JSGhadpnzLoAgOJmwac1ucRXeXCIy6XNaw="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
+ "commit": "d0ed138c0e5132e810e6fbbbc2a5c6981a9c7649",
26
  "dirty": false
27
  },
28
  "kernel": {
29
+ "commit": "18153cd077b6541e9c4cb98ad9678db4e1253d1f",
30
  "dirty": false
31
  }
32
  }
build/torch213-xpu20260-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3434758321", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792811829", "inclusionPromise":{"signedEntryTimestamp":"MEQCIDNtEQa1g61yX+fN1GsRNF+HuN6+y/ej+gVzCdRXmtzzAiA7uL4XHq7XDbqPPDcaCxVwz/SGULh8Pw5Q6OLUnEjh6A=="}, "inclusionProof":{"logIndex":"3312854059", "rootHash":"eiEdF1qVG7VSXQ9G7pid/ZgeeoMikNIOLFOibYvUxLM=", "treeSize":"3312854064", "hashes":["cpb4V8uy8NRHWKKbS4mKIGb90sf9c7w4PAIBAGbmgQY=", "wNxY/cwi/IgJipbbLLnEe11yO9fohSwK1PxwdWrDrEU=", "kg0yZUcd8aUUstxonyQ/9XdWbtAPeUx6kYXrcK46RYM=", "hpyPjFgjrPaUnLAJ/RVSuNDfZVGpW75g9F2aUyMBlaQ=", "lGXXNINonP3R0//bgFOx8BuPm2RH9nkzsMHqoaX9peI=", "SPouVOufPNcVCcSXg1UkBpExUPnZuyvtnbDR9sj4Zu4=", "/0h1q77t2M0cwUFzO9XWvsGvu08wg+uaZtSooF6VRVo=", "311qGYxj2us1hfCTJfkWyhodwGp/5wVZyxZo8POtD/U=", "bptXV3AQDejPGUKuSw48+UvbspRbkoEiDJE3UP1mXM0=", "kxm3SkqVZsyzvxBnctr9e1RjUfW2c1GU3aNOY1dzth4=", "v429CjMaikVN7AeQP8G/qVSQlh2NXejha29mbgC7OFs=", "wVYvbfvuGPPApUk0oNj5Nw1jcp1hjXeV+dnXr5on3XQ=", "iDfImp65w8dirRfYGNgFA34JTUYDWbcJwNBBU/Ok+X4=", "YYCr61A8azar3dfO8Ct+pri7LqDxkUlUkfs7fiqYErU=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3312854064\neiEdF1qVG7VSXQ9G7pid/ZgeeoMikNIOLFOibYvUxLM=\n\n— rekor.sigstore.dev wNI9ajBEAiBWs5h6XHIRHJD4tPBrn4vOm+DsQSYD80WXVcsDdKU1RwIgI7d0rpyPWFU1VrIKnNFfh0kUkjF+blSsO7oswVU9Y0U=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJmMjRiYzM4ODczMzRlNmZmNzlmNjJkY2UyZjRhMGZiYWVhZmZmZDAwOTc0NTY1MTdiYjQ3MmRiZTNmZDhhZGYxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQ1A3QWZaZWhVdDJwKzIwR1JHa3RmUEpIMGV6REJEc0JSQTlJMTlZeDBPRUFpRUFsMU5vUGVIZC9mMXU3eEVkejNWbmhhQ0l4NUsvR01QMVVyS3ZObHgvVGh3PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExla05EUW5KSFowRjNTVUpCWjBsVlpGWndSblZsVmtZNFNHY3hUMmswWlZkMlNtZzVNamxyYW5OWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1RCTlJFMTRUbnBCTlZkb1kwNU5hbGw0VFVSSk1FMUVUWGxPZWtFMVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVY0TVhJd2JWTnhPV0Z6ZEVSWlJsUmtUVVZyVjBKbGJHbE5UV3hYY1VoblkyVm9Uek1LU3pKdVdtNTBSV2h4TmpaRlUwMWhhakZZVVV0QlNHRktOM3BKZUdsYVRtRk5PRzVETDNSRWEzVldaa2N4VGpka2JuRlBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN3VG1wQmR3cE9SR1JxVFdwcmVGcHRUVE5hYWtKcFRUSlNhVnBFVVhsTmVteHBUa1JhYVZwRVZteE5WRWswVFZkSmVFOUVRVEpOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpCT2FrRjNUa1JrYWsxcWEzaGFiVTB6Q2xwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpCT2FrRjNDazVFWkdwTmFtdDRXbTFOTTFwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPUkZsM1RVUlJNMWw2U1RWTlYxcHFUakpaZDFscVRtdFpiVkV3VFdwTk5WbHFVVEpaYlZFeFdsUkZlVTlFUm1rS1RWUm5kMDVxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUnJORTFxV1RCTlJGVjRUbE01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWVN0dFNWVlJRVUZDUVUxQlVtcENSVUZwUWtWNVl5ODJTbWMwZG5KdGFTOHdOalJ0Ym1kUlNGbEhXakl6Vm5Jd09YbGlVUXBZY0ZZeFVVaHBPU3QzU1dkWmRHMTBlRmxTYms1MlpFSTRkVWh0V210SllXMHZhM2xCUkcxT2FXVlBORmRUYTNkemQxZG1MMmd3ZDBObldVbExiMXBKQ25wcU1FVkJkMDFFWVVGQmQxcFJTWGhCVG1Jd2VWUk9iRUo1VEd0TUszb3JVa1ZUVVdjemIzUlRSRlEzZFc5cGFUaEJaRUZ5WkZNMFRHRnhlbUU0YzJFS04yVXJjbVZvYjB0a1YzUkZWVUl6VEVsM1NYZEdhRmxDUjJaVE1XcDJNM3BrTXpkcE0ybFFWWFZOYlhOcE5XVkJiRVpWVlRoS2NHZ3hRM1ZYYWt0TFdRcFdTREZZTkM5b2NYSm5NRk0yTjBOR1F6WkxTd290TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQghBJzw//H9Kf0e70qo8M6+0kOxdKxCmzABI5RcphR76kCFENkr+pW+HLUW3GFiRfwDEpYipLbGA8yMDI2MTAyNDAzMTcwOVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDI0MDMxNzA5WjAvBgkqhkiG9w0BCQQxIgQgVOaOnqRB/xlHEN5YxMa1Lc6OO0/LLtbS6Rier/iAOEgwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAKZvSVSD7kFdvvxawHhhzPLeFZ00RAaEWiafZXr8Je0MXt0OYv+3Z8glhTAiSGBDpAIwfnSnCsba1fknrTsBohhJ/4f4t2rYfmE8cigDT4XY+PQa6lp/EKGTIwC6Fwb+moJd"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"8kvDiHM05v959i3OL0oPuur//QCXRWUXu0ctvj/YrfE="}, "signature":"MEUCICP7AfZehUt2p+20GRGktfPJH0ezDBDsBRA9I19Yx0OEAiEAl1NoPeHd/f1u7xEdz3VnhaCIx5K/GMP1UrKvNlx/Thw="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3505395377", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1793075888", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQDBaOZZRaNMgILieTE/PrtIBe8nfVrn46rLBMT8OB+m6wIhAJARBzZTSwqUa64Ti4LOi02FHJNMCuHEyOoplFk/HsEk"}, "inclusionProof":{"logIndex":"3383491115", "rootHash":"SjTHEwBH0dydAwzwGTGPQWCMwC+vemsxyHE0Evv9rvg=", "treeSize":"3383492954", "hashes":["PaLN1HkBsZPmBUbMjfg82wSvKOF4ecUGrVkDh7+NXT8=", "+gK9OV4JoH59084lDa1x6F8gppgWIy1kBcmHxxfYPTg=", "6xIlKGu1uRtwJT6YERUFOvCd3GNwnpz6VeD9btHpdX4=", "ycGToBeise+biIbY5IZXIAi0b/BltSPGTuY9gihUvxY=", "qoVm0hsyM8GJO4Zdut8X4GnwgfNVsVFYuiVmgkmVcqU=", "bynpAYyi84Qs9T5n+fCZ/k5U0gCkeLFEvkt94bAKi1Y=", "CrGdzEm//VJh2MPTgS0I9Vptoqfkpj22MRRSIOBrGCM=", "9jsi3KGt4+t63L5bJ81uVPBLlKUagHRzDe/aOwKRQbY=", "kRZcId2pZf7A8p0FoeXaDO0QRRM6HTPy125DNSdMqRI=", "EAokpYMpjIVnxkuFfVcSiHZGeI7x2sknIa0G+BgKOkY=", "eGtppVudEZQPyv2uOtyG3S8X2zZSpsh3QQjOR8pAnUA=", "nzM5t155G0P+aazam+6fKXLWyEK1YvMF6vCeMIcNPXE=", "YXKVqIXe3u6qBHANJOsXF2BiMQqoeUwWbbCpMpvMqWw=", "3IWYyP4psAParYRXuFM3CfeJdPcidyA5+wenBeSGc1E=", "0tkBPflsXXWD/q1Sv6CfMMu1guzkZY6h7BnZWzHZcys=", "JTEfL/a+HBrsBFY9U2WvWWT8EYTBBoSiACj7I2LKREM=", "9RTTTRLi2/mYimEyHLICZSUkSEY+5bBAqMjiTSNp1lU=", "nJ74L4QP8yCXh97uHxDCZPQ+tkMLqi1tIOSyGOfbGRQ=", "0B3z4xnLhtHOLuXR+t56hm3OUBeYiEY95/wTz8g5IBw=", "AfhdCA0SKq06KfnBMbH03363Y2xDrpSlEAebhvj5YdU=", "EkBu+pSIqUL+stncmyWLXTfvg33KgWvQA/hFfSE8iGA=", "DGHKRV9Hj1e3Z4G8WPXuCUHHumJYK14vN1lAd3RRZqc=", "6isO7d5SZuUjk8FoC2N/4lrs2iljQ9nlCzDM90al4Mw=", "zGfeoWKmrZlXMOvyi3R2GDbGpmI1skJW/wLTXCCgF0o=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3383492954\nSjTHEwBH0dydAwzwGTGPQWCMwC+vemsxyHE0Evv9rvg=\n\n— rekor.sigstore.dev wNI9ajBGAiEAiFld1xLr25/CiV09XnwoB6ZdPaiu5RuwrPtqbvtlID8CIQCIlCFPzQ8DSL3KqlIsjiwvmbAoCwac+upwCh4HHw67iA==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyNzU3NDFhODQ4ODMzMTljMGY1MjIwN2M0MjI5N2JmNWFhZmU5MjNjYzRmNzIzODA1MzZlYWJjNmY1MjE0NmQ4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRUlVM0MzTTR1QmUwL1QyTWZjK0dyQmloU3FqK1dlL2QrQXhJdCtwRUlJY0FpQjBvWWo0MlZTN3JqTU5qYk03OVdBOUxOZ1orUnNxOUd3TkYrOWYxM0l1b3c9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlpHUnVRMGw2WlhsdVZITTRaVVZKTkhCYVlYVXlOSEZoVFcxemQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1ROTlJGRjZUMFJCTkZkb1kwNU5hbGw0VFVSSk0wMUVVVEJQUkVFMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZKVWpRM09XMHpPVEJzTlhORmMxUnlaRlp0TUZWUmNqWXdOR3hQVjJ0a09VTlpObk1LUTNCcldEbDZOV2xZV0dkcGNqZ3lOMEZGYUZwM1oxRTViMnhtVm1OcVpUZFRlRXBEVkVod1lVMXdOMkVyVW1FMlNYRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmQ0VDBSRk1RcE5NazVyVFVSak0xbHFXVEZPUkVac1QxZE5NRmt5U1RWUFIwWnJUMVJaTTA5SFVtbE9SMVY0VFdwVmVscEVSbTFOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWjNoUFJFVXhUVEpPYTAxRVl6TlphbGt4Q2s1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWjNoUFJFVXhDazB5VG10TlJHTXpXV3BaTVU1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlOVkdkNFRsUk9hbHBFUVROT01ra3lUbFJSZUZwVWJHcE9SMDVwVDFSb2FGcEVhekpPZW1ocldXcFNiRTFVU1RFS1RUSlJlRnBxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRnd1RVUk5lRTlVWXpOT1JHZDRUV2s1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWlRaaEwzRjNRVUZDUVUxQlVucENSa0ZwUlVFdlRqazNWRGh6TlZGV1R5OVVWMEppU21VeVNUVm5VbEZYVG1Wa1FrTXhMd3BZTTNSRU1rZzBUbTlvYTBOSlIzQnVla3Q1WldwdU1FOUlVRXR3TVdwYVIybEhOVWxrT1NzeFYyaGhVbXBZUjI0eVJrSTJLMWR4UjAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUW5wV1VrbEJWbkF3YzAweFNXVjFVWGRTWm1KVVNuaFVkMFpvYTJWTGJGaE9ORFpHY0dGdVFVTlhlVmR0WVZjS1pIaFlZMGh5VEdsMmFsVk1ibmx4VTBkblNYaEJUMEZJUnk5dVdrVjFObXRpU2xSWGFpdHhWWGMxT0VwVWNVNWxPWFJ2Wm1wd1FsaEljSHBCYmxwRmVBcHpVWEJOVFV4VlYzZFlNakJNUlVvNFVYbGljMnBSUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgKIc4J4yOzU75fLl6GQYTpD8t6CAQ62U7LwB7Nqga1mYCFQCAl2VtUp2ywVZFJ+et7mFtQva2vRgPMjAyNjEwMjcwNDM4MDhaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAyNzA0MzgwOFowLwYJKoZIhvcNAQkEMSIEIDtkxfIb5hWBuncjuu9D4NKww+MHjI27VYcAz74jzpDdMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMHIHn2Hd53IBdjr8sUgV2UVQBz/FX5TTNVsBLZ2dNUND13IQ2DVNZ3Ws17RQ+NQpOwIwNophJguTg59bWUcLx5zdCOzt6UJ8I1XrZ1dGjrXO62bnFQ9iRSRE46/xbWflwxgf"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"J1dBqEiDMZwPUiB8Qil79ar+kjzE9yOAU26rxvUhRtg="}, "signature":"MEQCIEIU3C3M4uBe0/T2Mfc+GrBihSqj+We/d+AxIt+pEIIcAiB0oYj42VS7rjMNjbM79WA9LNgZ+Rsq9GwNF+9f13Iuow=="}}
build/torch213-xpu20260-x86_64-linux/symbols.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "schema_version": 1,
3
- "module": "_flash_attn2_xpu_460047c",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
@@ -83,7 +83,7 @@
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
@@ -155,7 +155,7 @@
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
@@ -221,7 +221,7 @@
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
@@ -329,7 +329,7 @@
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
@@ -425,7 +425,7 @@
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
@@ -503,7 +503,7 @@
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
@@ -629,7 +629,7 @@
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
- "module": "_flash_attn2_xpu_460047c",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
@@ -719,7 +719,7 @@
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
- "module": "_flash_attn2_xpu_460047c",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
@@ -857,7 +857,7 @@
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
- "module": "_flash_attn2_xpu_460047c",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
@@ -983,7 +983,7 @@
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
- "module": "_flash_attn2_xpu_460047c",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
@@ -1139,7 +1139,7 @@
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
- "module": "_flash_attn2_xpu_460047c",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
 
1
  {
2
  "schema_version": 1,
3
+ "module": "_flash_attn2_xpu_18153cd",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
 
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
 
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
 
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
 
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
 
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
 
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
 
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
+ "module": "_flash_attn2_xpu_18153cd",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
 
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
+ "module": "_flash_attn2_xpu_18153cd",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
 
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
+ "module": "_flash_attn2_xpu_18153cd",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
 
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
+ "module": "_flash_attn2_xpu_18153cd",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
 
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
+ "module": "_flash_attn2_xpu_18153cd",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
build/torch214-xpu20261-x86_64-linux/_flash_attn2_xpu_18153cd.abi3.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1ab05ae0933523cf4f7ceb663fe2c065d808f08d4eb5ff03a0e665368363469b
3
+ size 154650296
build/torch214-xpu20261-x86_64-linux/_flash_attn2_xpu_460047c.abi3.so DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:aab223c7a3db41d08e1585d91306d7503f4c4f0b3ce9a358dd7fed7806b04fe9
3
- size 83120224
 
 
 
 
build/torch214-xpu20261-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _flash_attn2_xpu_460047c
3
- ops = torch.ops._flash_attn2_xpu_460047c
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_flash_attn2_xpu_460047c::{op_name}"
 
1
  import torch
2
+ from . import _flash_attn2_xpu_18153cd
3
+ ops = torch.ops._flash_attn2_xpu_18153cd
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_flash_attn2_xpu_18153cd::{op_name}"
build/torch214-xpu20261-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "flash-attn2",
3
- "id": "_flash_attn2_xpu_460047c",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
@@ -13,20 +13,20 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
- "_flash_attn2_xpu_460047c.abi3.so": "qrIjx6PbQdCOFYXZEwbXUD9MTws86aNY3X/teAawT+k=",
17
- "_ops.py": "HZjwooCDut16FGNQHV9lhPui7ds/0p/UXwHG3ps0HIA=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
- "symbols.json": "yW2V0d8YC44XlLwj22LiBnVEOxvAyKK7q7Z7P/ntYrQ="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
- "commit": "d054906a13710b811b96697b4635f03020842733",
26
  "dirty": false
27
  },
28
  "kernel": {
29
- "commit": "460047c291fc7f0b3dbd4239b46bd5e1281b1806",
30
  "dirty": false
31
  }
32
  }
 
1
  {
2
  "name": "flash-attn2",
3
+ "id": "_flash_attn2_xpu_18153cd",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
+ "_flash_attn2_xpu_18153cd.abi3.so": "GrBa4JM1I89PfOtmP+LAZdgI8I1Otf8DoOZlNoNjRps=",
17
+ "_ops.py": "ebZyCW+vFEQeWFBcyvjl5aL2bF86ROig66EXIaF4N9Y=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
+ "symbols.json": "fdd4zMGi+JSGhadpnzLoAgOJmwac1ucRXeXCIy6XNaw="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
+ "commit": "d0ed138c0e5132e810e6fbbbc2a5c6981a9c7649",
26
  "dirty": false
27
  },
28
  "kernel": {
29
+ "commit": "18153cd077b6541e9c4cb98ad9678db4e1253d1f",
30
  "dirty": false
31
  }
32
  }
build/torch214-xpu20261-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3434758528", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792811830", "inclusionPromise":{"signedEntryTimestamp":"MEUCIG5nnwZFhIpVsGXkAWbSnL7PkZiWL6m4HMKPY15hy1SSAiEAhkFPKinkjMWSNpSlPjz9Mb9h8F2UYQcIL75ZDo8vQrc="}, "inclusionProof":{"logIndex":"3312854266", "rootHash":"tMsz8OKsW63Otys6Q5zgqr4emeDaVdXJYKvkZdDR++M=", "treeSize":"3312854336", "hashes":["SaqB8My8KbkKHk4OgGoOEXpjWsPH+S+ZnBhO+UySofs=", "wBzfbd8y8tGFHWbfQ7J7zbBu27bkxRepKUlgtH4H7Ug=", "nbSG25LWqBT3JEnLgkxAJAE71inNvo03KKwRRuVpeZI=", "PGEqVwByjbiE99mvX6Vxw9N/pdxuKiXzTzL2IyHIMw0=", "UsNscP5o8udXPbLUHFeQbRVdNWHOSjlFAQAvcThSb+w=", "Blj2OMii1tVbKbE9Ugof0fQEIzI2+cIrmeC7pyOKoy4=", "AfhNCn2oKB4f9+DQdjWxaN9wYuzcB+FpO3SuBLrAdwg=", "9j81Uqf5uHoGWS/JnmNSzo7PgruycVUQ3ZulUecvb9s=", "U7hAq7NvhZRKkjESm9fISG03wDOBfmc+4HR9sBAjFcg=", "SPouVOufPNcVCcSXg1UkBpExUPnZuyvtnbDR9sj4Zu4=", "/0h1q77t2M0cwUFzO9XWvsGvu08wg+uaZtSooF6VRVo=", "311qGYxj2us1hfCTJfkWyhodwGp/5wVZyxZo8POtD/U=", "bptXV3AQDejPGUKuSw48+UvbspRbkoEiDJE3UP1mXM0=", "kxm3SkqVZsyzvxBnctr9e1RjUfW2c1GU3aNOY1dzth4=", "v429CjMaikVN7AeQP8G/qVSQlh2NXejha29mbgC7OFs=", "wVYvbfvuGPPApUk0oNj5Nw1jcp1hjXeV+dnXr5on3XQ=", "iDfImp65w8dirRfYGNgFA34JTUYDWbcJwNBBU/Ok+X4=", "YYCr61A8azar3dfO8Ct+pri7LqDxkUlUkfs7fiqYErU=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3312854336\ntMsz8OKsW63Otys6Q5zgqr4emeDaVdXJYKvkZdDR++M=\n\n— rekor.sigstore.dev wNI9ajBFAiBl++q90EZMuYEpS2LuTogwRuQyXeFMgAoaMY2pBK3jwwIhANG9okcrM1UpgB1kkVQx+qQ9wGb0q1GjQj/McaGIQZMw\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3N2FmODNiYjgwZjcyNzc5ZDEyMTgzZGE1N2E1MjU3N2IwNzcxMjdiM2M0OGQ5NzQ0YWUxZjMwMjVjNzcyNzI2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNyUEN6L2FZcEw2WWozb3dSZGhYaU5MQXpya0hSZndIUGdOVGo4UFNNWG5nSWdTNDIrNEh3Mzl4ZzVWalcvakY2RmdZUzMrYXE3NFNldEg2U1NmREtmb0FrPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1ha05EUW5KUFowRjNTVUpCWjBsVlQwcFBiR0pCZUhOWVVYSkJkV0pvS3l0SE1VdFdSVlYxZUM5RmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1RCTlJFMTRUbnBGZDFkb1kwNU5hbGw0VFVSSk1FMUVUWGxPZWtWM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZYYkVaT1VTdGFTRUl4YUd0cFFtVktMekl4UTBkelpFbGxia1ZDVFdwWU1uTjFNakFLVm5NcmFtcE1Oa1Y1WTNGeVIyTmlaa05PV1hwRVlsZHpZM3B1TVdkWU1XcEVZalJRWVZSUGFYTktjekU0V1RaWVYwdFBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN3VG1wQmR3cE9SR1JxVFdwcmVGcHRUVE5hYWtKcFRUSlNhVnBFVVhsTmVteHBUa1JhYVZwRVZteE5WRWswVFZkSmVFOUVRVEpOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpCT2FrRjNUa1JrYWsxcWEzaGFiVTB6Q2xwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpCT2FrRjNDazVFWkdwTmFtdDRXbTFOTTFwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPUkZsM1RVUlJNMWw2U1RWTlYxcHFUakpaZDFscVRtdFpiVkV3VFdwTk5WbHFVVEpaYlZFeFdsUkZlVTlFUm1rS1RWUm5kMDVxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUnJORTFxV1RCTlJGVjRUbE01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWVN0dFRHVlJRVUZDUVUxQlUwUkNSMEZwUlVGc05FcFRiVlJOZHpGaVpFcHVTMVF6Y0VOelJHaE1aVXBNU1V4a2R6SlhXQW8wVXpCaVNsZHZjbXMxWjBOSlVVTm5ka2x3UlhOQ1kxSnpVRmczUmtOR2VVOVVUMUI1YmtGNEt6TTFNVmhXUVRWWU5WbzVaR2xaWkdwRVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2NFRkVRbTFCYWtWQmVXSkJkVEpaVEM5emNreE1VRTh4TVhoUFMweGFSVFZ5U1hkQ2VpOW9TRVZLTkU1SE16Y3ZaVlpSSzJzS2NWTm5VVXhMUjBkNWFYaGtRa3M1VjBNeU0ydEJha1ZCYzNWMWFuVTBjMmx0VlVWR1ZWVmpaMmhMTmxSU1VWUTJTRzg0V0c1QlNuSkpjWE41ZEhGUVp3cFpPVk13VTJVM2VUSmFXbTl3VjBGNWVFNXlUbU5uVm5nS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgqmgEgmtK7AlXFXUVJsTaDkZ+gUmWAO5RD+5SeTcsVqkCFQDgcuEjct/G0BUZvDPSyqF+Si0mxhgPMjAyNjEwMjQwMzE3MTBaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAyNDAzMTcxMFowLwYJKoZIhvcNAQkEMSIEIEIJ6zjoQRvJCVl/+Ezd+9qfRp+UzCJ8D2Zj5XV5fGJcMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMDhHuysvydWo4e1q1umsZasNjHax+xc/iXXnKxzg8Stgoj4F9bdxYLibJr3UUuO1pQIxANdQD3EWexHVuzcGCo98xIJ+Lp6ZJ4pwMFdrNzng7587rg1TGnmEhKFfKkeCn5oTmQ=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"d6+Du4D3J3nRIYPaV6Uld7B3Ens8SNl0SuHzAlx3JyY="}, "signature":"MEUCIQCrPCz/aYpL6Yj3owRdhXiNLAzrkHRfwHPgNTj8PSMXngIgS42+4Hw39xg5VjW/jF6FgYS3+aq74SetH6SSfDKfoAk="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3505398967", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1793075898", "inclusionPromise":{"signedEntryTimestamp":"MEUCIDgYdl7cflzGo27cw4y3kydCyriADEhrZt4REvfHJ8eUAiEAlvD0QiNrGWla+2EFNiUCinT/L8YcuZ4d/HbWxMhqCBs="}, "inclusionProof":{"logIndex":"3383494705", "rootHash":"MxMZCTe1EptpU65AmTYUmkpgD5Bi0hnpbi4iroM6RVU=", "treeSize":"3383495348", "hashes":["0wQBUJuO4tMyXA521f2sW8pddsNQA2GagRbMIZ4MHk0=", "3RlOvI1y6YnzpLcYkHDXq87mEHX/s7RcJrnzM+iR22Y=", "UXd0FUUZO520Yq/bz23MZWjjr2zx/ezvMx4Rw/68Le8=", "ooar1461FNsauKbfANbGhlpI6IacoFwrzUmGn/MK4MI=", "m3o0Pi6w8Im3ver79Wo159RVvbk3+3ONDmFGFduqImw=", "T6+0TXlHU7UdgbkHtBCV2Ss4xTRtOe0YEdirnJe9Kqo=", "Y58hjfKxlfD8DQ4akSjvqCvDMI4M4Byb8ieHumAqxeI=", "Z7ewHgpViO9HjQh0/L8gT9WR2XSjtfS/vpRHvQvpwdw=", "rHsymmrlrYVKeYTgkY10BbSoodPrI5ceMVxaMbeQnEw=", "jIgZrPvNYzh610eSkcG7aqU1GLGxKxS4I+hD19QPdsk=", "fXReEmkAkaOUZOCulzhkwguoTDkro8tzyQYqvYHwOZY=", "BoNBQF8eyYiOMgvXwuS7AP+IOA06w28xsp3nh5WzLJ0=", "AfhdCA0SKq06KfnBMbH03363Y2xDrpSlEAebhvj5YdU=", "EkBu+pSIqUL+stncmyWLXTfvg33KgWvQA/hFfSE8iGA=", "DGHKRV9Hj1e3Z4G8WPXuCUHHumJYK14vN1lAd3RRZqc=", "6isO7d5SZuUjk8FoC2N/4lrs2iljQ9nlCzDM90al4Mw=", "zGfeoWKmrZlXMOvyi3R2GDbGpmI1skJW/wLTXCCgF0o=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3383495348\nMxMZCTe1EptpU65AmTYUmkpgD5Bi0hnpbi4iroM6RVU=\n\n— rekor.sigstore.dev wNI9ajBFAiBXclGtxgR6/9MdSKFG2/VTvyMez8xYGszf9RIjzAp6XAIhAJNtcJB52Qy6pZ/S8GfRlS/NI8BP8PQ+/fpG4Os3888V\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIwNzBjMmVjZGNjNDMzYjA0M2NiYWU1NWNlN2Q3OGEwODQyZGY2YzFjYmRlMzVmZDBmNjMwMTU0ZDVkNjA0OTA4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQlJ1QlRvNGI2cGZ6VWFkOFJKbWpVT0hqR1VlcWRzU3VXNHVqRks4TW1qaUFpQmdDemgwRS9UcDVuamN4bU1tNFVuTER3MTdINkFyaE1DeFBZOElCaUVyUHc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KUFowRjNTVUpCWjBsVlUxTnZZWE5OVUZwTU5HdFJLM0ppU0dkMWJucFhiVUZIU25vNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1ROTlJGRjZUMFJGTTFkb1kwNU5hbGw0VFVSSk0wMUVVVEJQUkVVelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZyUVZGT1RGUmhNamRVYWxCM2NqSXhNUzh4T0hGS1RtdG1haTlvU1VwYVZreDNWVkFLVmt4emQwVlpXbHBFYVhVM05YUkdjM1o1UmxoUWRubDViVlpRYW1aTlpWVkpTSHBLVDJ0emRtWjFOaTlHY0d3dmFqWlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmQ0VDBSRk1RcE5NazVyVFVSak0xbHFXVEZPUkVac1QxZE5NRmt5U1RWUFIwWnJUMVJaTTA5SFVtbE9SMVY0VFdwVmVscEVSbTFOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWjNoUFJFVXhUVEpPYTAxRVl6TlphbGt4Q2s1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWjNoUFJFVXhDazB5VG10TlJHTXpXV3BaTVU1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlOVkdkNFRsUk9hbHBFUVROT01ra3lUbFJSZUZwVWJHcE9SMDVwVDFSb2FGcEVhekpPZW1ocldXcFNiRTFVU1RFS1RUSlJlRnBxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRnd1RVUk5lRTlVWXpOT1JHZDRUV2s1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWlRaaWFYVjNRVUZDUVUxQlUwUkNSMEZwUlVGcFdISkZiM0o1VDFoVE1EaG5jWGgxUlhOdGNtb3JVbGt2VjJaM1ZVdEhPQXBOVkZCT01uQmtWV2RaTkVOSlVVTmhlREZMYUdZdlEydEtUMWhVWkhCNVoxbDNRazl4TTBFM09GSTRNbkpxZUVnclNuQnpWRVpNTm14NlFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2JrRkVRbXRCYWtKRmFraDJVbFJYVWl0elVYaExaRUZoTVd3NWNGWXJiMFlyTjJJeVEwZEJTVkE0UTB3d1FrOXphemhhVW5RS1NtUjNTR2RuWXpoRVEweGFaM0pJTmtaRU9FTk5Sa2RuZGt4MmJXMUxRV2xyZUVkRWR6TnZRazgzTlVzMldqUnhLMHByUzI1c1IxZ3JkRkpNYUVneVF3b3lSVlJaVFZCTWFWbHRaWEl5VkZwVlYwOXhVbXRCUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgRedcIL83WJ3eeNLeTJjgC2fn1udrSVDqEKNJWUxtgEUCFQCo2a+4/3BXUHQ1WjSIffnFYedrLRgPMjAyNjEwMjcwNDM4MTdaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAyNzA0MzgxN1owLwYJKoZIhvcNAQkEMSIEIAbqZAXEPJ8TEbFvQcnDz3T8SdrFnTLZ2PVc6s3VesAZMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDzSPbf3MxlN8DvzYpA0Z1Pjr7SqtTX4PRO3tjCgvd0QNjcETXZ55pdFHk/I++p/I8CMHjEyabWn92FEAb+eFqAeRqNTwipoUJjy5q44qgr553g8TZR1y/lJbxAiIHE11BoTQ=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"BwwuzcxDOwQ8uuVc59eKCELfbBy941/Q9jAVTV1gSQg="}, "signature":"MEQCIBRuBTo4b6pfzUad8RJmjUOHjGUeqdsSuW4ujFK8MmjiAiBgCzh0E/Tp5njcxmMm4UnLDw17H6ArhMCxPY8IBiErPw=="}}
build/torch214-xpu20261-x86_64-linux/symbols.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "schema_version": 1,
3
- "module": "_flash_attn2_xpu_460047c",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
@@ -83,7 +83,7 @@
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
@@ -155,7 +155,7 @@
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
@@ -221,7 +221,7 @@
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
@@ -329,7 +329,7 @@
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
@@ -425,7 +425,7 @@
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
@@ -503,7 +503,7 @@
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
@@ -629,7 +629,7 @@
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
- "module": "_flash_attn2_xpu_460047c",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
@@ -719,7 +719,7 @@
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
- "module": "_flash_attn2_xpu_460047c",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
@@ -857,7 +857,7 @@
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
- "module": "_flash_attn2_xpu_460047c",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
@@ -983,7 +983,7 @@
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
- "module": "_flash_attn2_xpu_460047c",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
@@ -1139,7 +1139,7 @@
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
- "module": "_flash_attn2_xpu_460047c",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
 
1
  {
2
  "schema_version": 1,
3
+ "module": "_flash_attn2_xpu_18153cd",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
 
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
 
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
 
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
 
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
 
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
 
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
 
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
+ "module": "_flash_attn2_xpu_18153cd",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
 
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
+ "module": "_flash_attn2_xpu_18153cd",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
 
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
+ "module": "_flash_attn2_xpu_18153cd",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
 
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
+ "module": "_flash_attn2_xpu_18153cd",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
 
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
+ "module": "_flash_attn2_xpu_18153cd",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
build/torch215-xpu20261-x86_64-linux/_flash_attn2_xpu_18153cd.abi3.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3390006a98f1842838911416137cfe680fec9b8ba5f93e8b7b0d4567eabf0a5f
3
+ size 154650296
build/torch215-xpu20261-x86_64-linux/_flash_attn2_xpu_460047c.abi3.so DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:e7f9e95e181cd0ccd57fd0897d65a69e2938b3697d27965f7dbbcbb746423326
3
- size 83120224
 
 
 
 
build/torch215-xpu20261-x86_64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _flash_attn2_xpu_460047c
3
- ops = torch.ops._flash_attn2_xpu_460047c
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_flash_attn2_xpu_460047c::{op_name}"
 
1
  import torch
2
+ from . import _flash_attn2_xpu_18153cd
3
+ ops = torch.ops._flash_attn2_xpu_18153cd
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_flash_attn2_xpu_18153cd::{op_name}"
build/torch215-xpu20261-x86_64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "flash-attn2",
3
- "id": "_flash_attn2_xpu_460047c",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
@@ -13,20 +13,20 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
- "_flash_attn2_xpu_460047c.abi3.so": "5/npXhgc0MzVf9CJfWWmnik4s2l9J5ZffbvLt0ZCMyY=",
17
- "_ops.py": "HZjwooCDut16FGNQHV9lhPui7ds/0p/UXwHG3ps0HIA=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
- "symbols.json": "yW2V0d8YC44XlLwj22LiBnVEOxvAyKK7q7Z7P/ntYrQ="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
- "commit": "d054906a13710b811b96697b4635f03020842733",
26
  "dirty": false
27
  },
28
  "kernel": {
29
- "commit": "460047c291fc7f0b3dbd4239b46bd5e1281b1806",
30
  "dirty": false
31
  }
32
  }
 
1
  {
2
  "name": "flash-attn2",
3
+ "id": "_flash_attn2_xpu_18153cd",
4
  "version": 4,
5
  "kernels-minver": "0.14.0",
6
  "license": "BSD-3-Clause",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "Nz8hqrusjoUHQqszpxfF2USMwUXn1VfpvcmtAAvutSM=",
16
+ "_flash_attn2_xpu_18153cd.abi3.so": "M5AAapjxhCg4kRQWE3z+aA/sm4ul+T6Lew1FZ+q/Cl8=",
17
+ "_ops.py": "ebZyCW+vFEQeWFBcyvjl5aL2bF86ROig66EXIaF4N9Y=",
18
  "flash_attn_interface.py": "6UYUhfUax4+yOUygyS7K8dVjrIjU5GQr1AJ2gSp8rPo=",
19
+ "symbols.json": "fdd4zMGi+JSGhadpnzLoAgOJmwac1ucRXeXCIy6XNaw="
20
  }
21
  },
22
  "provenance": {
23
  "kernel-builder": {
24
  "version": "0.18.0-dev0",
25
+ "commit": "d0ed138c0e5132e810e6fbbbc2a5c6981a9c7649",
26
  "dirty": false
27
  },
28
  "kernel": {
29
+ "commit": "18153cd077b6541e9c4cb98ad9678db4e1253d1f",
30
  "dirty": false
31
  }
32
  }
build/torch215-xpu20261-x86_64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3434758785", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792811831", "inclusionPromise":{"signedEntryTimestamp":"MEQCIGkOqlOWcy0mizOmH1fnJxgrGzHK5hLrpH3nsaKYZZsXAiALL14gn6t2Rfr0FtPF3PY363efz3Refvi9f75VY82Yyg=="}, "inclusionProof":{"logIndex":"3312854523", "rootHash":"MWoogci1Ps5sEwMG6GERXVYJ6AdJZtZgQ9vcae7/V3k=", "treeSize":"3312854595", "hashes":["XlLM3dFy3ZUyVLyBLW+U9TgG+5jlNCGKFkZyjQPfuj0=", "Pd/obo79X8sOpn2TVKnEIhva85dikTGvn03xlsVKkIg=", "AbU98wh66kMbNZNWIf/s03DgHk5mSgj3Lo1HcsZ7gdM=", "ThAz6TWV4KAjU64q+9szMgsvsulYpCPYcWF1iX0w+8M=", "tVliH0PQnTacWuboVfuJ7SKBGWcZVGwtM/HQU+o+r3o=", "uSv8cCYGyNCgGCYdPoE1keSGEHb0m0WXq+pPqdNBMlM=", "yu8kyDiGRSZ+2D1pIIsQvnLLNNsDhfBCx9i9D2YtDH8=", "TwAjjfnqkHk0iE+qt/UG36SX2jRO6HMvOFXWTFcyBQU=", "EpSyyblvrUj5URaQ5MpVgHzrRQr6t8YJqT5TthNfjeY=", "Apcge1QzvvkObAiYFiYu6guoHnAN5mZEN75x+EiSnoE=", "SPouVOufPNcVCcSXg1UkBpExUPnZuyvtnbDR9sj4Zu4=", "/0h1q77t2M0cwUFzO9XWvsGvu08wg+uaZtSooF6VRVo=", "311qGYxj2us1hfCTJfkWyhodwGp/5wVZyxZo8POtD/U=", "bptXV3AQDejPGUKuSw48+UvbspRbkoEiDJE3UP1mXM0=", "kxm3SkqVZsyzvxBnctr9e1RjUfW2c1GU3aNOY1dzth4=", "v429CjMaikVN7AeQP8G/qVSQlh2NXejha29mbgC7OFs=", "wVYvbfvuGPPApUk0oNj5Nw1jcp1hjXeV+dnXr5on3XQ=", "iDfImp65w8dirRfYGNgFA34JTUYDWbcJwNBBU/Ok+X4=", "YYCr61A8azar3dfO8Ct+pri7LqDxkUlUkfs7fiqYErU=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3312854595\nMWoogci1Ps5sEwMG6GERXVYJ6AdJZtZgQ9vcae7/V3k=\n\n— rekor.sigstore.dev wNI9ajBEAiAlvSJP/+lhxq2y/4tkTNTnIWEVbficlmjshoinlgzM0AIgSqkM3lymi9iqZteZov+iQL9e1sx4lICmrx617jj+i0o=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2MDdmMzUwMGE2MDhiMTRhZjQ0NWRhZmFlMTY1ZmU1ZTkyNTdiMGQ0NTM3MjgyNDBkMTFhNjQ1MTFmOGVmZDhmIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQXhXOHVrYXpWSW05aTVRaWtyTFJ0VHhBTmhVL3NkQjRybUtNRlMwMVU2NUFpRUFxUm04YUJZbThXTXBjTzVscXdQMUR4WlNzV1dHRXMxUkxPaGw1TUVYZkVJPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KTFowRjNTVUpCWjBsVlNIQlBkVUptY0dKa1RDOVBVRkExTjBaUVptOVZjelJWVm5ObmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1RCTlJFMTRUbnBGZUZkb1kwNU5hbGw0VFVSSk1FMUVUWGxPZWtWNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ1WVhKUlRYQTFXRFpZWmxoTU5WWnRabHB2UmtsQlp5dFdTR1pQVFRoUWVsSTRkRm9LWlRsbFdrdEhkelZaTm1aVFlpOHdWRnBsWWs5MFpFa3pabVpCZDB4TGEzZDJhMGxXV1RKNmNGWTJPQ3N4VDA5eFVuRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN3VG1wQmR3cE9SR1JxVFdwcmVGcHRUVE5hYWtKcFRUSlNhVnBFVVhsTmVteHBUa1JhYVZwRVZteE5WRWswVFZkSmVFOUVRVEpOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpCT2FrRjNUa1JrYWsxcWEzaGFiVTB6Q2xwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpCT2FrRjNDazVFWkdwTmFtdDRXbTFOTTFwcVFtbE5NbEpwV2tSUmVVMTZiR2xPUkZwcFdrUldiRTFVU1RSTlYwbDRUMFJCTWsxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPUkZsM1RVUlJNMWw2U1RWTlYxcHFUakpaZDFscVRtdFpiVkV3VFdwTk5WbHFVVEpaYlZFeFdsUkZlVTlFUm1rS1RWUm5kMDVxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUnJORTFxV1RCTlJGVjRUbE01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWVN0dFVFaEJRVUZDUVUxQlVucENSa0ZwUVdweVRteHJWMjFCVWtOcEszUnBTVnBYVkN0VWNFTXhaRlpsVlVocFkwMUlXZ3AxYmxCSWFGbFdaRGQzU1doQlVGVkZOVTFESzFaU2FrSlVXSFJrVWs1QmRGTTJWbXBsYzI1WlYxRlVTV0ozYUd0dVptVTRTV1Z2VWsxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKclFVMUhXVU5OVVVORVV6bGlMMm81T1VKSk4weE1NRUVyZW14UmIxaFRiM295WWs4MFpYVXlOWEExV1U1NVZVSnJiVTUyYzBrS0wzRnhlR3BpTjNCaFQzVXdXVFZLVW05RVNVTk5VVVJIZG1GaGVqQkViMVIyVkVVMlp6UkJaekJFZWxwT1JISllaRTl6UWpSa01qVktaV054Wnl0TE1nb3pkV1ZxTmxoclEwUktZbVV6WmtwbmQzSTVOU3R4VVQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgaL41cvm1LWeQyAQqwRWam9kzuF4jqTJ+0MtKaXYXWSECFQCTPiMlJL7/0A1Q0gGpEX8I/6PpCxgPMjAyNjEwMjQwMzE3MTFaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAyNDAzMTcxMVowLwYJKoZIhvcNAQkEMSIEIOGfjeVss2W4qQozmySfisbuHi8s5j6MpX9Dxsjnsb6SMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMHhC+Wpn5TLKZuSaUozzJanyGNW0cpWsrLir8Ks6CvMOK6PC6T5VcIuFJXGnoU78iwIxAK547G0p5QXfuwIAQ1IiSWyqTuBgbOxsgw/zBaEC5PLPfo4Y6xTMxbT0w1vqgfQAJQ=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"YH81AKYIsUr0Rdr64WX+XpJXsNRTcoJA0RpkUR+O/Y8="}, "signature":"MEUCIAxW8ukazVIm9i5QikrLRtTxANhU/sdB4rmKMFS01U65AiEAqRm8aBYm8WMpcO5lqwP1DxZSsWWGEs1RLOhl5MEXfEI="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUCwaOl2+oq/H1KS9HDzD7zm+7ylQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDI3MDQzODIwWhcNMjYxMDI3MDQ0ODIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+sHSoGc/eo9BKfZ6/ZPwcOknb3nOC6ffxyx42QVQXJ2s5R8Ay4FKyuELBYmwBvnxSwfWZEaXekL47WBZ9v1yu6OCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBCgxODE1M2NkMDc3YjY1NDFlOWM0Y2I5OGFkOTY3OGRiNGUxMjUzZDFmMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDCgxODE1M2NkMDc3YjY1NDFlOWM0Y2I5OGFkOTY3OGRiNGUxMjUzZDFmMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDCgxODE1M2NkMDc3YjY1NDFlOWM0Y2I5OGFkOTY3OGRiNGUxMjUzZDFmMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoMTgxNTNjZDA3N2I2NTQxZTljNGNiOThhZDk2NzhkYjRlMTI1M2QxZjAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy80MDMxOTc3NDgxMi9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhe6bujAAABAMARzBFAiBRLMh3YibWN/g++xpexAUmDd6QA1ifQe6g3lnBqkjsogIhAOA8EHsM9p3O86/mWQKY3ZkBx3OilxlZsHHWl0Ae+T9pMAoGCCqGSM49BAMDA2gAMGUCMQDFvIt6eVU+9bXTcOA+7YiTcNjeZgzI6BRUn2a5ZudAu4SZoXpmiHAR0vbTh0KHnUICMHaBhJFZGoRC86917T87CfZhhWLK8hQ7n58OEr96TFhuq+HJnV/CfYbO9bWpEJHl9g=="}, "tlogEntries":[{"logIndex":"3505399934", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1793075900", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQDUmZ0B5AFY1OfdT8a/AvzyexRL/Q4g5sQN7EEDBrUPWwIgfTJayE8U0xYO/7vdaLbO/xh86iFXJQ9hOEIhp/DcO70="}, "inclusionProof":{"logIndex":"3383495672", "rootHash":"CRwNHiT7F7ZFIHj7VZZs87iraiGZQxF/dohTjSq1dGY=", "treeSize":"3383495759", "hashes":["6wiLt/+HFyjd26DQFuh01PxpnLHHq+RIZgMVpXhpVOc=", "NYnnhER4nfu0qUkFot5ej2GrenjkriuM3VIZ1qPV+MQ=", "seQ6aygbPoCgV38qa1WLqDEx891gJkcE8uOO0SjMWSA=", "urP7lS1STdKAuRkBXSbV3so9dQBV8szrVkaA8gIAHsQ=", "jn5fFCWbomZ9V3NDZjWYiUvCf5rD+72qOXvinmlbKOE=", "HKx4Y34E8gAqZkfRAkZy9XmS+5xnL/J4WxyOhYoeIi4=", "rr/BdI5N2GntfCZE2OK/DIWFryLRVpk3im0QC0+1WPU=", "btGh0AuPz+jEbQneyZCXAlCysRz2Y4ajJA2+finNJ+M=", "1ezhHaBly4Yd2PUCnlPDQRzCBeaxbpNEHXr1iD1ZW90=", "Ahh9k2glHOTUB7GKIFkxdj13OR78a7b9MsDZwT7jx0o=", "BslfHLXmyutIM6gJgGrKfh9FoKTPPPCIz+wv49iwvx4=", "fXReEmkAkaOUZOCulzhkwguoTDkro8tzyQYqvYHwOZY=", "BoNBQF8eyYiOMgvXwuS7AP+IOA06w28xsp3nh5WzLJ0=", "AfhdCA0SKq06KfnBMbH03363Y2xDrpSlEAebhvj5YdU=", "EkBu+pSIqUL+stncmyWLXTfvg33KgWvQA/hFfSE8iGA=", "DGHKRV9Hj1e3Z4G8WPXuCUHHumJYK14vN1lAd3RRZqc=", "6isO7d5SZuUjk8FoC2N/4lrs2iljQ9nlCzDM90al4Mw=", "zGfeoWKmrZlXMOvyi3R2GDbGpmI1skJW/wLTXCCgF0o=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3383495759\nCRwNHiT7F7ZFIHj7VZZs87iraiGZQxF/dohTjSq1dGY=\n\n— rekor.sigstore.dev wNI9ajBEAiAnPH/B6HNJvViE9DqPqVkKxRP2b7SAMpRuF1JAgpmOBAIgZt6QwxdeHWVlM6oVprsudYXfMo794viSbgmHbvWb5AU=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJmMWZkN2ZlZDU2NmY1Y2NlZWViMWEyYTFiZWNhNDAyYWIwODJhMWNjMGZjOGI1MTJjMGFhYTM4OTQxY2EwZjY2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRWNlYTYxWjBUSVNWMzlhaVJGME0yYWN2Rk9mczV0UUlqMWhWQTZCUEk3YkFpRUEvWGlzdkEvMzhwc3NuZGtpVmVKdWhsK3FXMll1QUxMWXhkSzFBY2IrQzZRPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlEzZGhUMnd5SzI5eEwwZ3hTMU01U0VSNlJEZDZiU3MzZVd4UmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFU1ROTlJGRjZUMFJKZDFkb1kwNU5hbGw0VFVSSk0wMUVVVEJQUkVsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVVyYzBoVGIwZGpMMlZ2T1VKTFpsbzJMMXBRZDJOUGEyNWlNMjVQUXpabVpuaDVlRFFLTWxGV1VWaEtNbk0xVWpoQmVUUkdTM2wxUlV4Q1dXMTNRblp1ZUZOM1psZGFSV0ZZWld0TU5EZFhRbG81ZGpGNWRUWlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmQ0VDBSRk1RcE5NazVyVFVSak0xbHFXVEZPUkVac1QxZE5NRmt5U1RWUFIwWnJUMVJaTTA5SFVtbE9SMVY0VFdwVmVscEVSbTFOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWjNoUFJFVXhUVEpPYTAxRVl6TlphbGt4Q2s1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWjNoUFJFVXhDazB5VG10TlJHTXpXV3BaTVU1RVJteFBWMDB3V1RKSk5VOUhSbXRQVkZrelQwZFNhVTVIVlhoTmFsVjZXa1JHYlUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlOVkdkNFRsUk9hbHBFUVROT01ra3lUbFJSZUZwVWJHcE9SMDVwVDFSb2FGcEVhekpPZW1ocldXcFNiRTFVU1RFS1RUSlJlRnBxUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRnd1RVUk5lRTlVWXpOT1JHZDRUV2s1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvWlRaaWRXcEJRVUZDUVUxQlVucENSa0ZwUWxKTVRXZ3pXV2xpVjA0dlp5c3JlSEJsZUVGVmJVUmtObEZCTVdsbVVXVTJad296Ykc1Q2NXdHFjMjluU1doQlQwRTRSVWh6VFRsd00wODROaTl0VjFGTFdUTmFhMEo0TTA5cGJIaHNXbk5JU0Zkc01FRmxLMVE1Y0UxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OVVVSR2RrbDBObVZXVlNzNVlsaFVZMDlCS3pkWmFWUmpUbXBsV21kNlNUWkNVbFZ1TW1FMVduVmtRWFUwVTFvS2IxaHdiV2xJUVZJd2RtSlVhREJMU0c1VlNVTk5TR0ZDYUVwR1drZHZVa000TmpreE4xUTROME5tV21ob1YweExPR2hSTjI0MU9FOUZjamsyVkVab2RRcHhLMGhLYmxZdlEyWlpZazg1WWxkd1JVcEliRGxuUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgzWVW3PPZW1WqEcnmo4bJvmeAsMa6gAnm0r008K5G/XsCFQCU3xIHwgLBG6A698E1RMi3/tylCRgPMjAyNjEwMjcwNDM4MjBaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAyNzA0MzgyMFowLwYJKoZIhvcNAQkEMSIEIDaZ9lG5x1buI4xFwBLSraxxN21cOfQXg4qfxIasOo+MMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMHNCOgXLzEeAD3t6BkgUnu5zDp0SffAD3XkBEcX7OEQ/EysUlzvv72sjWvn4maa/jQIxAIcbSZv9nFUIOkIKEfAIC2NYQhVxXHU2+Q4jbQlKpZWS+B7Xc31F5AQ0rmq7Us0MFg=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"8f1/7VZvXM7usaKhvspAKrCCocwPyLUSwKqjiUHKD2Y="}, "signature":"MEUCIEcea61Z0TISV39aiRF0M2acvFOfs5tQIj1hVA6BPI7bAiEA/XisvA/38pssndkiVeJuhl+qW2YuALLYxdK1Acb+C6Q="}}
build/torch215-xpu20261-x86_64-linux/symbols.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "schema_version": 1,
3
- "module": "_flash_attn2_xpu_460047c",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
@@ -83,7 +83,7 @@
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
@@ -155,7 +155,7 @@
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
@@ -221,7 +221,7 @@
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
@@ -329,7 +329,7 @@
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
@@ -425,7 +425,7 @@
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
@@ -503,7 +503,7 @@
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
- "module": "_flash_attn2_xpu_460047c.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
@@ -629,7 +629,7 @@
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
- "module": "_flash_attn2_xpu_460047c",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
@@ -719,7 +719,7 @@
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
- "module": "_flash_attn2_xpu_460047c",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
@@ -857,7 +857,7 @@
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
- "module": "_flash_attn2_xpu_460047c",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
@@ -983,7 +983,7 @@
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
- "module": "_flash_attn2_xpu_460047c",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
@@ -1139,7 +1139,7 @@
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
- "module": "_flash_attn2_xpu_460047c",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {
 
1
  {
2
  "schema_version": 1,
3
+ "module": "_flash_attn2_xpu_18153cd",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
9
  "kind": "function",
10
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k: (batch_size, seqlen, nheads_k, headdim)\n v: (batch_size, seqlen, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
11
  "signature": {
 
83
  {
84
  "name": "flash_attn_kvpacked_func",
85
  "qualname": "flash_attn_kvpacked_func",
86
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
87
  "kind": "function",
88
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n kv: (batch_size, seqlen, 2, nheads_k, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
89
  "signature": {
 
155
  {
156
  "name": "flash_attn_qkvpacked_func",
157
  "qualname": "flash_attn_qkvpacked_func",
158
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
159
  "kind": "function",
160
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_kvpacked_func and flash_attn_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (batch_size, seqlen, 3, nheads, headdim)\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|) is added to\n the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
161
  "signature": {
 
221
  {
222
  "name": "flash_attn_varlen_func",
223
  "qualname": "flash_attn_varlen_func",
224
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
225
  "kind": "function",
226
  "doc": "dropout_p should be set to 0.0 during evaluation\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in K, V with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n k: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n v: (total_k, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
227
  "signature": {
 
329
  {
330
  "name": "flash_attn_varlen_kvpacked_func",
331
  "qualname": "flash_attn_varlen_kvpacked_func",
332
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
333
  "kind": "function",
334
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of K, V.\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nArguments:\n q: (total_q, nheads, headdim), where total_q = total number of query tokens in the batch.\n kv: (total_k, 2, nheads_k, headdim), where total_k = total number of key tokens in the batch.\n cu_seqlens_q: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into q.\n cu_seqlens_k: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into kv.\n max_seqlen_q: int. Maximum query sequence length in the batch.\n max_seqlen_k: int. Maximum key sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
335
  "signature": {
 
425
  {
426
  "name": "flash_attn_varlen_qkvpacked_func",
427
  "qualname": "flash_attn_varlen_qkvpacked_func",
428
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
429
  "kind": "function",
430
  "doc": "dropout_p should be set to 0.0 during evaluation\nIf Q, K, V are already stacked into 1 tensor, this function will be faster than\ncalling flash_attn_varlen_func on Q, K, V since the backward pass avoids explicit concatenation\nof the gradients of Q, K, V.\nFor multi-query and grouped-query attention (MQA/GQA), please see\nflash_attn_varlen_kvpacked_func and flash_attn_varlen_func.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between [i - window_size[0], i + window_size[1]] inclusive.\n\nArguments:\n qkv: (total, 3, nheads, headdim), where total = total number of tokens in the batch.\n cu_seqlens: (batch_size + 1,), dtype torch.int32. The cumulative sequence lengths\n of the sequences in the batch, used to index into qkv.\n max_seqlen: int. Maximum sequence length in the batch.\n dropout_p: float. Dropout probability.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of (-alibi_slope * |i - j|)\n is added to the attention score of query i and key j.\n deterministic: bool. Whether to use the deterministic implementation of the backward pass,\n which is slightly slower and uses more memory. The forward pass is always deterministic.\n return_attn_probs: bool. Whether to return the attention probabilities. This option is for\n testing only. The returned probabilities are not guaranteed to be correct\n (they might not have the right scaling).\nReturn:\n out: (total, nheads, headdim).\n softmax_lse [optional, if return_attn_probs=True]: (nheads, total_q_seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).\n S_dmask [optional, if return_attn_probs=True]: (batch_size, nheads, seqlen, seqlen).\n The output of softmax (possibly with different scaling). It also encodes the dropout\n pattern (negative means that location was dropped, nonnegative means it was kept).",
431
  "signature": {
 
503
  {
504
  "name": "flash_attn_with_kvcache",
505
  "qualname": "flash_attn_with_kvcache",
506
+ "module": "_flash_attn2_xpu_18153cd.flash_attn_interface",
507
  "kind": "function",
508
  "doc": "If k and v are not None, k_cache and v_cache will be updated *inplace* with the new values from\nk and v. This is useful for incremental decoding: you can pass in the cached keys/values from\nthe previous step, and update them with the new keys/values from the current step, and do\nattention with the updated cache, all in 1 kernel.\n\nIf you pass in k / v, you must make sure that the cache is large enough to hold the new values.\nFor example, the KV cache could be pre-allocated with the max sequence length, and you can use\ncache_seqlens to keep track of the current sequence lengths of each sequence in the batch.\n\nAlso apply rotary embedding if rotary_cos and rotary_sin are passed in. The key @k will be\nrotated by rotary_cos and rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf causal or local (i.e., window_size != (-1, -1)), the query @q will be rotated by rotary_cos\nand rotary_sin at indices cache_seqlens, cache_seqlens + 1, etc.\nIf not causal and not local, the query @q will be rotated by rotary_cos and rotary_sin at\nindices cache_seqlens only (i.e. we consider all tokens in @q to be at position cache_seqlens).\n\nSee tests/test_flash_attn.py::test_flash_attn_kvcache for examples of how to use this function.\n\nSupports multi-query and grouped-query attention (MQA/GQA) by passing in KV with fewer heads\nthan Q. Note that the number of heads in Q must be divisible by the number of heads in KV.\nFor example, if Q has 6 heads and K, V have 2 heads, head 0, 1, 2 of Q will attention to head\n0 of K, V, and head 3, 4, 5 of Q will attention to head 1 of K, V.\n\nIf causal=True, the causal mask is aligned to the bottom right corner of the attention matrix.\nFor example, if seqlen_q = 2 and seqlen_k = 5, the causal mask (1 = keep, 0 = masked out) is:\n 1 1 1 1 0\n 1 1 1 1 1\nIf seqlen_q = 5 and seqlen_k = 2, the causal mask is:\n 0 0\n 0 0\n 0 0\n 1 0\n 1 1\nIf the row of the mask is all zero, the output will be zero.\n\nIf window_size != (-1, -1), implements sliding window local attention. Query at position i\nwill only attend to keys between\n[i + seqlen_k - seqlen_q - window_size[0], i + seqlen_k - seqlen_q + window_size[1]] inclusive.\n\nNote: Does not support backward pass.\n\nArguments:\n q: (batch_size, seqlen, nheads, headdim)\n k_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n page_block_size must be a multiple of 256.\n v_cache: (batch_size_cache, seqlen_cache, nheads_k, headdim) if there's no block_table,\n or (num_blocks, page_block_size, nheads_k, headdim) if there's a block_table (i.e. paged KV cache)\n k [optional]: (batch_size, seqlen_new, nheads_k, headdim). If not None, we concatenate\n k with k_cache, starting at the indices specified by cache_seqlens.\n v [optional]: (batch_size, seqlen_new, nheads_k, headdim). Similar to k.\n rotary_cos [optional]: (seqlen_ro, rotary_dim / 2). If not None, we apply rotary embedding\n to k and q. Only applicable if k and v are passed in. rotary_dim must be divisible by 16.\n rotary_sin [optional]: (seqlen_ro, rotary_dim / 2). Similar to rotary_cos.\n cache_seqlens: int, or (batch_size,), dtype torch.int32. The sequence lengths of the\n KV cache.\n cache_batch_idx: (batch_size,), dtype torch.int32. The indices used to index into the KV cache.\n If None, we assume that the batch indices are [0, 1, 2, ..., batch_size - 1].\n If the indices are not distinct, and k and v are provided, the values updated in the cache\n might come from any of the duplicate indices.\n cache_leftpad: (batch_size,), dtype torch.int32. The index that the KV cache starts. If None, assume 0.\n block_table [optional]: (batch_size, max_num_blocks_per_seq), dtype torch.int32.\n softmax_scale: float. The scaling of QK^T before applying softmax.\n Default to 1 / sqrt(headdim).\n causal: bool. Whether to apply causal attention mask (e.g., for auto-regressive modeling).\n window_size: (left, right). If not (-1, -1), implements sliding window local attention.\n softcap: float. Anything > 0 activates softcapping attention.\n rotary_interleaved: bool. Only applicable if rotary_cos and rotary_sin are passed in.\n If True, rotary embedding will combine dimensions 0 & 1, 2 & 3, etc. If False,\n rotary embedding will combine dimensions 0 & rotary_dim / 2, 1 & rotary_dim / 2 + 1\n (i.e. GPT-NeoX style).\n alibi_slopes: (nheads,) or (batch_size, nheads), fp32. A bias of\n (-alibi_slope * |i + seqlen_k - seqlen_q - j|)\n is added to the attention score of query i and key j.\n num_splits: int. If > 1, split the key/value into this many chunks along the sequence.\n If num_splits == 1, we don't split the key/value. If num_splits == 0, we use a heuristic\n to automatically determine the number of splits.\n Don't change this unless you know what you are doing.\n return_softmax_lse: bool. Whether to return the logsumexp of the attention scores.\n\nReturn:\n out: (batch_size, seqlen, nheads, headdim).\n softmax_lse [optional, if return_softmax_lse=True]: (batch_size, nheads, seqlen). The\n logsumexp of each row of the matrix QK^T * scaling (e.g., log of the softmax\n normalization factor).",
509
  "signature": {
 
629
  {
630
  "name": "fwd",
631
  "qualname": "fwd",
632
+ "module": "_flash_attn2_xpu_18153cd",
633
  "kind": "function",
634
  "doc": "Forward pass for multi-head attention.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Optional output tensor, same shape as q\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
635
  "signature": {
 
719
  {
720
  "name": "varlen_fwd",
721
  "qualname": "varlen_fwd",
722
+ "module": "_flash_attn2_xpu_18153cd",
723
  "kind": "function",
724
  "doc": "Forward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n q: Query tensor of shape [total_q, num_heads, head_size]\n k: Key tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n v: Value tensor of shape [total_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n out: Optional output tensor of shape [total_q, num_heads, head_size]\n seqused_k: Optional tensor specifying how many keys to use per batch element [batch_size]\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n return_softmax: Whether to return softmax weights\n gen: Optional random number generator\n\nReturns:\n List of tensors: [output, softmax_lse, (softmax if return_softmax)]",
725
  "signature": {
 
857
  {
858
  "name": "bwd",
859
  "qualname": "bwd",
860
+ "module": "_flash_attn2_xpu_18153cd",
861
  "kind": "function",
862
  "doc": "Backward pass for multi-head attention.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
863
  "signature": {
 
983
  {
984
  "name": "varlen_bwd",
985
  "qualname": "varlen_bwd",
986
+ "module": "_flash_attn2_xpu_18153cd",
987
  "kind": "function",
988
  "doc": "Backward pass for multi-head attention with variable sequence lengths.\n\nArgs:\n dout: Gradient tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n k: Key tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n v: Value tensor of shape [batch_size, seqlen_k, num_heads_k, head_size]\n out: Output tensor from forward pass of shape [batch_size, seqlen_q, num_heads, head_size]\n softmax_lse: Log-sum-exp values from forward pass of shape [batch_size, num_heads, seqlen_q]\n cu_seqlens_q: Cumulative sequence lengths for queries of shape [batch_size+1]\n cu_seqlens_k: Cumulative sequence lengths for keys of shape [batch_size+1]\n dq: Optional gradient tensor for queries, same shape as q\n dk: Optional gradient tensor for keys, same shape as k\n dv: Optional gradient tensor for values, same shape as v\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n max_seqlen_q: Maximum sequence length for queries\n max_seqlen_k: Maximum sequence length for keys\n p_dropout: Dropout probability\n softmax_scale: Scale factor for softmax\n zero_tensors: Whether to zero tensors before computation\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n deterministic: Whether to use deterministic algorithms\n gen: Optional random number generator\n rng_state: Optional RNG state from forward pass\n\nReturns:\n List of tensors: [dq, dk, dv]",
989
  "signature": {
 
1139
  {
1140
  "name": "fwd_kvcache",
1141
  "qualname": "fwd_kvcache",
1142
+ "module": "_flash_attn2_xpu_18153cd",
1143
  "kind": "function",
1144
  "doc": "Forward pass for multi-head attention with KV cache.\n\nArgs:\n q: Query tensor of shape [batch_size, seqlen_q, num_heads, head_size]\n kcache: Key cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n vcache: Value cache tensor of shape [batch_size_c, seqlen_k, num_heads_k, head_size] or [num_blocks, page_block_size, num_heads_k, head_size]\n k: Optional new keys tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n v: Optional new values tensor of shape [batch_size, seqlen_knew, num_heads_k, head_size]\n seqlens_k: Optional sequence lengths for keys of shape [batch_size]\n rotary_cos: Optional rotary cosine tensor of shape [seqlen_ro, rotary_dim/2]\n rotary_sin: Optional rotary sine tensor of shape [seqlen_ro, rotary_dim/2]\n cache_batch_idx: Optional indices to index into the KV cache\n leftpad_k: Optional left padding for keys of shape [batch_size]\n block_table: Optional block table of shape [batch_size, max_num_blocks_per_seq]\n alibi_slopes: Optional ALiBi slopes tensor of shape [num_heads] or [batch_size, num_heads]\n out: Optional output tensor, same shape as q\n softmax_scale: Scale factor for softmax\n is_causal: Whether to use causal attention\n window_size_left: Window size for left context (-1 for unlimited)\n window_size_right: Window size for right context (-1 for unlimited)\n softcap: Soft cap for attention weights\n is_rotary_interleaved: Whether rotary embeddings are interleaved\n num_splits: Number of splits for computation\n\nReturns:\n List of tensors: [output, softmax_lse]",
1145
  "signature": {