Uploaded using `kernel-builder`.

#2
by kernels-bot - opened
README.md CHANGED
@@ -3,7 +3,7 @@ library_name: kernels
3
  license: mit
4
  ---
5
 
6
- This is the repository card of kernels-community/aiter-flash-attn that has been pushed on the Hub. It was built to be used with the [`kernels` library](https://github.com/huggingface/kernels). This card was automatically generated.
7
 
8
  ## How to use
9
 
@@ -11,7 +11,7 @@ This is the repository card of kernels-community/aiter-flash-attn that has been
11
  # make sure `kernels` is installed: `pip install -U kernels`
12
  from kernels import get_kernel
13
 
14
- kernel_module = get_kernel("kernels-community/aiter-flash-attn", version=2)
15
  flash_attn_func = kernel_module.flash_attn_func
16
 
17
  flash_attn_func(...)
 
3
  license: mit
4
  ---
5
 
6
+ This is the repository card of amd/aiter-flash-attn that has been pushed on the Hub. It was built to be used with the [`kernels` library](https://github.com/huggingface/kernels). This card was automatically generated.
7
 
8
  ## How to use
9
 
 
11
  # make sure `kernels` is installed: `pip install -U kernels`
12
  from kernels import get_kernel
13
 
14
+ kernel_module = get_kernel("amd/aiter-flash-attn", version=2)
15
  flash_attn_func = kernel_module.flash_attn_func
16
 
17
  flash_attn_func(...)
build/torch-rocm/_kernels/flash_attn_triton_amd/bwd.py CHANGED
@@ -16,7 +16,7 @@ from .utils import (
16
 
17
  PREPROCESS_AUTOTUNE_KEYS = [
18
  "max_seqlen_q",
19
- "ACTUAL_HEAD_DIM",
20
  "IS_VARLEN",
21
  ]
22
 
@@ -24,7 +24,8 @@ CAUSAL_AUTOTUNE_KEYS = [
24
  "dropout_p",
25
  "max_seqlen_q",
26
  "max_seqlen_k",
27
- "ACTUAL_HEAD_DIM",
 
28
  "IS_VARLEN",
29
  "HQ",
30
  "HK",
@@ -34,7 +35,8 @@ NONCAUSAL_AUTOTUNE_KEYS = [
34
  "dropout_p",
35
  "max_seqlen_q",
36
  "max_seqlen_k",
37
- "ACTUAL_HEAD_DIM",
 
38
  "IS_VARLEN",
39
  "HQ",
40
  "HK",
 
16
 
17
  PREPROCESS_AUTOTUNE_KEYS = [
18
  "max_seqlen_q",
19
+ "ACTUAL_HEAD_DIM_V",
20
  "IS_VARLEN",
21
  ]
22
 
 
24
  "dropout_p",
25
  "max_seqlen_q",
26
  "max_seqlen_k",
27
+ "ACTUAL_HEAD_DIM_QK",
28
+ "ACTUAL_HEAD_DIM_V",
29
  "IS_VARLEN",
30
  "HQ",
31
  "HK",
 
35
  "dropout_p",
36
  "max_seqlen_q",
37
  "max_seqlen_k",
38
+ "ACTUAL_HEAD_DIM_QK",
39
+ "ACTUAL_HEAD_DIM_V",
40
  "IS_VARLEN",
41
  "HQ",
42
  "HK",
build/torch-rocm/_ops.py CHANGED
@@ -25,7 +25,7 @@ def get_backend() -> str:
25
 
26
  def _find_ops_name() -> str:
27
  kernel_name = "aiter_flash_attn"
28
- unique_id = "fe2bb66"
29
  backend = get_backend()
30
  return f"_{kernel_name}_{backend}_{unique_id}"
31
 
 
25
 
26
  def _find_ops_name() -> str:
27
  kernel_name = "aiter_flash_attn"
28
+ unique_id = "5fe9dbb"
29
  backend = get_backend()
30
  return f"_{kernel_name}_{backend}_{unique_id}"
31
 
build/torch-rocm/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "aiter-flash-attn",
3
- "id": "_aiter_flash_attn_rocm_fe2bb66",
4
  "version": 2,
5
  "kernels-minver": "0.14.0",
6
  "license": "MIT",
@@ -15,7 +15,7 @@
15
  "__init__.py": "V8KdHVvK1+C2G2Ji5P8jHcFXRJcFb6I+OvrP0qHheD4=",
16
  "_kernels/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
17
  "_kernels/flash_attn_triton_amd/__init__.py": "j/n4XyqMKr0Xcl2QVHY+/ZRLW9CT46EsHblfZfZRW8E=",
18
- "_kernels/flash_attn_triton_amd/bwd.py": "DX8+Ad+qnlCxv5P56EznW/TW01uwORim3ZWT0g/n3ok=",
19
  "_kernels/flash_attn_triton_amd/common.py": "Za22tFtoBkGxRqpEBvIexRBlNsVdPxMeL8WnRD3ZRXw=",
20
  "_kernels/flash_attn_triton_amd/fwd_decode.py": "8F/WwZpTCyFdy6ITf0Pe+HzUxnI4UmXt3c53RT5p34w=",
21
  "_kernels/flash_attn_triton_amd/fwd_prefill.py": "G1InUnNUtHevT2YInshAlAiEEyloDTJQqqsWxsLMkX0=",
@@ -25,7 +25,7 @@
25
  "_kernels/mha.py": "aXpxPRtrBPAPc9MXFPIMhZnGYddcd1+MlfrtrOBaKWQ=",
26
  "_kernels/mha_fused_bwd.py": "eXvVWoS0ysazZttrPfoDA14hDcL9zcjlpwyLVbeVxeU=",
27
  "_kernels/mha_onekernel_bwd.py": "DOWu0L/MqMNwGpHoBlObMtcnx+txk7juFlPF3FZ8U4I=",
28
- "_ops.py": "PsT9QAAJ8peP0WeFSwUb//GFxu/jMT7h+anpaJnOjKw=",
29
  "configs/gfx1150-MHA-DEFAULT.json": "fY8XJia4+bo/qBUZhODLcWdN8ic+0n0ZUWmxAbcdxjk=",
30
  "configs/gfx1151-MHA-DEFAULT.json": "fY8XJia4+bo/qBUZhODLcWdN8ic+0n0ZUWmxAbcdxjk=",
31
  "configs/gfx1250-MHA-DEFAULT.json": "MC9NGs+jRZ0ppvwjszTaoc6YYMsaHKdXiP1K/cUZTSg=",
@@ -34,7 +34,7 @@
34
  "mha.py": "tdH71c+PZ0vWTC6N5C79i0BzcmdUz3s6f2JuRhrrDSM=",
35
  "mha_fused_bwd.py": "80rk+DlUC52j/c1hHym8xryXll/xGUtaYxn29YgCSRs=",
36
  "mha_onekernel_bwd.py": "OsmmrfXuYtr/dwyZkC0beRZ+UM59lOoDQBQH4knQrGg=",
37
- "symbols.json": "7UweiWWUtK8f0BxFcmh5IOHuk0yMvShLxE6UJGQT6RQ=",
38
  "utils/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
39
  "utils/_triton/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
40
  "utils/_triton/arch_info.py": "D6l6BbeGTMMp48tMcti9Q2mLFsXBnbwoYeoMVyGyy6w=",
@@ -50,11 +50,11 @@
50
  "provenance": {
51
  "kernel-builder": {
52
  "version": "0.18.0-dev0",
53
- "commit": "d054906a13710b811b96697b4635f03020842733",
54
  "dirty": false
55
  },
56
  "kernel": {
57
- "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
58
  "dirty": false
59
  }
60
  }
 
1
  {
2
  "name": "aiter-flash-attn",
3
+ "id": "_aiter_flash_attn_rocm_5fe9dbb",
4
  "version": 2,
5
  "kernels-minver": "0.14.0",
6
  "license": "MIT",
 
15
  "__init__.py": "V8KdHVvK1+C2G2Ji5P8jHcFXRJcFb6I+OvrP0qHheD4=",
16
  "_kernels/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
17
  "_kernels/flash_attn_triton_amd/__init__.py": "j/n4XyqMKr0Xcl2QVHY+/ZRLW9CT46EsHblfZfZRW8E=",
18
+ "_kernels/flash_attn_triton_amd/bwd.py": "lGsltjiLtKO4vRMUmv5IzUWw2CPi+uG7AfTKVuGqI3w=",
19
  "_kernels/flash_attn_triton_amd/common.py": "Za22tFtoBkGxRqpEBvIexRBlNsVdPxMeL8WnRD3ZRXw=",
20
  "_kernels/flash_attn_triton_amd/fwd_decode.py": "8F/WwZpTCyFdy6ITf0Pe+HzUxnI4UmXt3c53RT5p34w=",
21
  "_kernels/flash_attn_triton_amd/fwd_prefill.py": "G1InUnNUtHevT2YInshAlAiEEyloDTJQqqsWxsLMkX0=",
 
25
  "_kernels/mha.py": "aXpxPRtrBPAPc9MXFPIMhZnGYddcd1+MlfrtrOBaKWQ=",
26
  "_kernels/mha_fused_bwd.py": "eXvVWoS0ysazZttrPfoDA14hDcL9zcjlpwyLVbeVxeU=",
27
  "_kernels/mha_onekernel_bwd.py": "DOWu0L/MqMNwGpHoBlObMtcnx+txk7juFlPF3FZ8U4I=",
28
+ "_ops.py": "lyeSILMGFhP3Wo3ytnmz7wH6TRXcd9jOcJ+2e0J96x8=",
29
  "configs/gfx1150-MHA-DEFAULT.json": "fY8XJia4+bo/qBUZhODLcWdN8ic+0n0ZUWmxAbcdxjk=",
30
  "configs/gfx1151-MHA-DEFAULT.json": "fY8XJia4+bo/qBUZhODLcWdN8ic+0n0ZUWmxAbcdxjk=",
31
  "configs/gfx1250-MHA-DEFAULT.json": "MC9NGs+jRZ0ppvwjszTaoc6YYMsaHKdXiP1K/cUZTSg=",
 
34
  "mha.py": "tdH71c+PZ0vWTC6N5C79i0BzcmdUz3s6f2JuRhrrDSM=",
35
  "mha_fused_bwd.py": "80rk+DlUC52j/c1hHym8xryXll/xGUtaYxn29YgCSRs=",
36
  "mha_onekernel_bwd.py": "OsmmrfXuYtr/dwyZkC0beRZ+UM59lOoDQBQH4knQrGg=",
37
+ "symbols.json": "MjzLzV945d3X064nIEtc5ahqIpcXhLErlJ77ooNLO+A=",
38
  "utils/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
39
  "utils/_triton/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
40
  "utils/_triton/arch_info.py": "D6l6BbeGTMMp48tMcti9Q2mLFsXBnbwoYeoMVyGyy6w=",
 
50
  "provenance": {
51
  "kernel-builder": {
52
  "version": "0.18.0-dev0",
53
+ "commit": "21bdf69d97a289b9c581a0c60f63deed131647d5",
54
  "dirty": false
55
  },
56
  "kernel": {
57
+ "commit": "5fe9dbb3d45f6f2652958c1f70e5381891fa7aa0",
58
  "dirty": false
59
  }
60
  }
build/torch-rocm/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLjCCBrOgAwIBAgIUJWsyFXgtGTum1jCoM+qwyeLFZfowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTA0ODM3WhcNMjYxMDE5MTA1ODM3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiF/IG2aUt17JyYcVltdxxj2/MKFOUqp/4VPhae+URdfx0jbACaiPr5y51PNJbXr3KJzu8cdECO/eGLRkbXgFQqOCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTUxNTg0Ni9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhU8cRkwAABAMASDBGAiEAhPiJtXTbgwZ3kTPB2XYt/4GObIBvmpfa/DoepXzTMv8CIQCCy+kUKXY7nj73wwZCV/Hcu8pxw4cy+Nbuno3H6Wha3zAKBggqhkjOPQQDAwNpADBmAjEAjqse6SOc76I43umXU189z4/baQrArLtgHO4AvEKBDis85c/28ILrcjtY0mO1f5ryAjEA00Lm/xEIIzm062ov2uftDANARz0lfxUD7oLzBdu2i3fqRFDjcrduz7X496upjPjk"}, "tlogEntries":[{"logIndex":"3320074406", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792406917", "inclusionPromise":{"signedEntryTimestamp":"MEUCIDfSrH0FRCsIC+joyQutYYyw9s4lUlv58BgbC/29c86PAiEAssx8dbswJJogyvdVslajKx6nqSbRS3wqs6kEkzejde0="}, "inclusionProof":{"logIndex":"3198170144", "rootHash":"Vha5rq1D9Jz6Xv8FOOFyhNT3vcCh/AqExWrCe4FBieQ=", "treeSize":"3198170146", "hashes":["Matvyag7DH2WGQ6WFMMlv/9vuXy4hobd/skKibGSOb0=", "0di0ysUN2b+Bzh4Y77CvYDauBByrlZY8Vw+YYPgTCDw=", "t+bF13oghnNWhvEPGWuJ3GSrAemcb6NyXdUgMQmd0nw=", "mYRxiYQkcP1L/Cwy4/s9+bVzbz3agcsV0/KsBJ6KeSc=", "XlZq0Tam0QY4z03gfNKdAZXwc+5eKuOO3j+1aAzrwW8=", "uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3198170146\nVha5rq1D9Jz6Xv8FOOFyhNT3vcCh/AqExWrCe4FBieQ=\n\n— rekor.sigstore.dev wNI9ajBFAiEAoJot0hekMaCkao8YZTH/fGZ9z4RpLSCu4iFhzCXfmjYCIFrSY1zqqw39mhAHU7350rQkeBnDXG3dBXX9QtFZ23gw\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJiMjc4MzQxZDAzMmU0MmFiZTBkNmJhNWM2MjdlYzY3OWZhYTgxZDNjMGFhMzEwN2VhNTliYmU0MjE4MzAxZDk0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJR3cxOGxaTmc2VzhadStDeCtiakpsWE5wbW0reTk4NXRlazhZL21nY3VqS0FpQnRWa0hvUExFRllFb1YwdVVNV0liT3RCYzg4bU5aSnp6UlBuWkhoMGxrY1E9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1ha05EUW5KUFowRjNTVUpCWjBsVlNsZHplVVpZWjNSSFZIVnRNV3BEYjAwcmNYZDVaVXhHV21admQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFRXdUMFJOTTFkb1kwNU5hbGw0VFVSRk5VMVVRVEZQUkUwelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZwUmk5SlJ6SmhWWFF4TjBwNVdXTldiSFJrZUhocU1pOU5TMFpQVlhGd0x6UldVR2dLWVdVclZWSmtabmd3YW1KQlEyRnBVSEkxZVRVeFVFNUtZbGh5TTB0S2VuVTRZMlJGUTA4dlpVZE1VbXRpV0dkR1VYRlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVVlhoT1ZHY3dUbWs1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVlRoalVtdDNRVUZDUVUxQlUwUkNSMEZwUlVGb1VHbEtkRmhVWW1kM1dqTnJWRkJDTWxoWmRDODBSMDlpU1VKMmJYQm1ZUW92Ukc5bGNGaDZWRTEyT0VOSlVVTkRlU3RyVlV0WVdUZHVhamN6ZDNkYVExWXZTR04xT0hCNGR6UmplU3RPWW5WdWJ6TklObGRvWVRONlFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2NFRkVRbTFCYWtWQmFuRnpaVFpUVDJNM05razBNM1Z0V0ZVeE9EbDZOQzlpWVZGeVFYSk1kR2RJVHpSQmRrVkxRa1JwY3pnS05XTXZNamhKVEhKamFuUlpNRzFQTVdZMWNubEJha1ZCTURCTWJTOTRSVWxKZW0wd05qSnZkakoxWm5SRVFVNUJVbm93YkdaNFZVUTNiMHg2UW1SMU1ncHBNMlp4VWtaRWFtTnlaSFY2TjFnME9UWjFjR3BRYW1zS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgKtKAo/mMLupVMIYsI96/u7Lz+3xTEuLJa6p6OqQ+vxsCFQDHTmw6DC3/Xua1KtiUttY21Wc1exgPMjAyNjEwMTkxMDQ4MzdaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEwNDgzN1owLwYJKoZIhvcNAQkEMSIEIFDWIZN/RpbymUHmwzM1GKiQmOuihYAPeMR404MNuVmsMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMA2sgm9HGEHaYW3uNdV4ix9n3Yc9t0lVd/wml/ucfkvgXI+9Lc0W6Q/eQR6TKhvrmAIwOaRvYsGfyNZn79DsGX+lVvJd4MrFAxasncGhXer6cM1nL+XkE8LRECiGkc4f+W/9"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"sng0HQMuQqvg1rpcYn7GefqoHTwKoxB+pZu+QhgwHZQ="}, "signature":"MEQCIGw18lZNg6W8Zu+Cx+bjJlXNpmm+y985tek8Y/mgcujKAiBtVkHoPLEFYEoV0uUMWIbOtBc88mNZJzzRPnZHh0lkcQ=="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrOgAwIBAgIUcZjucCFyYI3lfJKGYrZnOjIDDHcwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDMwMTU0ODQ0WhcNMjYxMDMwMTU1ODQ0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4o4mEqFNvup5rIhbN4/KWd+DadfjsLm1ReC3KPPQkbjr2EkohtHeWZuz0goVx8QcqWA7uJn9XaP6/IIfYSEExqOCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBCg1ZmU5ZGJiM2Q0NWY2ZjI2NTI5NThjMWY3MGU1MzgxODkxZmE3YWEwMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDCg1ZmU5ZGJiM2Q0NWY2ZjI2NTI5NThjMWY3MGU1MzgxODkxZmE3YWEwMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDCg1ZmU5ZGJiM2Q0NWY2ZjI2NTI5NThjMWY3MGU1MzgxODkxZmE3YWEwMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoNWZlOWRiYjNkNDVmNmYyNjUyOTU4YzFmNzBlNTM4MTg5MWZhN2FhMDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy80MTA4MzQzMDg1My9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhjX/IPAAABAMASDBGAiEApvokvrG6WvHFhuxnHeQf2wmZ+YK7R+cYJ9cEdTsQz+gCIQCVZI+mZL/Grmx2AaavDWgO/rx5iDbkd601nrv7tqcRQjAKBggqhkjOPQQDAwNnADBkAjADd9O2WaHNQml4OpphIxzqKA5nJQqoqJAru3bLPoZUdhwuY3fN74ZL5TJ6CiRAkdUCMGAMr4o5QccoDDw8mijmx5i/CWjuowsbwunmf8b8AThjuYSe1ROZYAXjcGGZvvpTmw=="}, "tlogEntries":[{"logIndex":"3596821838", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1793375324", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQDGvidqTFrp+myp5Hd8Hd5M4Wy8flxMoLE9G5x6ArNSeQIhALNwN5pC4fSIOowgFobe1pWR7eK9kLL8F6FfS/QBzzgC"}, "inclusionProof":{"logIndex":"3474917576", "rootHash":"/vcoJodnR64W76+lUXpIC29NpWFtGaZE/BzHSnBNd74=", "treeSize":"3474917693", "hashes":["eWF8bF79qu+dkhKmCRZlxjVrsbqr97by8lqfPmIgDrk=", "9VtYRngBXJB5oiqb/iCq1E53iAQYI9I5YdCFkG4/cFA=", "kD9tEuNF08bQSSPte/Oc2cW0+dHMOO5cSxJPPFgIuFw=", "8IPG4Y9LcCEH16eX++G1ESC+eUyNJ+qvAm4lKe8OILs=", "3dvIeZLgrFXI6etN6BmW0eV00zGE2Fh9CsWHNGx/sMM=", "sTLc7npGe02bnXjRm+S+jAGinQSriX8bdQs1D5+nuWY=", "7sJe28qiDxz8yoxJheX4o224lBzSVE+AbJiN0vvJn5w=", "O4TjPFRnu97iR0DMNPyEkLI2CKUz30p+bgADwpHzMe4=", "iTiOnRbcIAdiMBpd6Cxz4oPLHK65OKVdTTVc7GjEFv4=", "ac2aODHcGAM4jx1b5/m0qffplmbFFoA705g7p+p5Ud8=", "xh9r/iyfhDOte9aeYh4YYVlCd/ocNrH1SSlwoQrRIX4=", "m4q/2xqKhDKw3zaiWyQGw2uAblXSCvWOLU5u+Rqh6TQ=", "Vj1dqwl91IKLknCTGMZxfRmGLwaaOKyzWYkqpfhlx8o=", "p1I5ZggjULSs5zA57RP0QvK+8kSLtJbmWwR3QOsQo7g=", "dWJeI0tsGHeawe97b89LCkAlxWCLfrUshw9/HC6cfWA=", "e3OaWwzL1tEWYXiUzGpH+1v9CiFPwweyfRzIh3Z+uO4=", "b+938HIdfjdD/+LgIs3AVRE3Wc65/1NSSAL4OJ5FUXE=", "kQz/4ND7LdhfAQn+idNsO+ZFC32sfkYRlhjWF5W+sPc=", "zGfeoWKmrZlXMOvyi3R2GDbGpmI1skJW/wLTXCCgF0o=", "1DaDKzrCNNBhmSdY5vFjz+NpAmxmYfYEgBCdPLrMP1A=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3474917693\n/vcoJodnR64W76+lUXpIC29NpWFtGaZE/BzHSnBNd74=\n\n— rekor.sigstore.dev wNI9ajBEAiBxEsG9nizfrN+W8Fzl/oSET20WN/U4VdPpNKv7Q0DBmAIgQkWCfZ4CyLi7xBiiwpq/6G1v6eyVWMvF/Vg4tV7d5RQ=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjNGUwMWRiNGRmZmMzNzgxYTBlOGRmZWQ1ZDZmYTAzYTYwNDliMzRkZmU4YzczZmU0MGVjMzBjNmNkNjlhOWU4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNQdU5uVDhuOHpqRjA5RVd4OVdFb2w4aDVvU2diS1dwU0xLaVJ6am1PMjhnSWdVblllMnhlSktEVGpNNm1RSDNiS0hzSUhqSmJtYlhuQld6aHV3WGdENC8wPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KUFowRjNTVUpCWjBsVlkxcHFkV05EUm5sWlNUTnNaa3BMUjFseVdtNVBha2xFUkVoamQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFVFhkTlZGVXdUMFJSTUZkb1kwNU5hbGw0VFVSTmQwMVVWVEZQUkZFd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUwYnpSdFJYRkdUbloxY0RWeVNXaGlUalF2UzFka0swUmhaR1pxYzB4dE1WSmxRek1LUzFCUVVXdGlhbkl5Uld0dmFIUklaVmRhZFhvd1oyOVdlRGhSWTNGWFFUZDFTbTQ1V0dGUU5pOUpTV1paVTBWRmVIRlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN4V20xVk5RcGFSMHBwVFRKUk1FNVhXVEphYWtreVRsUkpOVTVVYUdwTlYxa3pUVWRWTVUxNlozaFBSR3Q0V20xRk0xbFhSWGROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpGYWJWVTFXa2RLYVUweVVUQk9WMWt5Q2xwcVNUSk9WRWsxVGxSb2FrMVhXVE5OUjFVeFRYcG5lRTlFYTNoYWJVVXpXVmRGZDAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpGYWJWVTFDbHBIU21sTk1sRXdUbGRaTWxwcVNUSk9WRWsxVGxSb2FrMVhXVE5OUjFVeFRYcG5lRTlFYTNoYWJVVXpXVmRGZDAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPVjFwc1QxZFNhVmxxVG10T1JGWnRUbTFaZVU1cVZYbFBWRlUwV1hwR2JVNTZRbXhPVkUwMFRWUm5OVTFYV21nS1RqSkdhRTFFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRnd1RWUkJORTE2VVhwTlJHY3hUWGs1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvYWxndlNWQkJRVUZDUVUxQlUwUkNSMEZwUlVGd2RtOXJkbkpITmxkMlNFWm9kWGh1U0dWUlpqSjNiVm9yV1VzM1VpdGpXUXBLT1dORlpGUnpVWG9yWjBOSlVVTldXa2tyYlZwTUwwZHliWGd5UVdGaGRrUlhaMDh2Y25nMWFVUmlhMlEyTURGdWNuWTNkSEZqVWxGcVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2JrRkVRbXRCYWtGRVpEbFBNbGRoU0U1UmJXdzBUM0J3YUVsNGVuRkxRVFZ1U2xGeGIzRktRWEoxTTJKTVVHOWFWV1JvZDNVS1dUTm1UamMwV2t3MVZFbzJRMmxTUVd0a1ZVTk5SMEZOY2pSdk5WRmpZMjlFUkhjNGJXbHFiWGcxYVM5RFYycDFiM2R6WW5kMWJtMW1PR0k0UVZSb2FncDFXVk5sTVZKUFdsbEJXR3BqUjBkYWRuWndWRzEzUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgKKcvFwxEUMU55ABgTBvYs1XolZroojHEnXs6roOa6N0CFCIpuywAqVhCOCcVA9cAoMUZtw3kGA8yMDI2MTAzMDE1NDg0NFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDMwMTU0ODQ0WjAvBgkqhkiG9w0BCQQxIgQgDojyoTeUUGT3K6FTA7Khje608ztaFNWVSCUfPpPBHJ8wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwXP8JDRqn5OQgzpjB6XnJ5RorKaD2fAVXhIR89vWXQQX8IqbrwsG81HIySaxGvXrIAjEAgakNLAXrQvnZNPzynM1lpzdp+5+099C3EQBBgi4bWUxCfihS1+TZo9Eiscp5fo7Q"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"xOAdtN/8N4Gg6N/tXW+gOmBJs03+jHP+QOwwxs1pqeg="}, "signature":"MEUCIQCPuNnT8n8zjF09EWx9WEol8h5oSgbKWpSLKiRzjmO28gIgUnYe2xeJKDTjM6mQH3bKHsIHjJbmbXnBWzhuwXgD4/0="}}
build/torch-rocm/symbols.json CHANGED
@@ -1,11 +1,11 @@
1
  {
2
  "schema_version": 1,
3
- "module": "_aiter_flash_attn_rocm_fe2bb66",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
- "module": "_aiter_flash_attn_rocm_fe2bb66.mha",
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_q).\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 bias: (seqlen_q, seqlen_k)\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).\n s_aux: (nheads,), attention sink scores (one per Q head), or None\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": {
@@ -101,7 +101,7 @@
101
  {
102
  "name": "flash_attn_varlen_func",
103
  "qualname": "flash_attn_varlen_func",
104
- "module": "_aiter_flash_attn_rocm_fe2bb66.mha",
105
  "kind": "function",
106
  "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 bias: (seqlen_q, seqlen_k)\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).\n s_aux: (nheads,), attention sink scores (one per Q head), or None\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).",
107
  "signature": {
@@ -233,7 +233,7 @@
233
  {
234
  "name": "flash_attn_with_kvcache",
235
  "qualname": "flash_attn_with_kvcache",
236
- "module": "_aiter_flash_attn_rocm_fe2bb66.mha",
237
  "kind": "function",
238
  "doc": "This mirrors the public flash_attn v2 interface for KV cache using the AMD Triton backend.\n\nArgs:\n q: (batch, seqlen_q, nheads_q, headdim)\n k_cache / v_cache: Either contiguous (batch, seqlen_cache, nheads_k, headdim) or paged\n (num_blocks, page_block_size, nheads_k, headdim) when block_table provided.\n k, v: Optional incremental tokens to append in-place (appended logically after existing cache).\n cache_seqlens: int or (batch,) current valid lengths per batch entry.\n softmax_scale: Optional override; defaults to 1/sqrt(headdim).\n causal: Apply causal masking.\n window_size: (left, right) local attention window; (-1,-1) = full.\n softcap: (float) currently must be 0.0 (backend limitation).\n num_splits: 0 or 1 only (backend limitation >1).\n rotary_cos/rotary_sin: Optional rotary embeddings (applied if provided) - interleaving flag unused here.\n cache_batch_idx/cache_leftpad: Optional indexing / left padding metadata.\n block_table: Optional paging table mapping logical blocks for paged KV cache.\n alibi_slopes: (nheads,) or (batch,nheads) bias slopes (currently ignored if provided - placeholder).\n rotary_interleaved: Flag kept for parity (currently forwarded as True constant to backend which ignores it).\n return_softmax_lse: If True returns (out, lse) else out.\n\nReturns:\n out (and optionally softmax_lse): (batch, seqlen_q, nheads_q, headdim)",
239
  "signature": {
@@ -359,7 +359,7 @@
359
  {
360
  "name": "mha_set_impl",
361
  "qualname": "mha_set_impl",
362
- "module": "_aiter_flash_attn_rocm_fe2bb66.mha",
363
  "kind": "function",
364
  "doc": "Set MHA forward implementation: 'default' (_attn_fwd) or 'dao_ai' (flash_attn_triton_amd).",
365
  "signature": {
@@ -377,7 +377,7 @@
377
  {
378
  "name": "mha_set_use_fused_bwd_kernel",
379
  "qualname": "mha_set_use_fused_bwd_kernel",
380
- "module": "_aiter_flash_attn_rocm_fe2bb66.mha",
381
  "kind": "function",
382
  "doc": "Set whether to use fused backward kernel (with atomics) or one-kernel backward (without atomics).\nFused backward is faster but doesn't support positional encoding.",
383
  "signature": {
@@ -395,7 +395,7 @@
395
  {
396
  "name": "mha_set_use_int64_strides",
397
  "qualname": "mha_set_use_int64_strides",
398
- "module": "_aiter_flash_attn_rocm_fe2bb66.mha",
399
  "kind": "function",
400
  "doc": "Use 64-bit integer strides to prevent integer overflows with very large tensors.",
401
  "signature": {
 
1
  {
2
  "schema_version": 1,
3
+ "module": "_aiter_flash_attn_rocm_5fe9dbb",
4
  "functions": [
5
  {
6
  "name": "flash_attn_func",
7
  "qualname": "flash_attn_func",
8
+ "module": "_aiter_flash_attn_rocm_5fe9dbb.mha",
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_q).\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 bias: (seqlen_q, seqlen_k)\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).\n s_aux: (nheads,), attention sink scores (one per Q head), or None\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": {
 
101
  {
102
  "name": "flash_attn_varlen_func",
103
  "qualname": "flash_attn_varlen_func",
104
+ "module": "_aiter_flash_attn_rocm_5fe9dbb.mha",
105
  "kind": "function",
106
  "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 bias: (seqlen_q, seqlen_k)\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).\n s_aux: (nheads,), attention sink scores (one per Q head), or None\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).",
107
  "signature": {
 
233
  {
234
  "name": "flash_attn_with_kvcache",
235
  "qualname": "flash_attn_with_kvcache",
236
+ "module": "_aiter_flash_attn_rocm_5fe9dbb.mha",
237
  "kind": "function",
238
  "doc": "This mirrors the public flash_attn v2 interface for KV cache using the AMD Triton backend.\n\nArgs:\n q: (batch, seqlen_q, nheads_q, headdim)\n k_cache / v_cache: Either contiguous (batch, seqlen_cache, nheads_k, headdim) or paged\n (num_blocks, page_block_size, nheads_k, headdim) when block_table provided.\n k, v: Optional incremental tokens to append in-place (appended logically after existing cache).\n cache_seqlens: int or (batch,) current valid lengths per batch entry.\n softmax_scale: Optional override; defaults to 1/sqrt(headdim).\n causal: Apply causal masking.\n window_size: (left, right) local attention window; (-1,-1) = full.\n softcap: (float) currently must be 0.0 (backend limitation).\n num_splits: 0 or 1 only (backend limitation >1).\n rotary_cos/rotary_sin: Optional rotary embeddings (applied if provided) - interleaving flag unused here.\n cache_batch_idx/cache_leftpad: Optional indexing / left padding metadata.\n block_table: Optional paging table mapping logical blocks for paged KV cache.\n alibi_slopes: (nheads,) or (batch,nheads) bias slopes (currently ignored if provided - placeholder).\n rotary_interleaved: Flag kept for parity (currently forwarded as True constant to backend which ignores it).\n return_softmax_lse: If True returns (out, lse) else out.\n\nReturns:\n out (and optionally softmax_lse): (batch, seqlen_q, nheads_q, headdim)",
239
  "signature": {
 
359
  {
360
  "name": "mha_set_impl",
361
  "qualname": "mha_set_impl",
362
+ "module": "_aiter_flash_attn_rocm_5fe9dbb.mha",
363
  "kind": "function",
364
  "doc": "Set MHA forward implementation: 'default' (_attn_fwd) or 'dao_ai' (flash_attn_triton_amd).",
365
  "signature": {
 
377
  {
378
  "name": "mha_set_use_fused_bwd_kernel",
379
  "qualname": "mha_set_use_fused_bwd_kernel",
380
+ "module": "_aiter_flash_attn_rocm_5fe9dbb.mha",
381
  "kind": "function",
382
  "doc": "Set whether to use fused backward kernel (with atomics) or one-kernel backward (without atomics).\nFused backward is faster but doesn't support positional encoding.",
383
  "signature": {
 
395
  {
396
  "name": "mha_set_use_int64_strides",
397
  "qualname": "mha_set_use_int64_strides",
398
+ "module": "_aiter_flash_attn_rocm_5fe9dbb.mha",
399
  "kind": "function",
400
  "doc": "Use 64-bit integer strides to prevent integer overflows with very large tensors.",
401
  "signature": {