Kernels:
Trusted publisher
Uploaded using `kernel-builder`.
Browse files- README.md +3 -4
- build/torch-rocm/__init__.py +11 -32
- build/torch-rocm/_ops.py +5 -2
- build/torch-rocm/aiter_rope/__init__.py +0 -26
- build/torch-rocm/layers.py +59 -0
- build/torch-rocm/metadata.json +19 -5
- build/torch-rocm/metadata.json.sigstore +1 -1
- build/torch-rocm/symbols.json +186 -0
README.md
CHANGED
|
@@ -11,14 +11,13 @@ This is the repository card of kernels-community/aiter-rope that has been pushed
|
|
| 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-rope", version=
|
| 15 |
-
|
| 16 |
|
| 17 |
-
|
| 18 |
```
|
| 19 |
|
| 20 |
## Available functions
|
| 21 |
-
- `__kernel_metadata__`
|
| 22 |
- `RotateStyle`
|
| 23 |
- `apply_rotary_transformers`
|
| 24 |
- `rope_cached_fwd`
|
|
|
|
| 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-rope", version=3)
|
| 15 |
+
RotateStyle = kernel_module.RotateStyle
|
| 16 |
|
| 17 |
+
RotateStyle(...)
|
| 18 |
```
|
| 19 |
|
| 20 |
## Available functions
|
|
|
|
| 21 |
- `RotateStyle`
|
| 22 |
- `apply_rotary_transformers`
|
| 23 |
- `rope_cached_fwd`
|
build/torch-rocm/__init__.py
CHANGED
|
@@ -8,8 +8,8 @@ the ROCm entry of ``_KERNEL_MAPPING["rotary_pos_emb"]`` with zero model-side
|
|
| 8 |
changes.
|
| 9 |
"""
|
| 10 |
|
| 11 |
-
import
|
| 12 |
-
|
| 13 |
from .rope import (
|
| 14 |
RotateStyle,
|
| 15 |
rope_cached_fwd,
|
|
@@ -22,17 +22,7 @@ __kernel_metadata__ = {
|
|
| 22 |
}
|
| 23 |
|
| 24 |
|
| 25 |
-
def
|
| 26 |
-
# transformers passes attention tensors as (batch, heads, seq, head_dim);
|
| 27 |
-
# AITER's kernels operate in (seq, batch, heads, head_dim).
|
| 28 |
-
return t.permute(2, 0, 1, 3).contiguous()
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
def _to_bhsd(t: torch.Tensor) -> torch.Tensor:
|
| 32 |
-
return t.permute(1, 2, 0, 3)
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
def apply_rotary_transformers(q, k, cos, sin, position_ids=None, unsqueeze_dim=1):
|
| 36 |
"""Apply NEOX-style RoPE to ``q`` and ``k``.
|
| 37 |
|
| 38 |
Signature mirrors ``kernels-community/rotary``'s ``apply_rotary_transformers``
|
|
@@ -41,37 +31,26 @@ def apply_rotary_transformers(q, k, cos, sin, position_ids=None, unsqueeze_dim=1
|
|
| 41 |
|
| 42 |
Args:
|
| 43 |
q, k: ``(batch, heads, seq, head_dim)``.
|
| 44 |
-
cos, sin: ``(batch, seq, head_dim // 2)`` — pre-``unsqueeze``
|
| 45 |
-
|
| 46 |
-
|
|
|
|
| 47 |
|
| 48 |
Returns:
|
| 49 |
``(q_embed, k_embed)`` in the same shape as ``q``, ``k``.
|
| 50 |
"""
|
| 51 |
-
|
| 52 |
-
k_sbhd = _to_sbhd(k)
|
| 53 |
-
|
| 54 |
-
# Cached path expects (seq, 1, 1, head_dim/2). Take batch index 0 — for the
|
| 55 |
-
# standard (unpadded, equal-length) inference case all batch rows share the
|
| 56 |
-
# same cos/sin since they come from the same position_ids.
|
| 57 |
-
cos_freqs = cos[0].unsqueeze(1).unsqueeze(1).contiguous()
|
| 58 |
-
sin_freqs = sin[0].unsqueeze(1).unsqueeze(1).contiguous()
|
| 59 |
|
| 60 |
-
common = dict(
|
| 61 |
-
rotate_style=int(RotateStyle.NEOX),
|
| 62 |
-
reuse_freqs_front_part=True,
|
| 63 |
-
nope_first=False,
|
| 64 |
-
)
|
| 65 |
-
q_out_sbhd = rope_cached_fwd(q_sbhd, cos_freqs, sin_freqs, **common)
|
| 66 |
-
k_out_sbhd = rope_cached_fwd(k_sbhd, cos_freqs, sin_freqs, **common)
|
| 67 |
|
| 68 |
-
|
|
|
|
| 69 |
|
| 70 |
|
| 71 |
__all__ = [
|
| 72 |
"__kernel_metadata__",
|
| 73 |
"RotateStyle",
|
| 74 |
"apply_rotary_transformers",
|
|
|
|
| 75 |
"rope_cached_fwd",
|
| 76 |
"rope_cached_fwd_inplace",
|
| 77 |
]
|
|
|
|
| 8 |
changes.
|
| 9 |
"""
|
| 10 |
|
| 11 |
+
from . import layers
|
| 12 |
+
from .layers import _apply_rotary
|
| 13 |
from .rope import (
|
| 14 |
RotateStyle,
|
| 15 |
rope_cached_fwd,
|
|
|
|
| 22 |
}
|
| 23 |
|
| 24 |
|
| 25 |
+
def apply_rotary_transformers(q, k, cos, sin, unsqueeze_dim=1):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
"""Apply NEOX-style RoPE to ``q`` and ``k``.
|
| 27 |
|
| 28 |
Signature mirrors ``kernels-community/rotary``'s ``apply_rotary_transformers``
|
|
|
|
| 31 |
|
| 32 |
Args:
|
| 33 |
q, k: ``(batch, heads, seq, head_dim)``.
|
| 34 |
+
cos, sin: ``(batch, seq, head_dim)`` or ``(batch, seq, head_dim // 2)`` — pre-``unsqueeze``
|
| 35 |
+
form. Rows may hold different positions (e.g. left padding).
|
| 36 |
+
unsqueeze_dim: accepted for API parity; the kernel reads positions from
|
| 37 |
+
the already-computed ``cos`` / ``sin``.
|
| 38 |
|
| 39 |
Returns:
|
| 40 |
``(q_embed, k_embed)`` in the same shape as ``q``, ``k``.
|
| 41 |
"""
|
| 42 |
+
return _apply_rotary(q, k, cos, sin)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
|
| 45 |
+
# Add torch compile support for functions
|
| 46 |
+
apply_rotary_transformers.can_torch_compile = True
|
| 47 |
|
| 48 |
|
| 49 |
__all__ = [
|
| 50 |
"__kernel_metadata__",
|
| 51 |
"RotateStyle",
|
| 52 |
"apply_rotary_transformers",
|
| 53 |
+
"layers",
|
| 54 |
"rope_cached_fwd",
|
| 55 |
"rope_cached_fwd_inplace",
|
| 56 |
]
|
build/torch-rocm/_ops.py
CHANGED
|
@@ -4,7 +4,10 @@ def get_backend() -> str:
|
|
| 4 |
"""Detect the backend by inspecting torch."""
|
| 5 |
import torch
|
| 6 |
|
| 7 |
-
if hasattr(torch, "
|
|
|
|
|
|
|
|
|
|
| 8 |
# Needs to be sorted before specific Torch builds, since Neuron
|
| 9 |
# extension can be loaded into e.g. CUDA Torch builds.
|
| 10 |
return "neuron"
|
|
@@ -22,7 +25,7 @@ def get_backend() -> str:
|
|
| 22 |
|
| 23 |
def _find_ops_name() -> str:
|
| 24 |
kernel_name = "aiter_rope"
|
| 25 |
-
unique_id = "
|
| 26 |
backend = get_backend()
|
| 27 |
return f"_{kernel_name}_{backend}_{unique_id}"
|
| 28 |
|
|
|
|
| 4 |
"""Detect the backend by inspecting torch."""
|
| 5 |
import torch
|
| 6 |
|
| 7 |
+
acc = torch.accelerator.current_accelerator() if hasattr(torch, "accelerator") else None
|
| 8 |
+
if acc is not None and acc.type == "tpu":
|
| 9 |
+
return "tpu"
|
| 10 |
+
elif hasattr(torch, "neuron"):
|
| 11 |
# Needs to be sorted before specific Torch builds, since Neuron
|
| 12 |
# extension can be loaded into e.g. CUDA Torch builds.
|
| 13 |
return "neuron"
|
|
|
|
| 25 |
|
| 26 |
def _find_ops_name() -> str:
|
| 27 |
kernel_name = "aiter_rope"
|
| 28 |
+
unique_id = "75dc872"
|
| 29 |
backend = get_backend()
|
| 30 |
return f"_{kernel_name}_{backend}_{unique_id}"
|
| 31 |
|
build/torch-rocm/aiter_rope/__init__.py
DELETED
|
@@ -1,26 +0,0 @@
|
|
| 1 |
-
import ctypes
|
| 2 |
-
import importlib.util
|
| 3 |
-
import sys
|
| 4 |
-
from pathlib import Path
|
| 5 |
-
from types import ModuleType
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
def _import_from_path(file_path: Path) -> ModuleType:
|
| 9 |
-
# We cannot use the module name as-is, after adding it to `sys.modules`,
|
| 10 |
-
# it would also be used for other imports. So, we make a module name that
|
| 11 |
-
# depends on the path for it to be unique using the hex-encoded hash of
|
| 12 |
-
# the path.
|
| 13 |
-
path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
|
| 14 |
-
module_name = path_hash
|
| 15 |
-
spec = importlib.util.spec_from_file_location(module_name, file_path)
|
| 16 |
-
if spec is None:
|
| 17 |
-
raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
|
| 18 |
-
module = importlib.util.module_from_spec(spec)
|
| 19 |
-
if module is None:
|
| 20 |
-
raise ImportError(f"Cannot load module {module_name} from spec")
|
| 21 |
-
sys.modules[module_name] = module
|
| 22 |
-
spec.loader.exec_module(module) # type: ignore
|
| 23 |
-
return module
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build/torch-rocm/layers.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import torch.nn as nn
|
| 3 |
+
|
| 4 |
+
from .rope import RotateStyle, rope_cached_fwd, rope_cached_positions_fwd
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
def _to_sbhd(t: torch.Tensor) -> torch.Tensor:
|
| 8 |
+
# transformers passes attention tensors as (batch, heads, seq, head_dim);
|
| 9 |
+
# AITER's kernels operate in (seq, batch, heads, head_dim).
|
| 10 |
+
return t.permute(2, 0, 1, 3).contiguous()
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def _to_bhsd(t: torch.Tensor) -> torch.Tensor:
|
| 14 |
+
return t.permute(1, 2, 0, 3)
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def _apply_rotary(q, k, cos, sin):
|
| 18 |
+
q_sbhd = _to_sbhd(q)
|
| 19 |
+
k_sbhd = _to_sbhd(k)
|
| 20 |
+
|
| 21 |
+
common = dict(
|
| 22 |
+
rotate_style=int(RotateStyle.NEOX),
|
| 23 |
+
reuse_freqs_front_part=True,
|
| 24 |
+
nope_first=False,
|
| 25 |
+
)
|
| 26 |
+
batch, seq_len, dim = cos.shape
|
| 27 |
+
if batch == 1:
|
| 28 |
+
# All batch rows share the same positions: index cos / sin by sequence position.
|
| 29 |
+
cos_freqs = cos[0].unsqueeze(1).unsqueeze(1).contiguous()
|
| 30 |
+
sin_freqs = sin[0].unsqueeze(1).unsqueeze(1).contiguous()
|
| 31 |
+
q_out_sbhd = rope_cached_fwd(q_sbhd, cos_freqs, sin_freqs, **common)
|
| 32 |
+
k_out_sbhd = rope_cached_fwd(k_sbhd, cos_freqs, sin_freqs, **common)
|
| 33 |
+
else:
|
| 34 |
+
# Rows can have different positions (e.g. left padding). The kernel ignores the batch
|
| 35 |
+
# stride of cos / sin, so flatten them into a (batch * seq, dim) table and look up row
|
| 36 |
+
# `b * seq_len + s` for token `s` of batch row `b`.
|
| 37 |
+
cos_freqs = cos.reshape(batch * seq_len, 1, 1, dim).contiguous()
|
| 38 |
+
sin_freqs = sin.reshape(batch * seq_len, 1, 1, dim).contiguous()
|
| 39 |
+
positions = (
|
| 40 |
+
torch.arange(batch * seq_len, device=cos.device).view(batch, seq_len).t()
|
| 41 |
+
)
|
| 42 |
+
q_out_sbhd = rope_cached_positions_fwd(
|
| 43 |
+
q_sbhd, cos_freqs, sin_freqs, positions, **common
|
| 44 |
+
)
|
| 45 |
+
k_out_sbhd = rope_cached_positions_fwd(
|
| 46 |
+
k_sbhd, cos_freqs, sin_freqs, positions, **common
|
| 47 |
+
)
|
| 48 |
+
|
| 49 |
+
return _to_bhsd(q_out_sbhd), _to_bhsd(k_out_sbhd)
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
class apply_rotary_transformers(nn.Module):
|
| 53 |
+
can_torch_compile: bool = True
|
| 54 |
+
|
| 55 |
+
def forward(self, q, k, cos, sin, unsqueeze_dim=1):
|
| 56 |
+
return _apply_rotary(q, k, cos, sin)
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
__all__ = ["apply_rotary_transformers"]
|
build/torch-rocm/metadata.json
CHANGED
|
@@ -1,23 +1,37 @@
|
|
| 1 |
{
|
| 2 |
"name": "aiter-rope",
|
| 3 |
-
"id": "
|
| 4 |
-
"version":
|
|
|
|
| 5 |
"license": "MIT",
|
| 6 |
"python-depends": [],
|
|
|
|
| 7 |
"backend": {
|
| 8 |
"type": "rocm"
|
| 9 |
},
|
| 10 |
"digest": {
|
| 11 |
"algorithm": "sha256",
|
| 12 |
"files": {
|
| 13 |
-
"__init__.py": "
|
| 14 |
"_kernels/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
| 15 |
"_kernels/rope.py": "yYQRz0fxK1CuTYD9rolVEDXvy3YnS6775IxceH1fNow=",
|
| 16 |
-
"_ops.py": "
|
| 17 |
-
"
|
| 18 |
"rope.py": "DmzekBurit+Ow9BGR0Zgc76MjAolYQ6q8mEckVLbtj0=",
|
|
|
|
| 19 |
"utils/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
| 20 |
"utils/logger.py": "CXuJZCBzQDTrW80OyJ2IuhbHhayLy12Ake1KGxiuYIA="
|
| 21 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
}
|
| 23 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"name": "aiter-rope",
|
| 3 |
+
"id": "_aiter_rope_rocm_75dc872",
|
| 4 |
+
"version": 3,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
"license": "MIT",
|
| 7 |
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
"backend": {
|
| 10 |
"type": "rocm"
|
| 11 |
},
|
| 12 |
"digest": {
|
| 13 |
"algorithm": "sha256",
|
| 14 |
"files": {
|
| 15 |
+
"__init__.py": "gAAL6hzdsMrvo9+VsICnOKdEmfcUz+36zXMsKIrqUaI=",
|
| 16 |
"_kernels/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
| 17 |
"_kernels/rope.py": "yYQRz0fxK1CuTYD9rolVEDXvy3YnS6775IxceH1fNow=",
|
| 18 |
+
"_ops.py": "gm05aB4Ir8V0bf2AtYzCQi9i17iXw2tuvvG/l0S2zj8=",
|
| 19 |
+
"layers.py": "zBFYJlQHjvOEt4NinTCPWpq+koKgCmvleZBYxtHcqro=",
|
| 20 |
"rope.py": "DmzekBurit+Ow9BGR0Zgc76MjAolYQ6q8mEckVLbtj0=",
|
| 21 |
+
"symbols.json": "K4bGp833woarg6DmDk5UiGGhchv+eqEFBok1Cj1vpN4=",
|
| 22 |
"utils/__init__.py": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
|
| 23 |
"utils/logger.py": "CXuJZCBzQDTrW80OyJ2IuhbHhayLy12Ake1KGxiuYIA="
|
| 24 |
}
|
| 25 |
+
},
|
| 26 |
+
"provenance": {
|
| 27 |
+
"kernel-builder": {
|
| 28 |
+
"version": "0.18.0-dev0",
|
| 29 |
+
"commit": "11a92c0d8289d94d8c660933285d0c1986076e3b",
|
| 30 |
+
"dirty": false
|
| 31 |
+
},
|
| 32 |
+
"kernel": {
|
| 33 |
+
"commit": "75dc87202fed59700d26e6269fbdaf203586b16a",
|
| 34 |
+
"dirty": false
|
| 35 |
+
}
|
| 36 |
}
|
| 37 |
}
|
build/torch-rocm/metadata.json.sigstore
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHdDCCBvmgAwIBAgIUWhjs2+DXFcCWF6IwGYoItfUE/rcwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNjE4MDY0MDA3WhcNMjYwNjE4MDY1MDA3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHSkIxaesK3br4WHBSmr+z/CF4djDePDfUKihLJjBzFzybh1UJlzoyXgDXkbYYu/K7AQNdcAcd256RqU6OZshXqOCBhgwggYUMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUnPZck8NYqiR9yToAQLPac5jkrzcwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wdQYDVR0RAQH/BGswaYZnaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL3NpZ24tb2xkLWJ1aWxkcy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDhhNmJlN2JjNzc1NjVhZDY1YzhhZTJkZWI0NTY0ODJmZjZhYTUwZWQwHQYKKwYBBAGDvzABBAQPU2lnbiBvbGQgYnVpbGRzMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wdwYKKwYBBAGDvzABCQRpDGdodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3Mvc2lnbi1vbGQtYnVpbGRzLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE2YmU3YmM3NzU2NWFkNjVjOGFlMmRlYjQ1NjQ4MmZmNmFhNTBlZDAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE2YmU3YmM3NzU2NWFkNjVjOGFlMmRlYjQ1NjQ4MmZmNmFhNTBlZDAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzB3BgorBgEEAYO/MAESBGkMZ2h0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9zaWduLW9sZC1idWlsZHMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4YTZiZTdiYzc3NTY1YWQ2NWM4YWUyZGViNDU2NDgyZmY2YWE1MGVkMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzI3NzQxNDY0ODQyL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYoGCisGAQQB1nkCBAIEfAR6AHgAdgDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAZ7ZdVqqAAAEAwBHMEUCIANtbwnmbJLS/lrlb5rgby2NvpWGzVeZFCpOu0BoU8YZAiEAgO1a/KYOdboXZ36h6OtO6IAo/4muul43Jn8f6NCsuiEwCgYIKoZIzj0EAwMDaQAwZgIxAOumX7bTZlCwsLhZLNfmAnzSQiaTDZN9Eq3N/kH0Rm9Dcm7iHDgbay0Yl0ZTLGUnewIxALBYK05kB0lKByNOiMhQq2PeoAtwuUtbFhbPV59DCbBajGzgdCmyijtX57WzhrwYtg=="},"tlogEntries":[{"logIndex":"1857726717","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1781764807","inclusionPromise":{"signedEntryTimestamp":"MEQCIAeleagjphKMx3fu4zTP4ICE6VRY5erbojs60u90tULeAiAhXnqCAW/PZnu03SxcGjE711JMaTvpWeHGKICtQMkLhw=="},"inclusionProof":{"logIndex":"1735822455","rootHash":"re5TZsP/nSZf9c3ZarmuN2VdQdrBG0HXvatlYbt2Pc0=","treeSize":"1735822480","hashes":["0taHlWGjIMz/f4NJnNPKGKP5eENRgCaG2n44W4epirQ=","pHwZWrEAlsrxH1KfrlWR7X5Zdr+nV8KXVm570gAx1CE=","ZsZcnEYpWJjgNYivyzPhFFyg7r2oAgo8LfSyIHKnbLc=","/svf1yAp4wiz4jWWQD3DeXdOB48KdRsVlIUAvLZiwMo=","cryJVrUr/AmrXbpxgvbDyipQSVFhEtNvqgsV0A3ngyk=","9/A9DdtHQJoDbrziLAO9h4wH5tdgxi8gRtD4diye+zk=","1T+N1dBJlpDwIkiAVJsu/zLSxvECXOJbMNptHug4/JI=","7umFV6+0738P7v9WO6X9BpY1SIcNI/fpHKyctlZdKkw=","NKlDXs3aVJHqDhGms9QBmtbY3ff/YyjTF5AhLJRB9Rc=","c9dDWxQB1DqD05FI+m7j6723qqz66g/f1FjHOJFgwaY=","dQ0vp6bTINknlH62FrclrEUfkH7k78NIxh1bWpWHr/8=","gAXtVb4czMvijEVHzLZvy9CiZR4I3EjGJKutWKb8sus=","kQ24bHYwEfgDFlQ+Tj4EY+dUxV0UU4uH+etf0vVNbbY=","sWDh7SjDHbJf3HWKGRxiURh6iIYrOzn4Zs37yIij6OA=","x7kXd4VRJvVmTHoSla2KyPQdKvGKDX26/7ST9OONR78=","U8wMiVDzFlmyqT7Nw1RSZYU9+fftsSkRhjpbyXnXUk8=","mqM7J+i75IpuD09QejiUBjeH85AZa+fSm4RXXFmj3lI=","72FC5FYLhxB4a4iiC956o0B/fT54ip4R41vsw2QBKtU=","lYGQ9ibwC8+smMkPQ6TchJm3H9Nc/aTYLfdRacGFChw=","daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=","DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1735822480\nre5TZsP/nSZf9c3ZarmuN2VdQdrBG0HXvatlYbt2Pc0=\n\n— rekor.sigstore.dev wNI9ajBFAiAcbfbGE1sTd+GgCVwp4/DUilq4yAq7oF6F1alx4cYXOwIhAJtz5cT86gbo8Z6x2aeGee6YxoY92uzo3U0oEELLgL0u\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI5ZWZjYzUyYzlkZTkzNmQwZTdlYzFhMmI5MmI3NzcxNWNiY2E1NjhlYWJhZDBjOTgzOGVkYTUzZGFmY2VlZGE5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJR1Z3bTNSazljMFQ1bDhHZHpRSDY1bEtMamJETEtITmpoZ1JNRDFzc3JjK0FpRUEzRVZTNU9ZSEtmL3dkaTg0YlN3dEExMUtoUUxzeHRVMDZSYVhhRWVYQi9FPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaGtSRU5EUW5adFowRjNTVUpCWjBsVlYyaHFjeklyUkZoR1kwTlhSalpKZDBkWmIwbDBabFZGTDNKamQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVxUlRSTlJGa3dUVVJCTTFkb1kwNU5hbGwzVG1wRk5FMUVXVEZOUkVFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZJVTJ0SmVHRmxjMHN6WW5JMFYwaENVMjF5SzNvdlEwWTBaR3BFWlZCRVpsVkxhV2dLVEVwcVFucEdlbmxpYURGVlNteDZiM2xZWjBSWWEySlpXWFV2U3pkQlVVNWtZMEZqWkRJMU5sSnhWVFpQV25Ob1dIRlBRMEpvWjNkbloxbFZUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZ1VUZwakNtczRUbGx4YVZJNWVWUnZRVkZNVUdGak5XcHJjbnBqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJSUldVUldVakJTUVZGSUwwSkhjM2RoV1ZwdVlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU0wNXdXakkwZEdJeWVHdE1WMG94Q21GWGVHdGplVFUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTlVKbmIzSkNaMFZGUVZsUEwwMUJSVUpDUTNSdlpFaFNkMk42YjNZS1RETlNkbUV5Vm5WTWJVWnFaRWRzZG1KdVRYVmFNbXd3WVVoV2FXUllUbXhqYlU1MlltNVNiR0p1VVhWWk1qbDBUVUk0UjBOcGMwZEJVVkZDWnpjNGR3cEJVVWxGUlZoa2RtTnRkRzFpUnpreldESlNjR016UW1oa1IwNXZUVVJaUjBOcGMwZEJVVkZDWnpjNGQwRlJUVVZMUkdob1RtMUtiRTR5U21wT2VtTXhDazVxVm1oYVJGa3hXWHBvYUZwVVNtdGFWMGt3VGxSWk1FOUVTbTFhYWxwb1dWUlZkMXBYVVhkSVVWbExTM2RaUWtKQlIwUjJla0ZDUWtGUlVGVXliRzRLWW1sQ2RtSkhVV2RaYmxad1lrZFNlazFEYzBkRGFYTkhRVkZSUW1jM09IZEJVVlZGU0Zkb01Wb3laSEJpYldSdFdWZE9iRXd5ZEd4amJUVnNZa2hOZEFwWk1qbDBZbGhXZFdGWVVqVk5RakJIUTJselIwRlJVVUpuTnpoM1FWRlpSVVF6U214YWJrMTJZVWRXYUZwSVRYWmlWMFp3WW1wQk4wSm5iM0pDWjBWRkNrRlpUeTlOUVVWSlFrTXdUVXN5YURCa1NFSjZUMms0ZG1SSE9YSmFWelIxV1ZkT01HRlhPWFZqZVRWdVlWaFNiMlJYU2pGak1sWjVXVEk1ZFdSSFZuVUtaRU0xYW1JeU1IZGtkMWxMUzNkWlFrSkJSMFIyZWtGQ1ExRlNjRVJIWkc5a1NGSjNZM3B2ZGt3eVpIQmtSMmd4V1drMWFtSXlNSFpoU0ZadVdqSnNkUXBhTWxwb1dUSlZkbUV5Vm5saWJWWnpZM2t4YW1JeU1YUmtWelZ3WkVocmRreHRaSEJrUjJneFdXazVNMkl6U25KYWJYaDJaRE5OZG1NeWJHNWlhVEYyQ21KSFVYUlpibFp3WWtkU2VreHViR2hpVjNoQlkyMVdiV041T1c5YVYwWnJZM2s1ZEZsWGJIVk5SR2RIUTJselIwRlJVVUpuTnpoM1FWRnZSVXRuZDI4S1QwZEZNbGx0VlROWmJVMHpUbnBWTWs1WFJtdE9hbFpxVDBkR2JFMXRVbXhaYWxFeFRtcFJORTF0V20xT2JVWm9UbFJDYkZwRVFXSkNaMjl5UW1kRlJRcEJXVTh2VFVGRlRFSkJNRTFETTA1c1lrZFpkR0ZIT1hwa1IxWnJUVVZCUjBOcGMwZEJVVkZDWnpjNGQwRlJkMFZOWjNkM1lVaFNNR05JVFRaTWVUbHVDbUZZVW05a1YwbDFXVEk1ZEV3eWFERmFNbVJ3WW0xa2JWbFhUbXhNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk5SR2RIUTJselIwRlJVVUlLWnpjNGQwRlJNRVZMWjNkdlQwZEZNbGx0VlROWmJVMHpUbnBWTWs1WFJtdE9hbFpxVDBkR2JFMXRVbXhaYWxFeFRtcFJORTF0V20xT2JVWm9UbFJDYkFwYVJFRm1RbWR2Y2tKblJVVkJXVTh2VFVGRlQwSkNSVTFFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVFXRkNaMjl5UW1kRlJVRlpUeTlOUVVWUUNrSkJkMDFEYWtWM1RucEZNRTU2VlRGTmFtdDNUR2RaUzB0M1dVSkNRVWRFZG5wQlFrVkJVV2RFUWpWdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNSVkZSUzBSQlozbE9WR041VFVSak1FMTZRak5DWjI5eVFtZEZSUXBCV1U4dlRVRkZVMEpIYTAxYU1tZ3daRWhDZWs5cE9IWmFNbXd3WVVoV2FVeHRUblppVXpsdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2Q2t4WFRuWmlWekV4WW0xc01HVlRPSFZhTW13d1lVaFdhVXd6WkhaamJYUnRZa2M1TTJONU9YcGhWMlIxVEZjNWMxcERNV2xrVjJ4eldraE5kV1ZYUm5RS1lrVkNlVnBYV25wTU1taHNXVmRTZWt3eU1XaGhWelIzVDBGWlMwdDNXVUpDUVVkRWRucEJRa1YzVVhGRVEyYzBXVlJhYVZwVVpHbFplbU16VGxSWk1RcFpWMUV5VGxkTk5GbFhWWGxhUjFacFRrUlZNazVFWjNsYWJWa3lXVmRGTVUxSFZtdE5RMFZIUTJselIwRlJVVUpuTnpoM1FWSlJSVVYzZDFKa01qbDVDbUV5V25OaU0yUm1Xa2RzZW1OSFJqQlpNbWQzV2tGWlMwdDNXVUpDUVVkRWRucEJRa1pSVWxkRVJsSnZaRWhTZDJONmIzWk1NbVJ3WkVkb01WbHBOV29LWWpJd2RtRklWbTVhTW14MVdqSmFhRmt5VlhaaE1sWjVZbTFXYzJONU1XcGlNakYwWkZjMWNHUklhM1paVjA0d1lWYzVkV041T1hsa1Z6VjZUSHBKTXdwT2VsRjRUa1JaTUU5RVVYbE1Na1l3WkVkV2RHTklVbnBNZWtWM1JtZFpTMHQzV1VKQ1FVZEVkbnBCUWtablVVbEVRVnAzWkZkS2MyRlhUWGRTWjFsTENrdDNXVUpDUVVkRWRucEJRa2RCVVRSRVJGcDVXbGhDZGs5dGFERmFNbVJ3WW0xa2JWbFhUbXhNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVUtUMjVLYkZwcWNIbGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMmRaYjBkRGFYTkhRVkZSUWpGdWEwTkNRVWxGWmtGU05rRklaMEZrWjBSa1VGUkNjUXA0YzJOU1RXMU5Xa2hvZVZwYWVtTkRiMnR3WlhWT05EaHlaaXRJYVc1TFFVeDViblZxWjBGQlFWbzNXbVJXY1hGQlFVRkZRWGRDU0UxRlZVTkpRVTUwQ21KM2JtMWlTa3hUTDJ4eWJHSTFjbWRpZVRKT2RuQlhSM3BXWlZwR1EzQlBkVEJDYjFVNFdWcEJhVVZCWjA4eFlTOUxXVTlrWW05WVdqTTJhRFpQZEU4S05rbEJieTgwYlhWMWJEUXpTbTQ0WmpaT1EzTjFhVVYzUTJkWlNVdHZXa2w2YWpCRlFYZE5SR0ZSUVhkYVowbDRRVTkxYlZnM1lsUmFiRU4zYzB4b1dncE1UbVp0UVc1NlUxRnBZVlJFV2s0NVJYRXpUaTlyU0RCU2JUbEVZMjAzYVVoRVoySmhlVEJaYkRCYVZFeEhWVzVsZDBsNFFVeENXVXN3Tld0Q01HeExDa0o1VGs5cFRXaFJjVEpRWlc5QmRIZDFWWFJpUm1oaVVGWTFPVVJEWWtKaGFrZDZaMlJEYlhscGFuUllOVGRYZW1oeWQxbDBaejA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgNrfAj3vjxJoLOUfMT1Ep5PdeHtibnF5ri+pZJYkcHOkCFQCUXx4BUSzpo3snvwl25ZIbzisbqhgPMjAyNjA2MTgwNjQwMDdaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDYxODA2NDAwN1owLwYJKoZIhvcNAQkEMSIEICxPCJGtc03vMIquM+LlcxyjXzJ0BMc6pmOA4mLxiexgMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMCwz8uKd52cHzKS58YJ7LS9HZt2L/ruWXzXlKltHEpWUeR5UswAYYNJbfwXOsynWVQIxAK67Fe8iyTkPa0G18zy6RTrQKPs4khRjd815luzpy4mNh5GnHMpHav+ugXAywX7XUQ=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"nvzFLJ3pNtDn7Borkrd3FcvKVo6rrQyYOO2lPa/O7ak="},"signature":"MEUCIGVwm3Rk9c0T5l8GdzQH65lKLjbDLKHNjhgRMD1ssrc+AiEA3EVS5OYHKf/wdi84bSwtA11KhQLsxtU06RaXaEeXB/E="}}
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"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"}, "tlogEntries":[{"logIndex":"3265115829", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792069299", "inclusionPromise":{"signedEntryTimestamp":"MEQCIAVvGb2X6kI30n2fcxZyhucPrr6f1zIeaPcoOQ7vuH4FAiAG2rUfZT45k3wB+ivttoGIwmczxFW+GMhQhTwEt36Vgg=="}, "inclusionProof":{"logIndex":"3143211567", "rootHash":"pK++q//g2X+OuMn4Qj3k3CUFqRxESgjoWb8/I8OB3Yc=", "treeSize":"3143212072", "hashes":["Jx7k/CcM5Fo9HpsqXClPokkBcsDY9cNv7+zxF2Rezn8=", "BDUgdnLy3Al4oOhoSq0MyKINDHL1UHBPkgsG2oXVC4s=", "TD2hihKDa37Etj2VmxAzHV8bNg+hGo5XkbuCpYL66HI=", "EL2QBkn2rbWngsymhjC65NqALjIbXE7YCC8TIsDpoO8=", "SXTN5IW3/Wz9zSQFJG0norvKNgv61h40AT5tK1SIRVQ=", "t7Kny/CQbqSamG4jq2atkGEsEZ32V/JBxtNuRz+cMV0=", "A4/HN5YngqqSt0RnOrOfX9NSRCNqSJIOebxXmSKTCUo=", "ogpabfc4+qc0RtvTiCw1UZPvbnCJ7zWXXxn+wOO2b4s=", "Nh+lHJQV5ZKjP0oymULoAZSircoT1aNciU+Dy0n92Ns=", "kanScaUMu3oovcpXU+n4V4+XMqK617PqPbCGTAc163Y=", "MDbcS0VEa7B8s8WOjsCKbFnuBIj1sW8arOlzcE+aG6k=", "ikeWt1/T+/lPfWDHN/iIwRg16hZhLoQookV/PfhHJmg=", "skdxDoj4OksXFthBSnEyVwAkSgTAz50Y03RmF3owKUE=", "YST9UcC2yDVf0221NpPaFVssxDtJwd5A6xG22zFXmVM=", "LP6BTpxPzicOkaS60mAty4jrWi73RhnKSj4SrV6UBFY=", "kpBXa6sUMkPmVdqAWh9+xCWs/0gnrC2GfG1BpcaAyQo=", "rU+ZpvDacgve7+vOPaS0JDxbccLiAu+LY13cH5uD/SY=", "sXH0gh8geYB71VBLrtd+Lu9cS4Xoh9llXDl8Xuq21lc=", "PQ6v5GPoAO3EwkpvBOXnLQ/4/LhH4/jzBp6ICB4PyEQ=", "wk2tYV/zs2FUIlhL9YQeUw8UqKbqhapvz1h7jtdeQWw=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3143212072\npK++q//g2X+OuMn4Qj3k3CUFqRxESgjoWb8/I8OB3Yc=\n\n— rekor.sigstore.dev wNI9ajBGAiEA8qmYp41+nBQoYZu3ClE7psslAmJ80kNrmYnEsOzdBPICIQCb5r4dM6UoHVZAv/7B5OqoA6v7ja6psnqJ5h8bbZTMtg==\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4ZjUyYjgyNWRmZWRkOTMxMTdkNDkxNWI5NmM2YTE5NWZiOGM0NTA0OWMwZTJjOTkyMjAwYjExODE2OGZmZmNhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQjFjVU1RYU44MklZVERXUlBYbnlrVjV4dW1jWDFlaEE5bk9VamRLSGpHY0FpQkZsbmdpVzVkUmdnWmxxc1NBRkIwY2o2dUo2VnpmWEFwSGVBNVlTd0x1ZVE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExha05EUW5KSFowRjNTVUpCWjBsVllsaGtWVXRNZFZSa1ZHRkpaV0kyZUZGcGJXZzFUaTh2Y0dOVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRGTlZFMTNUVlJOTkZkb1kwNU5hbGw0VFVSRk1VMVVUWGhOVkUwMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUxVmxGV2FEZGhRMlZpUW1RcmRuaHBjSEZKYTI5Tk5IaHZOMjh5UW5CbVVqaFZLMEVLT0V0TmNUZzVZVk5IT0dKcVJFWkJTa2hJV1c1QmNtdG5TWEVyUkUxU1MyeG9VazU0U0c4eFFWUkZUMUJhVnk4MWJEWlBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmN6VGxkU2FncFBSR041VFVSS2JWcFhVVEZQVkdOM1RVZFJlVTV0VlRKTmFsazFXbTFLYTFsWFdYbE5SRTB4VDBSYWFVMVVXbWhOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpOT1YxSnFUMFJqZVUxRVNtMWFWMUV4Q2s5VVkzZE5SMUY1VG0xVk1rMXFXVFZhYlVwcldWZFplVTFFVFRGUFJGcHBUVlJhYUUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpOT1YxSnFDazlFWTNsTlJFcHRXbGRSTVU5VVkzZE5SMUY1VG0xVk1rMXFXVFZhYlVwcldWZFplVTFFVFRGUFJGcHBUVlJhYUUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlPZWxacldYcG5NMDFxUVhsYWJWWnJUbFJyTTAxRVFtdE5hbHBzVG1wSk1rOVhXbWxhUjBadFRXcEJlazVVWnpJS1dXcEZNbGxVUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQwUmplazlFVVhkTmVra3hUV2s1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVURaa2NYWkJRVUZDUVUxQlVtcENSVUZwUVZSUU5VWlJjM1ZLZURkcFZ6bHpUMXA0VkVOek5IVlFVV2swVm5CaFVrUk1Md281WWxaM1RUaDZRM1ZuU1dkWVJsUkdhblpJUkVSQlNGaG5aaXN3YTJ0NGF6aGpMMU5tSzFKQ1MxVTJZVlZLUmxOQmJESk9kWG93ZDBObldVbExiMXBKQ25wcU1FVkJkMDFFV25kQmQxcEJTWGRrY0c5cGRYSnNkVmxRWlUxYWFWVlRNWFY1ZFZCWk0xQnRkMjFrYjNwRE1IRnJSbVJRUXpWdUswTjBTVk5qYkdvS1ptRnZkVEpQY0dOeVVHUk5jbVJVTmtGcVFrRm1ZVUpDTVVSdVYwcGFNRlJGTlN0MmNVcFRUbFExTVZwc2JFUXJNalV5SzJ3d01VWlVjbk5sZG5Scll3cGFXRVpJUzBsbFVEUnJZemRPU1ZoalIzVm5QUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgcELCMkxy4161valhsS1rMhWB8kyjTTubw329ZoF5u38CFDm/nZzoh/hxcCTfvDoD8EJT7z7pGA8yMDI2MTAxNTEzMDEzOVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE1MTMwMTM5WjAvBgkqhkiG9w0BCQQxIgQgxesJ/tuHMpuFnm6w/fBpm95vSfafICD5ya0sk0wzGoswgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwHOF2vjsSWHjTatqUUsKpwONxezvk/Z4V3orC5NHsgbMvpvgSazPQWaxBjSxZZgOWAjAuh+2v3k9XL9DzmxAmlpL6vlr1R1ZsDEU8iWNO9EQz+ITgmEX4MNDx3Wg0qr9xiFk="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"j1K4Jd/t2TEX1JFblsahlfuMRQScDiyZIgCxGBaP/8o="}, "signature":"MEQCIB1cUMQaN82IYTDWRPXnykV5xumcX1ehA9nOUjdKHjGcAiBFlngiW5dRggZlqsSAFB0cj6uJ6VzfXApHeA5YSwLueQ=="}}
|
build/torch-rocm/symbols.json
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_aiter_rope_rocm_75dc872",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "apply_rotary_transformers",
|
| 7 |
+
"qualname": "apply_rotary_transformers",
|
| 8 |
+
"module": "_aiter_rope_rocm_75dc872",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "Apply NEOX-style RoPE to ``q`` and ``k``.\n\nSignature mirrors ``kernels-community/rotary``'s ``apply_rotary_transformers``\nso this kernel can be a drop-in replacement under the ``\"rocm\"`` entry of\ntransformers' ``_KERNEL_MAPPING[\"rotary_pos_emb\"]``.\n\nArgs:\n q, k: ``(batch, heads, seq, head_dim)``.\n cos, sin: ``(batch, seq, head_dim)`` or ``(batch, seq, head_dim // 2)`` — pre-``unsqueeze``\n form. Rows may hold different positions (e.g. left padding).\n unsqueeze_dim: accepted for API parity; the kernel reads positions from\n the already-computed ``cos`` / ``sin``.\n\nReturns:\n ``(q_embed, k_embed)`` in the same shape as ``q``, ``k``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "q",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": null
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "k",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": null
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "cos",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": null
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "sin",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": null
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "unsqueeze_dim",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": "1",
|
| 41 |
+
"annotation": null
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": null
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "rope_cached_fwd",
|
| 49 |
+
"qualname": "rope_cached_fwd",
|
| 50 |
+
"module": "_aiter_rope_rocm_75dc872.rope",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": null,
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "x",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "cos",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "sin",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "rotate_style",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "int"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "reuse_freqs_front_part",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "bool"
|
| 84 |
+
},
|
| 85 |
+
{
|
| 86 |
+
"name": "nope_first",
|
| 87 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 88 |
+
"default": null,
|
| 89 |
+
"annotation": "bool"
|
| 90 |
+
},
|
| 91 |
+
{
|
| 92 |
+
"name": "transpose_output",
|
| 93 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 94 |
+
"default": "False",
|
| 95 |
+
"annotation": "bool"
|
| 96 |
+
}
|
| 97 |
+
],
|
| 98 |
+
"return_annotation": null
|
| 99 |
+
}
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"name": "rope_cached_fwd_inplace",
|
| 103 |
+
"qualname": "rope_cached_fwd_inplace",
|
| 104 |
+
"module": "_aiter_rope_rocm_75dc872.rope",
|
| 105 |
+
"kind": "function",
|
| 106 |
+
"doc": null,
|
| 107 |
+
"signature": {
|
| 108 |
+
"parameters": [
|
| 109 |
+
{
|
| 110 |
+
"name": "x",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "cos",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "sin",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "rotate_style",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "int"
|
| 132 |
+
},
|
| 133 |
+
{
|
| 134 |
+
"name": "reuse_freqs_front_part",
|
| 135 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 136 |
+
"default": null,
|
| 137 |
+
"annotation": "bool"
|
| 138 |
+
},
|
| 139 |
+
{
|
| 140 |
+
"name": "nope_first",
|
| 141 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 142 |
+
"default": null,
|
| 143 |
+
"annotation": "bool"
|
| 144 |
+
},
|
| 145 |
+
{
|
| 146 |
+
"name": "transpose_output",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": "False",
|
| 149 |
+
"annotation": "bool"
|
| 150 |
+
}
|
| 151 |
+
],
|
| 152 |
+
"return_annotation": null
|
| 153 |
+
}
|
| 154 |
+
}
|
| 155 |
+
],
|
| 156 |
+
"layers": [
|
| 157 |
+
{
|
| 158 |
+
"name": "apply_rotary_transformers",
|
| 159 |
+
"qualname": "apply_rotary_transformers",
|
| 160 |
+
"module": "_aiter_rope_rocm_75dc872.layers",
|
| 161 |
+
"kind": "class",
|
| 162 |
+
"doc": "Base class for all neural network modules.\n\nYour models should also subclass this class.\n\nModules can also contain other Modules, allowing them to be nested in\na tree structure. You can assign the submodules as regular attributes::\n\n import torch.nn as nn\n import torch.nn.functional as F\n\n\n class Model(nn.Module):\n def __init__(self) -> None:\n super().__init__()\n self.conv1 = nn.Conv2d(1, 20, 5)\n self.conv2 = nn.Conv2d(20, 20, 5)\n\n def forward(self, x):\n x = F.relu(self.conv1(x))\n return F.relu(self.conv2(x))\n\nSubmodules assigned in this way will be registered, and will also have their\nparameters converted when you call :meth:`to`, etc.\n\n.. note::\n As per the example above, an ``__init__()`` call to the parent class\n must be made before assignment on the child.\n\n:ivar training: Boolean represents whether this module is in training or\n evaluation mode.\n:vartype training: bool",
|
| 163 |
+
"signature": {
|
| 164 |
+
"parameters": [
|
| 165 |
+
{
|
| 166 |
+
"name": "args",
|
| 167 |
+
"kind": "VAR_POSITIONAL",
|
| 168 |
+
"default": null,
|
| 169 |
+
"annotation": "Any"
|
| 170 |
+
},
|
| 171 |
+
{
|
| 172 |
+
"name": "kwargs",
|
| 173 |
+
"kind": "VAR_KEYWORD",
|
| 174 |
+
"default": null,
|
| 175 |
+
"annotation": "Any"
|
| 176 |
+
}
|
| 177 |
+
],
|
| 178 |
+
"return_annotation": "None"
|
| 179 |
+
},
|
| 180 |
+
"attributes": {
|
| 181 |
+
"has_backward": null,
|
| 182 |
+
"can_torch_compile": true
|
| 183 |
+
}
|
| 184 |
+
}
|
| 185 |
+
]
|
| 186 |
+
}
|