Kernels:
Trusted publisher
Uploaded using `kernel-builder`.
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +18 -0
- build/torch210-cu126-aarch64-linux/__init__.py +170 -0
- build/torch210-cu126-aarch64-linux/_ops.py +9 -0
- build/torch210-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch210-cu126-aarch64-linux/metadata.json +37 -0
- build/torch210-cu126-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch210-cu126-aarch64-linux/symbols.json +331 -0
- build/torch210-cu128-aarch64-linux/__init__.py +170 -0
- build/torch210-cu128-aarch64-linux/_ops.py +9 -0
- build/torch210-cu128-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch210-cu128-aarch64-linux/metadata.json +39 -0
- build/torch210-cu128-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch210-cu128-aarch64-linux/symbols.json +331 -0
- build/torch210-cu130-aarch64-linux/__init__.py +170 -0
- build/torch210-cu130-aarch64-linux/_ops.py +9 -0
- build/torch210-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch210-cu130-aarch64-linux/metadata.json +39 -0
- build/torch210-cu130-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch210-cu130-aarch64-linux/symbols.json +331 -0
- build/torch211-cu126-aarch64-linux/__init__.py +170 -0
- build/torch211-cu126-aarch64-linux/_ops.py +9 -0
- build/torch211-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch211-cu126-aarch64-linux/metadata.json +37 -0
- build/torch211-cu126-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch211-cu126-aarch64-linux/symbols.json +331 -0
- build/torch211-cu128-aarch64-linux/__init__.py +170 -0
- build/torch211-cu128-aarch64-linux/_ops.py +9 -0
- build/torch211-cu128-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch211-cu128-aarch64-linux/metadata.json +39 -0
- build/torch211-cu128-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch211-cu128-aarch64-linux/symbols.json +331 -0
- build/torch211-cu130-aarch64-linux/__init__.py +170 -0
- build/torch211-cu130-aarch64-linux/_ops.py +9 -0
- build/torch211-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch211-cu130-aarch64-linux/metadata.json +39 -0
- build/torch211-cu130-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch211-cu130-aarch64-linux/symbols.json +331 -0
- build/torch212-cu126-aarch64-linux/__init__.py +170 -0
- build/torch212-cu126-aarch64-linux/_ops.py +9 -0
- build/torch212-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch212-cu126-aarch64-linux/metadata.json +37 -0
- build/torch212-cu126-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch212-cu126-aarch64-linux/symbols.json +331 -0
- build/torch212-cu130-aarch64-linux/__init__.py +170 -0
- build/torch212-cu130-aarch64-linux/_ops.py +9 -0
- build/torch212-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch212-cu130-aarch64-linux/metadata.json +39 -0
- build/torch212-cu130-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch212-cu130-aarch64-linux/symbols.json +331 -0
- build/torch212-cu132-aarch64-linux/__init__.py +170 -0
.gitattributes
CHANGED
|
@@ -252,3 +252,21 @@ build/torch213-cxx11-cu132-x86_64-linux/_rwkv_cuda_89d4054.abi3.so filter=lfs di
|
|
| 252 |
build/torch214-cxx11-cu126-x86_64-linux/_rwkv_cuda_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 253 |
build/torch214-cxx11-cu130-x86_64-linux/_rwkv_cuda_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 254 |
build/torch214-cxx11-cu132-x86_64-linux/_rwkv_cuda_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 252 |
build/torch214-cxx11-cu126-x86_64-linux/_rwkv_cuda_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 253 |
build/torch214-cxx11-cu130-x86_64-linux/_rwkv_cuda_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 254 |
build/torch214-cxx11-cu132-x86_64-linux/_rwkv_cuda_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 255 |
+
build/torch210-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 256 |
+
build/torch210-cu128-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 257 |
+
build/torch210-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 258 |
+
build/torch211-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 259 |
+
build/torch211-cu128-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 260 |
+
build/torch211-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 261 |
+
build/torch212-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 262 |
+
build/torch212-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 263 |
+
build/torch212-cu132-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 264 |
+
build/torch213-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 265 |
+
build/torch213-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 266 |
+
build/torch213-cu132-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 267 |
+
build/torch214-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 268 |
+
build/torch214-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 269 |
+
build/torch214-cu132-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 270 |
+
build/torch215-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 271 |
+
build/torch215-cu132-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 272 |
+
build/torch215-cu134-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
build/torch210-cu126-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch210-cu126-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch210-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6c47376791be5ee676c27115135281c658da006ef720dc42d8655a02681db8be
|
| 3 |
+
size 286296
|
build/torch210-cu126-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"8.0",
|
| 13 |
+
"8.9",
|
| 14 |
+
"9.0"
|
| 15 |
+
]
|
| 16 |
+
},
|
| 17 |
+
"digest": {
|
| 18 |
+
"algorithm": "sha256",
|
| 19 |
+
"files": {
|
| 20 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 21 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 22 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "bEc3Z5G+XuZ2wnEVE1KBxljaAG73INxC2GVaAmgduL4=",
|
| 23 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 24 |
+
}
|
| 25 |
+
},
|
| 26 |
+
"provenance": {
|
| 27 |
+
"kernel-builder": {
|
| 28 |
+
"version": "0.18.0-dev0",
|
| 29 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 30 |
+
"dirty": false
|
| 31 |
+
},
|
| 32 |
+
"kernel": {
|
| 33 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 34 |
+
"dirty": false
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
}
|
build/torch210-cu126-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHKzCCBrGgAwIBAgIUZSVhv0na+qJH0Nf6L/XxFjBMIuAwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTEzWhcNMjYxMDE5MTMxNTEzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIEXwVoqUK2TFzfX5g8hzcwXxK4S+x3htZE7eJxD5Vwz+9YhFKGERil972rFDeXwyT/a6iGjPPLg3kutV0pi1faOCBdAwggXMMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGJBgorBgEEAdZ5AgQCBHsEeQB3AHUA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQiOgAABAMARjBEAiAtFwMgyO6REwpAjWzE+eTZGcPQL1/JtRG+LVz/LrEpIgIgbcACB4jfoVa0mdHWGohHx0rY3ecys67hO29q53XFA6QwCgYIKoZIzj0EAwMDaAAwZQIxAJMfz0KAtHElbfGLdxDwQPu3kf2kJ/FzZKYtkCCMnemyeiNtmSJXaD+7LpUIaqANiwIwALOLOMWnFnJqTZqreLLFq2MkN84yxC27Xq6t3jJHMRYkMjG8T0x7XuDP9jPnuL9B"},"tlogEntries":[{"logIndex":"3321255773","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415114","inclusionPromise":{"signedEntryTimestamp":"MEUCIB5qXxvEP6a3rFbi5kT4ENatp6YGfV+mBlRd0mbSk4V2AiEA0Otb65MLSEe5m2ztjcl7h+JSqB2AERLjiLATRGATirc="},"inclusionProof":{"logIndex":"3199351511","rootHash":"aPii2mUViYuXwH4NxQ5BqtWdykR9rabadRfKzrMogbU=","treeSize":"3199351519","hashes":["R5yA4Qum/KSkAjsH0FlyzJBTut0Qo8eNCr+ET6CuacA=","/5vL3V1p+ras6WV27ZUUdowXCJjXHs0s1PABdsWZNDY=","cysFCrOSao4HP51eNi3jrIzgyF/MHu3DxbjlUFP3pGk=","PTRxdspNiGQy87LfUWpwE4t3C+TmZPFKN5HS/tMq5Zc=","czgfccxT5XQkQATWj1yhgeWemmgBo0qm8m+0fWQcCmE=","C2wlB1njZGHSG8+4TOxjL1AyDGU84s1en2l17JA/gio=","cKJ2x4/0Tl3LMrC4gHJ8RTMxrNl2gYom9/44N8hNOI0=","pkUNmvOtKnFBM2KMw42O+V67fz6YzLuD4OSqzBsCopI=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199351519\naPii2mUViYuXwH4NxQ5BqtWdykR9rabadRfKzrMogbU=\n\n— rekor.sigstore.dev wNI9ajBGAiEA7KDEykUW5zc7TkSMhRYIAC+a5Rz7LUZhj9g3f6IkkAECIQCchoH0QEZ0BIzVXwzlcnJKPLVRIrU1cBmQOJDXHeApUQ==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIxM2M3NjVhOGEyZmZmODg5MjgxNzI3MDQwNGI1YjU5ZWNkNmIzYzU0ZWMwODNhYjQzYWI5MDdjMDIzNzkwNTBjIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQTJCTFJoODlKNEZ6ZkVWZ1ZRMjBvUFRsTFJ5MEdKaC9XWHdya3BTbFUyQkFpQStrYnJTRDUxdGhGb1RIZTZ2L2ZjdkJoR2ZQL2ZrLyszempQZGlRK3RoZ2c9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExla05EUW5KSFowRjNTVUpCWjBsVldsTldhSFl3Ym1FcmNVcElNRTVtTmt3dldIaEdha0pOU1hWQmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJGZWxkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVWNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZKUlZoM1ZtOXhWVXN5VkVaNlpsZzFaemhvZW1OM1dIaExORk1yZUROb2RGcEZOMlVLU25oRU5WWjNlaXM1V1doR1MwZEZVbWxzT1RjeWNrWkVaVmgzZVZRdllUWnBSMnBRVUV4bk0ydDFkRll3Y0dreFptRlBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUmFVOW5RVUZDUVUxQlVtcENSVUZwUVhSR2QwMW5lVTgyVWtWM2NFRnFWM3BGSzJWVVdrZGpVRkZNTVM5S2RGSkhLd3BNVm5vdlRISkZjRWxuU1dkaVkwRkRRalJxWm05V1lUQnRaRWhYUjI5b1NIZ3djbGt6WldONWN6WTNhRTh5T1hFMU0xaEdRVFpSZDBObldVbExiMXBKQ25wcU1FVkJkMDFFWVVGQmQxcFJTWGhCU2sxbWVqQkxRWFJJUld4aVprZE1aSGhFZDFGUWRUTnJaakpyU2k5R2VscExXWFJyUTBOTmJtVnRlV1ZwVG5RS2JWTktXR0ZFS3pkTWNGVkpZWEZCVG1sM1NYZEJURTlNVDAxWGJrWnVTbkZVV25GeVpVeE1SbkV5VFd0T09EUjVlRU15TjFoeE5uUXpha3BJVFZKWmF3cE5ha2M0VkRCNE4xaDFSRkE1YWxCdWRVdzVRZ290TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgBqHOvrVBjkRjHaFAi5yt98nxIFFHyuZCTdHzR3stX+4CFEZgy8jMHsbSAGyW/ekF66Sh9t7kGA8yMDI2MTAxOTEzMDUxM1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTMwNTEzWjAvBgkqhkiG9w0BCQQxIgQgGBBWrK32S3QdKxdD9Hh7TTH1ZypiDDj7vkcPviIztAIwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwVRm3NhFlA7D5l20zlhqMV8DcmRB26YSIXCk/n/VSSUCUaRxDlB5HohpPY9JzA7xgAjBH8e3d0AYSnNbQWeXIoGLVLwYEb4Prp1cI2Eyexall8sKca11GQovIzYrUp6du6+Q="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"E8dlqKL/+IkoFycEBLW1ns1rPFTsCDq0OrkHwCN5BQw="},"signature":"MEQCIA2BLRh89J4FzfEVgVQ20oPTlLRy0GJh/WXwrkpSlU2BAiA+kbrSD51thFoTHe6v/fcvBhGfP/fk/+3zjPdiQ+thgg=="}}
|
build/torch210-cu126-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch210-cu128-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch210-cu128-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch210-cu128-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:14be011dc6e8ccec33a280a3bc9feeca7491314ad957b18b77261ff4c3fa1538
|
| 3 |
+
size 417376
|
build/torch210-cu128-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"10.0",
|
| 13 |
+
"12.0",
|
| 14 |
+
"8.0",
|
| 15 |
+
"8.9",
|
| 16 |
+
"9.0"
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
"digest": {
|
| 20 |
+
"algorithm": "sha256",
|
| 21 |
+
"files": {
|
| 22 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 23 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 24 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "FL4BHcbozOwzooCjvJ/uynSRMUrZV7GLdyYf9MP6FTg=",
|
| 25 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"provenance": {
|
| 29 |
+
"kernel-builder": {
|
| 30 |
+
"version": "0.18.0-dev0",
|
| 31 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 32 |
+
"dirty": false
|
| 33 |
+
},
|
| 34 |
+
"kernel": {
|
| 35 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 36 |
+
"dirty": false
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
}
|
build/torch210-cu128-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLTCCBrOgAwIBAgIUZ6HEQ502b3n2puuivfEs3VvqblUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTE0WhcNMjYxMDE5MTMxNTE0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvLGuTOfyYvjQ1dN2N4wbKyXSSvvK4ets18+ykHB4PNnKzCejz8SkdC4GQhBLnPBiG2PkBvGpKRzTc6M/jpcKPKOCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQmDwAABAMASDBGAiEAlGHTrNqKDVGPzXJt4ymjVqFWmpn3QM5tYha+x+nQ6OoCIQDHkp6/vLmN96oesoohOMG14sihg4qeR6F9SyE04VTydjAKBggqhkjOPQQDAwNoADBlAjA7lvNAhLrHRUF1J6x5yar/yOTfYFN+RXye7DbRV59JUwDWEr/Rks6VCYgpUYQFUDkCMQDTzObuMtzrEcMTiiesKt1Tg/hX01pu70xgX6QloY2k1/3n4ahCotbaBbFC5D2LePQ="},"tlogEntries":[{"logIndex":"3321255814","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415114","inclusionPromise":{"signedEntryTimestamp":"MEUCIG3l5uGRjkKthUEJoQ49ibP9WDOFqpW03WjNha8wY6m8AiEA3ZPu+0pImIXK0fBSB82k8N0KLNYXV7Uk9FrAcH/pesE="},"inclusionProof":{"logIndex":"3199351552","rootHash":"QI94EYycUBDhW6Y+CDbIPOEX6B2B8f+qzFCF+5HzmhM=","treeSize":"3199351562","hashes":["7ykgO/88CqExh15GgQYoAtkYan3BK2rMOj0gFPu6QXE=","68HM1DQoi4LC3i+K/6Vrggq4+bKDe7w+OGQ8hKU8ePU=","wFL2EATaHCpKyDC9FBHeDZ4sG/0LQQfCtFuxTJ/TnAw=","QGoej8LxZdrPR9krEM4XUeok+BBSNe7f3aElK/vBCpk=","xqRGIj7vKKnGXGhCxIxXy1I2FKxqmR2s2WTICdDM2+8=","pkUNmvOtKnFBM2KMw42O+V67fz6YzLuD4OSqzBsCopI=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199351562\nQI94EYycUBDhW6Y+CDbIPOEX6B2B8f+qzFCF+5HzmhM=\n\n— rekor.sigstore.dev wNI9ajBEAiA/h8i8ezEjHP2Ls+1KuUK1g10bgXw1Ou6f/tksEMM3JQIgXW/h70zKk8fcwxfd3JblyVsPwExT0Yp+pm2VQHHJ87g=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJiOGNlZWNiYWRmYjhhMTJhNGY2ZTBlMWFlMjBhNWUxNDQyYjYwMzU2YzEwZmJjNDQyYzgxNGE0ZjIxMGFkMDY4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURLT0w3Y1ZZaDF1RXdBTWN2dmw3YnVzVlJRVy96bGJncmZ5NGc0eFBoamtBSWhBSXFwUFYxMTNWTE81b2Nmbllkdi9IUmcwWHMwWWlZdUVKdktWZGpHM3FzUyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KUFowRjNTVUpCWjBsVldqWklSVkUxTURKaU0yNHljSFYxYVhabVJYTXpWblp4WW14VmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJGTUZkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVVd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVYyVEVkMVZFOW1lVmwyYWxFeFpFNHlUalIzWWt0NVdGTlRkblpMTkdWMGN6RTRLM2tLYTBoQ05GQk9ia3Q2UTJWcWVqaFRhMlJETkVkUmFFSk1ibEJDYVVjeVVHdENka2R3UzFKNlZHTTJUUzlxY0dOTFVFdFBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUmJVUjNRVUZDUVUxQlUwUkNSMEZwUlVGc1IwaFVjazV4UzBSV1IxQjZXRXAwTkhsdGFsWnhSbGR0Y0c0elVVMDFkQXBaYUdFcmVDdHVVVFpQYjBOSlVVUklhM0EyTDNaTWJVNDVObTlsYzI5dmFFOU5SekUwYzJsb1p6UnhaVkkyUmpsVGVVVXdORlpVZVdScVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2IwRkVRbXhCYWtFM2JIWk9RV2hNY2toU1ZVWXhTalo0TlhsaGNpOTVUMVJtV1VaT0sxSlllV1UzUkdKU1ZqVTVTbFYzUkZjS1JYSXZVbXR6TmxaRFdXZHdWVmxSUmxWRWEwTk5VVVJVZWs5aWRVMTBlbkpGWTAxVWFXbGxjMHQwTVZSbkwyaFlNREZ3ZFRjd2VHZFlObEZzYjFreWF3b3hMek51TkdGb1EyOTBZbUZDWWtaRE5VUXlUR1ZRVVQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgUytML7vytMJU9imxLRpfrSmEkWrAm+TgUfZnE3iphxgCFQDmcq7Mu0cNRzEPMc/RI9ZGNehegRgPMjAyNjEwMTkxMzA1MTRaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDUxNFowLwYJKoZIhvcNAQkEMSIEIPKZSagTbrkepqFJkFasUHPDo+N8rtr56qR7w4QHHor7MIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMBDY0WsGwZakLzAhn17wc29LK3hkUpON84RdgkzcvivNlhUWWNZl8I+p/bYtXj10/gIwGGdcRpP69s1XJ0WkJ/jfEs3J3z7MiY5t1yBl0Hceb82jXmYL07Iojiuasw4jgMpC"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"uM7sut+4oSpPbg4a4gpeFEK2A1bBD7xELIFKTyEK0Gg="},"signature":"MEYCIQDKOL7cVYh1uEwAMcvvl7busVRQW/zlbgrfy4g4xPhjkAIhAIqpPV113VLO5ocfnYdv/HRg0Xs0YiYuEJvKVdjG3qsS"}}
|
build/torch210-cu128-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch210-cu130-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch210-cu130-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch210-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bfffd3c0c5a267765d1216cdbecaed258220103af006537aba08dd419f9c45bc
|
| 3 |
+
size 421472
|
build/torch210-cu130-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"10.0",
|
| 13 |
+
"12.0",
|
| 14 |
+
"8.0",
|
| 15 |
+
"8.9",
|
| 16 |
+
"9.0"
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
"digest": {
|
| 20 |
+
"algorithm": "sha256",
|
| 21 |
+
"files": {
|
| 22 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 23 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 24 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "v//TwMWiZ3ZdEhbNvsrtJYIgEDrwBlN6ugjdQZ+cRbw=",
|
| 25 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"provenance": {
|
| 29 |
+
"kernel-builder": {
|
| 30 |
+
"version": "0.18.0-dev0",
|
| 31 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 32 |
+
"dirty": false
|
| 33 |
+
},
|
| 34 |
+
"kernel": {
|
| 35 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 36 |
+
"dirty": false
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
}
|
build/torch210-cu130-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUb0LpjxrK0Maa+ZODgUg6KoRnZCIwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTE1WhcNMjYxMDE5MTMxNTE1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8sjer4q7SDt3umHi5iqVbVgvlPqgDYqB7sLo4+zQwNw8agBR3wNgirNoDZcSwFtP53inVwhUanEIaGRcodYHaqOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQpegAABAMARzBFAiEAtenKv2UoTuOdPCjot60HUABQ9VGzVg0jT/NoFB1mM0YCID+2z08Ud5yeVbj8ipNNu034eV9yTiKrwvMTYDH0zRXBMAoGCCqGSM49BAMDA2gAMGUCMDDyAEBce8fPqwGs4TRuYQVK/lb+eGCZOu4LvOFi8BsiKIEkRMYQE1BxJx7BEm+wRQIxALHR31InaWblMmSZuNoTatMG9TBWcQAjX4gf8EFqEc3vfbqBNb5f1AOkllapQbX1dg=="},"tlogEntries":[{"logIndex":"3321255861","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415115","inclusionPromise":{"signedEntryTimestamp":"MEQCIChCoQdSZLNcwv7ZPdmBF0Cq7nInYhSTLETsYp/YlqMXAiA16Z/9EoaSmg51Yl3rDPWwfLLGe0XIZ0E1ibFFjcUtZw=="},"inclusionProof":{"logIndex":"3199351599","rootHash":"xWGbayn3j6X2p0FV88LJRP73da2aNVUmQWGszpJE2wo=","treeSize":"3199351603","hashes":["YQwxpEIEzSTvnkviHSauZKeCAxph58u3To0yBcpVBcE=","geZoEKGlFJ4ENa+m4U4x1kJhJQAKEF6dSNb5wPqVDoM=","WvmZ1VcvxsbK/aVXJk1UtNuO3WTQn6Zv6V/NmveKTUY=","I6uUsXPH/yU9gxNayIxmRT8SyogQY4uaQiOLF6cAPv4=","v7HlsN/XaAEp8x3PlNUocxwJFivVsMZaIjPsqSNYP2U=","F/YmOyMBU6+REtpx345WJ1ZWOoaPh6GXTqSK7gWWUWI=","xqRGIj7vKKnGXGhCxIxXy1I2FKxqmR2s2WTICdDM2+8=","pkUNmvOtKnFBM2KMw42O+V67fz6YzLuD4OSqzBsCopI=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199351603\nxWGbayn3j6X2p0FV88LJRP73da2aNVUmQWGszpJE2wo=\n\n— rekor.sigstore.dev wNI9ajBGAiEA9UQzYZnyju2dDdhn+5rYni6KdxHtGf+svKDndo3FtCoCIQDk4G2ZVnYTavAdsmdkH0jn/yxNcu/WD+kU+H8gx/X3ew==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3M2M3OGEwOTU2OTg5NTEwMTdiMDk4MzM4MTVmMGEwNTMzOTc2YzE2MTlmZGU5ZGViYjFhYzEzYTQ3YWNhOTkxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUM3eDMrM25sdWlDSDRrRzh6VERpY2NjbGJLdi9Vd3FkM3djYnErWXhjRW53SWhBSVlKTEtwN3hONW5hbWRRSURrNjhlbXhWcEJ1TlBXOWYvT2QwOEovalJuYyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVllqQk1jR3A0Y2tzd1RXRmhLMXBQUkdkVlp6WkxiMUp1V2tOSmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJGTVZkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVU0YzJwbGNqUnhOMU5FZEROMWJVaHBOV2x4Vm1KV1ozWnNVSEZuUkZseFFqZHpURzhLTkN0NlVYZE9kemhoWjBKU00zZE9aMmx5VG05RVdtTlRkMFowVURVemFXNVdkMmhWWVc1RlNXRkhVbU52WkZsSVlYRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUmNHVm5RVUZDUVUxQlVucENSa0ZwUlVGMFpXNUxkakpWYjFSMVQyUlFRMnB2ZERZd1NGVkJRbEU1VmtkNlZtY3dhZ3BVTDA1dlJrSXhiVTB3V1VOSlJDc3llakE0VldRMWVXVldZbW80YVhCT1RuVXdNelJsVmpsNVZHbExjbmQyVFZSWlJFZ3dlbEpZUWsxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUkVSNVFVVkNZMlU0WmxCeGQwZHpORlJTZFZsUlZrc3ZiR0lyWlVkRFdrOTFORXgyVDBacE9FSnphVXRKUldzS1VrMVpVVVV4UW5oS2VEZENSVzByZDFKUlNYaEJURWhTTXpGSmJtRlhZbXhOYlZOYWRVNXZWR0YwVFVjNVZFSlhZMUZCYWxnMFoyWTRSVVp4UldNemRncG1ZbkZDVG1JMVpqRkJUMnRzYkdGd1VXSllNV1JuUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgaijGhPg+orjO2HqFepxjI+9rHAGZFvdQQIxGtlIAFnwCFQDX44WaG5SY1RAX3VVDzzf3aQdzZRgPMjAyNjEwMTkxMzA1MTVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDUxNVowLwYJKoZIhvcNAQkEMSIEIPOnevDgQakBFi1JLwObLE5zKHb842tollPIv6Pb/gltMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQD6HYpLK51sC96NU00okVJv8eKLCD9nAiG1FgFT4m784XtJh5ORXORCdDdTwx13lI8CMQCQJGY4Uf2ZPWKyqYEiZ+l03oBYThS6LXNPAWEmNuG+BefrJksySUIUHMxIHI3xnHI="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"c8eKCVaYlRAXsJgzgV8KBTOXbBYZ/eneuxrBOkesqZE="},"signature":"MEYCIQC7x3+3nluiCH4kG8zTDiccclbKv/Uwqd3wcbq+YxcEnwIhAIYJLKp7xN5namdQIDk68emxVpBuNPW9f/Od08J/jRnc"}}
|
build/torch210-cu130-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch211-cu126-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch211-cu126-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch211-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b673ef243f23d746380c376309669b1d34f7fd7e615503cf070394e2962aea02
|
| 3 |
+
size 286296
|
build/torch211-cu126-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"8.0",
|
| 13 |
+
"8.9",
|
| 14 |
+
"9.0"
|
| 15 |
+
]
|
| 16 |
+
},
|
| 17 |
+
"digest": {
|
| 18 |
+
"algorithm": "sha256",
|
| 19 |
+
"files": {
|
| 20 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 21 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 22 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "tnPvJD8j10Y4DDdjCWabHTT3/X5hVQPPBwOU4pYq6gI=",
|
| 23 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 24 |
+
}
|
| 25 |
+
},
|
| 26 |
+
"provenance": {
|
| 27 |
+
"kernel-builder": {
|
| 28 |
+
"version": "0.18.0-dev0",
|
| 29 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 30 |
+
"dirty": false
|
| 31 |
+
},
|
| 32 |
+
"kernel": {
|
| 33 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 34 |
+
"dirty": false
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
}
|
build/torch211-cu126-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHKzCCBrGgAwIBAgIUEwXcKWEkaaKuxZNMxaUm0yXOi0wwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTE2WhcNMjYxMDE5MTMxNTE2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZTZpwLai/krIrhQrDgQgJuf9HfvednhdVMWduVhdh13EW6NPYhf1eouJVmlttc54qZnKSnXAeKGh1V6AcRPQ4KOCBdAwggXMMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGJBgorBgEEAdZ5AgQCBHsEeQB3AHUA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQssAAABAMARjBEAiB/+DFzamA/TwmevX8+FQtqYcGo/XCBO7o5UXHhpjOipQIgU66h+EzQR9QtvzivaZmeDnM4bfCLGKZMKBnk/yPqJ+wwCgYIKoZIzj0EAwMDaAAwZQIwWhPfpdPAC3/6HJGkI1fuR/6u0x1mKUwgi3OWLQ7XZ3dlln1kDljSZ0CvCwaIW/TlAjEA7TX1K/CZV86w+qxCW1YetRnf6QIywTH80Zb8BpZ6lClChuB5oCG5LqzxiI1gDaG6"},"tlogEntries":[{"logIndex":"3321255916","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415116","inclusionPromise":{"signedEntryTimestamp":"MEUCIQC6odprucdqq+J8RWn7FaCV7oq+Ejw/gCCwHqm2UCN8SwIgIAcIwNquzYPF6igaWIUkKCYc/hSl+IFwqOgiP5e/bBM="},"inclusionProof":{"logIndex":"3199351654","rootHash":"ptJPGapd1rECzcoUrPxpmIKvfQ3EP3eibHw6sjj9jko=","treeSize":"3199351674","hashes":["whenpggRNyEMdbYCLMIXPIUkrboiS/1JcXIlKh6Z+Q0=","VxlfKxabBlpTngrlS4c9PTAMpvbmsk/o4hYkaRkpWlw=","UHdeZYaDEggatONM/kU9r0BfEz0RSTY1SrwYl9ShFyM=","29JqhnDa0k4MNcg+Vaxfh30ecmtVtgw2xkz26vewp6s=","/CB/z6PiogMZZDcjyElj6gik79FNhwxrPprAu8mN9EE=","wy5AHJ6RaEF2Dcyg4uwHfsgvXo3IikEvPpiSraqHGfo=","Zy4CynuBn7d4UhtJsu45MhTO6/W32PdogOi1xjoSMZY=","xqRGIj7vKKnGXGhCxIxXy1I2FKxqmR2s2WTICdDM2+8=","pkUNmvOtKnFBM2KMw42O+V67fz6YzLuD4OSqzBsCopI=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199351674\nptJPGapd1rECzcoUrPxpmIKvfQ3EP3eibHw6sjj9jko=\n\n— rekor.sigstore.dev wNI9ajBEAiBvtmhxvjOrGBfHAoiOqlqIotVHqL0V5begOIZXvvAGeAIgeFBnNuPSp+ldkXEAuBSeujBijy/xA4yNLJI4YcBI5ns=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyYzMwYTJjZjIzOGRmNWQ2Y2ZjOWE2Yzg2MjA3ZGE4ZGUxMjRjNzRiYjZmYWQwMjc2NGM0M2NlMWQ0YTJjMzgwIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURIU1QrRHhwUmk1RUtEMVJHNzVEc0lsNW4rU3R4TTlBYXQ5QVhQbnNzcHFnSWdJRzkrRElIaGJ2OHJQd1ViTFF1Tlp0bFJWcTd3UkZEYm9oam1aY1pjVk1jPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExla05EUW5KSFowRjNTVUpCWjBsVlJYZFlZMHRYUld0aFlVdDFlRnBPVFhoaFZXMHdlVmhQYVRCM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJGTWxkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVVeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZhVkZwd2QweGhhUzlyY2tseWFGRnlSR2RSWjBwMVpqbElablpsWkc1b1pGWk5WMlFLZFZab1pHZ3hNMFZYTms1UVdXaG1NV1Z2ZFVwV2JXeDBkR00xTkhGYWJrdFRibGhCWlV0SGFERldOa0ZqVWxCUk5FdFBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUmMzTkJRVUZDUVUxQlVtcENSVUZwUWk4clJFWjZZVzFCTDFSM2JXVjJXRGdyUmxGMGNWbGpSMjh2V0VOQ1R6ZHZOUXBWV0Vob2NHcFBhWEJSU1dkVk5qWm9LMFY2VVZJNVVYUjJlbWwyWVZwdFpVUnVUVFJpWmtOTVIwdGFUVXRDYm1zdmVWQnhTaXQzZDBObldVbExiMXBKQ25wcU1FVkJkMDFFWVVGQmQxcFJTWGRYYUZCbWNHUlFRVU16THpaSVNrZHJTVEZtZFZJdk5uVXdlREZ0UzFWM1oya3pUMWRNVVRkWVdqTmtiR3h1TVdzS1JHeHFVMW93UTNaRGQyRkpWeTlVYkVGcVJVRTNWRmd4U3k5RFdsWTRObmNyY1hoRFZ6RlpaWFJTYm1ZMlVVbDVkMVJJT0RCYVlqaENjRm8yYkVOc1F3cG9kVUkxYjBOSE5VeHhlbmhwU1RGblJHRkhOZ290TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgUh2FSVZoBrIz1juXWq/2Gc9O2VqDF7KsJZD+xIb5qEoCFQDozEX0CI0Ekt8DqmNYZwkoJr6EGBgPMjAyNjEwMTkxMzA1MTZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDUxNlowLwYJKoZIhvcNAQkEMSIEIPp/o44Uo4mEnoQuNnndq6swDHR7cmty9yn1cGSyDqizMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQCCkqTgqy88KRGkB87Q4ZSIv1ykqLia1YtaLfqsDSlLWJzXdt97iMmfy1qhYfHEItsCMQClKlCxeehD5lAtB8IO3S3oWZ5H7lEhkvbL4tMSskKJF0+3Aj8A/Y5zdBJEEqP73iY="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"LDCizyON9dbPyabIYgfajeEkx0u2+tAnZMQ84dSiw4A="},"signature":"MEUCIQDHST+DxpRi5EKD1RG75DsIl5n+StxM9Aat9AXPnsspqgIgIG9+DIHhbv8rPwUbLQuNZtlRVq7wRFDbohjmZcZcVMc="}}
|
build/torch211-cu126-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch211-cu128-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch211-cu128-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch211-cu128-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dee43e47efb0108f66eab8017cab7fa9c76b233a22e64e92bef41f4a785f643e
|
| 3 |
+
size 417376
|
build/torch211-cu128-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"10.0",
|
| 13 |
+
"12.0",
|
| 14 |
+
"8.0",
|
| 15 |
+
"8.9",
|
| 16 |
+
"9.0"
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
"digest": {
|
| 20 |
+
"algorithm": "sha256",
|
| 21 |
+
"files": {
|
| 22 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 23 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 24 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "3uQ+R++wEI9m6rgBfKt/qcdrIzoi5k6SvvQfSnhfZD4=",
|
| 25 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"provenance": {
|
| 29 |
+
"kernel-builder": {
|
| 30 |
+
"version": "0.18.0-dev0",
|
| 31 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 32 |
+
"dirty": false
|
| 33 |
+
},
|
| 34 |
+
"kernel": {
|
| 35 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 36 |
+
"dirty": false
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
}
|
build/torch211-cu128-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUYuzSNv2HITt2l5TLDyt/ZIh+CwMwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTE3WhcNMjYxMDE5MTMxNTE3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUOUtvCTDTPiGioFa4xqs8K4kwFr2AltlGR1CS0q1G/2vA9Zc8l/VLSR6yw5419KQTOaQhcgRkYyCgNJJjDuPv6OCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQwlQAABAMARzBFAiEA+FmHocOssmxnmXuhoL7Y6s+jlB6vgl89A1CLdV9qlfACIHVwzXitpB63q1gUTxISR8xHFyZOvt5CtQAcSipFOyW0MAoGCCqGSM49BAMDA2gAMGUCMDb/GVaanUHoYae1miaVDmxkTz683X/yHEkw4yD3UBbC7gX1u8hiF53QwG85nC5nOAIxAPjvjuMmOxp9BdP6b0rjIKviOINSFb6ImAnfn5TThuAsFcX+txLfhH5laAfC6eV1tg=="},"tlogEntries":[{"logIndex":"3321256015","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415117","inclusionPromise":{"signedEntryTimestamp":"MEUCICe5mxcuapXYPv/o4zF4KPnPUD2eiHFJt6UPE4YuWZBRAiEArIvyCPWXmPlpVBQbgFxCNrPTNJOysdFHC9EQmO3gxm0="},"inclusionProof":{"logIndex":"3199351753","rootHash":"WfsTKjrXn0cAdcVo7L21IUYplE5qoOmAEDMVfP3X4pQ=","treeSize":"3199351779","hashes":["bj32ptHqUpMw8pQm9CVVHjISMJSV8FURatKtDilzWmA=","f3KmMTOcRe+3psvjm8fptg+RR6+HWu51MlLL6hQ3/9I=","TjUbCekDQwF9yyZgNtDoR9lSTE7QvH1zvNlHPqeVauo=","REdYxVA7qeDZPEJEjyJmmSTRRbl10xn00lbbqeyokgw=","km2gYFbJNPVnwpafqpSQNTZvbN+kZ3s5kwLplMDQk1s=","Et5KoZ6Kay6wxd5J7+o3p8RrUURy4N9GA7vgOJPV1gk=","xnu3GBBam9eIEFj1uWV4MzenQZ9dv+Q86dm2IFcBc5s=","UDKQzdNzI/5wP5RT9aCwOlCtRShDeXkPRX2KJPlQQlo=","xqRGIj7vKKnGXGhCxIxXy1I2FKxqmR2s2WTICdDM2+8=","pkUNmvOtKnFBM2KMw42O+V67fz6YzLuD4OSqzBsCopI=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199351779\nWfsTKjrXn0cAdcVo7L21IUYplE5qoOmAEDMVfP3X4pQ=\n\n— rekor.sigstore.dev wNI9ajBFAiAt+XJ1CXhjS4ECXe61eQzHT/3vSnk3dNKWBmCtuwyS3QIhAPiIhqbTEEnTmXf89W1Ey1H2KqAeOYD33EGDIbRkqahA\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI0MTc5YThhNDczOGU4MWU5NjllOTJkMjZkY2U5NjQ4YTI5NDdlOTJkNDEwMjNlNzJmZjM1YzJhZWVlZTc4NjBjIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQnNsV3UyR1FqZmRHenM4S2xUclFJQ2RNVS9UOXJDVC9KbmlmQzh0dzNOT0FpQjVualVkaTRUTWNZbW1TbkI5NGVWK2ladExlUFIwVWpIU2dENHE1MlBKVUE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVldYVjZVMDUyTWtoSlZIUXliRFZVVEVSNWRDOWFTV2dyUTNkTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJGTTFkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVVelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZWVDFWMGRrTlVSRlJRYVVkcGIwWmhOSGh4Y3poTE5HdDNSbkl5UVd4MGJFZFNNVU1LVXpCeE1VY3ZNblpCT1Zwak9Hd3ZWa3hUVWpaNWR6VTBNVGxMVVZSUFlWRm9ZMmRTYTFsNVEyZE9Ta3BxUkhWUWRqWlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUmQyeFJRVUZDUVUxQlVucENSa0ZwUlVFclJtMUliMk5QYzNOdGVHNXRXSFZvYjB3M1dUWnpLMnBzUWpaMloydzRPUXBCTVVOTVpGWTVjV3htUVVOSlNGWjNlbGhwZEhCQ05qTnhNV2RWVkhoSlUxSTRlRWhHZVZwUGRuUTFRM1JSUVdOVGFYQkdUM2xYTUUxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUkdJdlIxWmhZVzVWU0c5WllXVXhiV2xoVmtSdGVHdFVlalk0TTFndmVVaEZhM2MwZVVRelZVSmlRemRuV0RFS2RUaG9hVVkxTTFGM1J6ZzFia00xYms5QlNYaEJVR3AyYW5WTmJVOTRjRGxDWkZBMllqQnlha2xMZG1sUFNVNVRSbUkyU1cxQmJtWnVOVlJVYUhWQmN3cEdZMWdyZEhoTVptaElOV3hoUVdaRE5tVldNWFJuUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgPaoP9+6j9HfULwCp+WXxqGPcZqmLYiKtOH0yQaDRYkECFHRF/gJRec9XXQ5vDke7KGUJueQLGA8yMDI2MTAxOTEzMDUxN1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTMwNTE3WjAvBgkqhkiG9w0BCQQxIgQgvNSvrZ7QMFGCN46cYZ6l+PuxwELXOMMALfIFDk/xLpEwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAKFd37IIKn3fQuWDzyNlIbz9kJTui8E/fa+iQyrN/q1zWoH5SxAdAUc6hlhZhhXgvwIxALZ2sMuow9s0hYNXPpAMIOY5KtZ1qBTvtKlAWFpwoE1CHhUPaZpj5ZqpehezdMyDoQ=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"QXmopHOOgelp6S0m3OlkiilH6S1BAj5y/zXCru7nhgw="},"signature":"MEQCIBslWu2GQjfdGzs8KlTrQICdMU/T9rCT/JnifC8tw3NOAiB5njUdi4TMcYmmSnB94eV+iZtLePR0UjHSgD4q52PJUA=="}}
|
build/torch211-cu128-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch211-cu130-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch211-cu130-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch211-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0191b655026e7f4b6c43fb8253fa37d45b431db3e122e00bc9926a2190b43920
|
| 3 |
+
size 421472
|
build/torch211-cu130-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"10.0",
|
| 13 |
+
"12.0",
|
| 14 |
+
"8.0",
|
| 15 |
+
"8.9",
|
| 16 |
+
"9.0"
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
"digest": {
|
| 20 |
+
"algorithm": "sha256",
|
| 21 |
+
"files": {
|
| 22 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 23 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 24 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "AZG2VQJuf0tsQ/uCU/o31FtDHbPhIuALyZJqIZC0OSA=",
|
| 25 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"provenance": {
|
| 29 |
+
"kernel-builder": {
|
| 30 |
+
"version": "0.18.0-dev0",
|
| 31 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 32 |
+
"dirty": false
|
| 33 |
+
},
|
| 34 |
+
"kernel": {
|
| 35 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 36 |
+
"dirty": false
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
}
|
build/torch211-cu130-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUQesPOCKrj6K5/hogXsnytdrtqt8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTE4WhcNMjYxMDE5MTMxNTE4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn6bZ2wujSgZM4tVqE+V5WCForPGi33dQxm2Z5B1BzEvjQchJ51kk1TomHOLBwCPn6//RWZzJtiicsssXsY3FLaOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQ0pwAABAMARzBFAiEAp8zKk+5Uxm4/3w458/n4mVXrnPeRFGTd+g3Ari8ikhkCIEm56I50ilb25QdvRQRUt00aP6f3Lz420qluSkOR3ZQ1MAoGCCqGSM49BAMDA2gAMGUCMBpXONFElaAL4oNo41QcFQUSzvGa9Fk65V03zEFSIGA0RUgSwTdvGzrTALA1s52nnAIxAMJ+niq7f8iRtgvDCKjnXADSHbc/nQC0qJj2acyab9fkoY1qG5gfPufpLaqp19/LuQ=="},"tlogEntries":[{"logIndex":"3321256127","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415118","inclusionPromise":{"signedEntryTimestamp":"MEQCIHGKRanhmhpIsY9vOKafGwzlbZRSeoSM/A2hEs3BknANAiAsfRKlOxhshrREYpSOA4yhNc27WIgrEMFtVCcvcUzDZg=="},"inclusionProof":{"logIndex":"3199351865","rootHash":"0OUvbmxd/M04TmKBs15Eftp4lZM5kofoauIq6PerwAc=","treeSize":"3199351868","hashes":["gqm7FjAuGat6WuPNeew1HTunTU8gvRw2xrNLSE9pdss=","qVYxXdJ2jdfakeWb+WBWhVPI0/mkt/2BL+4Yi8UlPIw=","Uxtevdz7BsmkoE+qRZzR2jQ5vt8suQCQD3HQ3umRRHQ=","SVu3R3XZUINk0SVDi5k3SMuXc7AqoaXm3r0a8lpfO8Y=","1C82OTkToDumAKk+kgLxoWAAfylqvbbutGXC4kJ5XFs=","pvSOMtCoDY7VfblJPv4FHsSUD1IfWr1b9YUvy3C4W64=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199351868\n0OUvbmxd/M04TmKBs15Eftp4lZM5kofoauIq6PerwAc=\n\n— rekor.sigstore.dev wNI9ajBGAiEAzhYuQgYDv/IBrgYJMwbK3IrppjchBweJx8dugXOfUe0CIQCFxVROEnt+WEd+olCjIRWEwQ0YNlBNDCS9VhJx3PUeuQ==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJmZThmODdmZGUwMWYxNjIyMjhiOTIzNTlkMzg0Njc0NzAzZWQwNDlmM2RiN2QwZGFjZjk4MGQxYzI2YTk3NDg4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUQzZC9jWWlqZ2xyc25DMm1pQStIdGRtYm5qOWZhbVFyc1pPSmhEQ0FuRG1BSWdYei9TWmczeXU4bUZZMUprSDY3SW1WVjBkUEJMbjJmWUpvUTJlbjlXeTBJPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlVXVnpVRTlEUzNKcU5rczFMMmh2WjFoemJubDBaSEowY1hRNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJGTkZkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVVMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ1Tm1KYU1uZDFhbE5uV2swMGRGWnhSU3RXTlZkRFJtOXlVRWRwTXpOa1VYaHRNbG9LTlVJeFFucEZkbXBSWTJoS05URnJhekZVYjIxSVQweENkME5RYmpZdkwxSlhXbnBLZEdscFkzTnpjMWh6V1ROR1RHRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUk1IQjNRVUZDUVUxQlVucENSa0ZwUlVGd09IcExheXMxVlhodE5DOHpkelExT0M5dU5HMVdXSEp1VUdWU1JrZFVaQW9yWnpOQmNtazRhV3RvYTBOSlJXMDFOa2sxTUdsc1lqSTFVV1IyVWxGU1ZYUXdNR0ZRTm1ZelRIbzBNakJ4YkhWVGEwOVNNMXBSTVUxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUW5CWVQwNUdSV3hoUVV3MGIwNXZOREZSWTBaUlZWTjZka2RoT1Vack5qVldNRE42UlVaVFNVZEJNRkpWWjFNS2QxUmtka2Q2Y2xSQlRFRXhjelV5Ym01QlNYaEJUVW9yYm1seE4yWTRhVkowWjNaRVEwdHFibGhCUkZOSVltTXZibEZETUhGS2FqSmhZM2xoWWpsbWF3cHZXVEZ4UnpWblpsQjFabkJNWVhGd01Ua3ZUSFZSUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgzvdyIdODeM0YnUoP+hgtXgYPcqcz1BC7duy9CRksdJMCFQCsyWbgRqhzuy/OZmvZebcBs3c5uhgPMjAyNjEwMTkxMzA1MThaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDUxOFowLwYJKoZIhvcNAQkEMSIEIHlOFZEefHUfGLzqqu6QvKECiAKwJHEabu280z/hBAqgMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQCEzPZ+N2gs5RngX4jI+FqspZIbKMXx1XSBlcbxrmcKsGvszg/L4kbwCpUt2AhE3JECMAy1LqP18jd3lZIOmdmRgNN4ev3G2r9mYdSx9E+fX22dYp/Nj1s+DwKjRbWljJom7w=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"/o+H/eAfFiIouSNZ04RnRwPtBJ89t9Daz5gNHCapdIg="},"signature":"MEUCIQD3d/cYijglrsnC2miA+Htdmbnj9famQrsZOJhDCAnDmAIgXz/SZg3yu8mFY1JkH67ImVV0dPBLn2fYJoQ2en9Wy0I="}}
|
build/torch211-cu130-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch212-cu126-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch212-cu126-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch212-cu126-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8c5dceb4054e89677081abf0ded0a5db2cbfc7b943d3d11c67ecb7f0af0a4f1b
|
| 3 |
+
size 286088
|
build/torch212-cu126-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"8.0",
|
| 13 |
+
"8.9",
|
| 14 |
+
"9.0"
|
| 15 |
+
]
|
| 16 |
+
},
|
| 17 |
+
"digest": {
|
| 18 |
+
"algorithm": "sha256",
|
| 19 |
+
"files": {
|
| 20 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 21 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 22 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "jF3OtAVOiWdwgavw3tCl2yy/x7lD09EcZ+y38K8KTxs=",
|
| 23 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 24 |
+
}
|
| 25 |
+
},
|
| 26 |
+
"provenance": {
|
| 27 |
+
"kernel-builder": {
|
| 28 |
+
"version": "0.18.0-dev0",
|
| 29 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 30 |
+
"dirty": false
|
| 31 |
+
},
|
| 32 |
+
"kernel": {
|
| 33 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 34 |
+
"dirty": false
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
}
|
build/torch212-cu126-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUKIPksPNUWSxGZ3XYp0TRkd/qtVkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTE5WhcNMjYxMDE5MTMxNTE5WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDkfyk3ghF14pDH+VEQMQei9DFLNhm9jOZ5XaCK6Gsy9A+cJaga/OkP4SBu0CECmrAzEJBfUXuHLYjMCZAT/7o6OCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQ37AAABAMARzBFAiEAz1pdtR4P0scI7byDos8eK/0LhS+NoxX4rDJZSh9tbw4CIElmrUA/8gbAUXSLZuFp3KXeQONj2gX4pamhYrCjkyJRMAoGCCqGSM49BAMDA2gAMGUCMFlz5KymFD494B9DVLjWJhPPtMfRSweGJb9Kg232nqcRQ7mq3jwUk60ErcG4JiS9rwIxAP7ZG3uoKDqeTtZ0ItGoOXptcceIKeP2cmZCzRZCapRnWlwa7eWN9NE1aD68lmqc7g=="},"tlogEntries":[{"logIndex":"3321256189","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415119","inclusionPromise":{"signedEntryTimestamp":"MEUCIFhLr4FHTIcLRViVybjrXhlgMMGsDOA5iuVMlhj7GHCfAiEAly/nZEqX9w4fJ1TXUZAGilRy7alWaoSdNN6tZUX1HJU="},"inclusionProof":{"logIndex":"3199351927","rootHash":"5u4xS7ehWXpHl0WB+xCs1MDgCj0r6jOi4pDvCXdzbRs=","treeSize":"3199351928","hashes":["jzeqVe4Mk+f+a+25AxqZHz3XXOXdrrnVGIh6YDGwL0Q=","EEsdDNVhz6leAMZDPMS81jeQtjdjhyXPU1xmQS5mbPA=","svuEruPG8rNgkFscAx9Y72tz5SrhSUgwlznV2eSkY9s=","7tOk1CAwe34+sVeO0uqFCP1LPNIWGrbRsGBYCe8KyBY=","4J18rxcO2EhjBfiExf1coS/BQOXPnnP4Q4gxS4nTJh0=","5V+Y6Y1T1j0sNR+jxfPl1dXF7MKqR63vqHvv7e9W4+U=","pvSOMtCoDY7VfblJPv4FHsSUD1IfWr1b9YUvy3C4W64=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199351928\n5u4xS7ehWXpHl0WB+xCs1MDgCj0r6jOi4pDvCXdzbRs=\n\n— rekor.sigstore.dev wNI9ajBFAiEA1s+tzznnnsvp9Fbq5+DeOSPHcS2UDHkYW21R9Fl5YXUCICN1pGfKoo14xVGUO4uGHUbOE/jmFfJGvtHt0tdPhSlM\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzYjkyZjhhNDQ5MjAzNDQ0OWU5MTUzNGJkNGY0Mjg1ODUxMjBhMmRiNTllYmRkZjI3YjI5NDMwYzkwODFmZmQ0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNMNGxyNzlEWUpuOCtRRVRPa21BSk1FMmhVeDVSU25FRTVWY1BxMUJhQUpBSWhBSWhkMkg2K040N0thMzcxRnNackErUTR4NVozOWRud2xSNFA1RCszVHFUcyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlMwbFFhM05RVGxWWFUzaEhXak5ZV1hBd1ZGSnJaQzl4ZEZacmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJGTlZkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVVMVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZFYTJaNWF6Tm5hRVl4TkhCRVNDdFdSVkZOVVdWcE9VUkdURTVvYlRscVQxbzFXR0VLUTBzMlIzTjVPVUVyWTBwaFoyRXZUMnRRTkZOQ2RUQkRSVU50Y2tGNlJVcENabFZZZFVoTVdXcE5RMXBCVkM4M2J6WlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUk16ZEJRVUZDUVUxQlVucENSa0ZwUlVGNk1YQmtkRkkwVURCelkwazNZbmxFYjNNNFpVc3ZNRXhvVXl0T2IzaFlOQXB5UkVwYVUyZzVkR0ozTkVOSlJXeHRjbFZCTHpobllrRlZXRk5NV25WR2NETkxXR1ZSVDA1cU1tZFlOSEJoYldoWmNrTnFhM2xLVWsxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUm14Nk5VdDViVVpFTkRrMFFqbEVWa3hxVjBwb1VGQjBUV1pTVTNkbFIwcGlPVXRuTWpNeWJuRmpVbEUzYlhFS00ycDNWV3MyTUVWeVkwYzBTbWxUT1hKM1NYaEJVRGRhUnpOMWIwdEVjV1ZVZEZvd1NYUkhiMDlZY0hSalkyVkpTMlZRTW1OdFdrTjZVbHBEWVhCU2JncFhiSGRoTjJWWFRqbE9SVEZoUkRZNGJHMXhZemRuUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg6r4mSSbLZ33fkYsaWbAitOPUp7tlkOsdORRvUggnSW0CFA7K//cen5dSaEc5nLWF52WZMmNxGA8yMDI2MTAxOTEzMDUxOVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTMwNTE5WjAvBgkqhkiG9w0BCQQxIgQgk8RvT+anXR0P7uu8hGuB4D8cG1NT/M9GdP5PKMO35pUwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAJBfa73BTX2sJWbwnqditSsoMzFGDTvHGUEY3H/18j0PfAE13675a7W9hhhZas7AGQIxAOQIcKUnjv0kV5xfwcU7EZZgCqM17DPWjRI5t4gyGBIj094c/robZj0RrZdLf4JV2g=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"O5L4pEkgNESekVNL1PQoWFEgottZ693yeylDDJCB/9Q="},"signature":"MEYCIQCL4lr79DYJn8+QETOkmAJME2hUx5RSnEE5VcPq1BaAJAIhAIhd2H6+N47Ka371FsZrA+Q4x5Z39dnwlR4P5D+3TqTs"}}
|
build/torch212-cu126-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch212-cu130-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|
build/torch212-cu130-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _rwkv_cuda_fe2bb66
|
| 3 |
+
ops = torch.ops._rwkv_cuda_fe2bb66
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_rwkv_cuda_fe2bb66::{op_name}"
|
build/torch212-cu130-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7c342bbc052eee8c403763d44c3117eece563fe92306febc080c29e442277d17
|
| 3 |
+
size 421408
|
build/torch212-cu130-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "rwkv",
|
| 3 |
+
"id": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"kernels-minver": "0.14.0",
|
| 6 |
+
"license": "Apache-2.0",
|
| 7 |
+
"python-depends": [],
|
| 8 |
+
"kernel-depends": [],
|
| 9 |
+
"backend": {
|
| 10 |
+
"type": "cuda",
|
| 11 |
+
"archs": [
|
| 12 |
+
"10.0",
|
| 13 |
+
"12.0",
|
| 14 |
+
"8.0",
|
| 15 |
+
"8.9",
|
| 16 |
+
"9.0"
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
"digest": {
|
| 20 |
+
"algorithm": "sha256",
|
| 21 |
+
"files": {
|
| 22 |
+
"__init__.py": "amGCZ7NM7A7uSNkWvcloOWf4aT83qrs8SqDXoTS6QKQ=",
|
| 23 |
+
"_ops.py": "w0bKbLzY87IOlz0PXuprnKLp2kh3iAzHURNEjrzNcSI=",
|
| 24 |
+
"_rwkv_cuda_fe2bb66.abi3.so": "fDQrvAUu7oxAN2PUTDEX7s5WP+kjBv68CAwp5EInfRc=",
|
| 25 |
+
"symbols.json": "inVs3pRoEtQOuFmFelx4SLt4ypDMYcHgUZsPgauo4+M="
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"provenance": {
|
| 29 |
+
"kernel-builder": {
|
| 30 |
+
"version": "0.18.0-dev0",
|
| 31 |
+
"commit": "d054906a13710b811b96697b4635f03020842733",
|
| 32 |
+
"dirty": false
|
| 33 |
+
},
|
| 34 |
+
"kernel": {
|
| 35 |
+
"commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
|
| 36 |
+
"dirty": false
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
}
|
build/torch212-cu130-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUdQqhQHv7PcVJwP9MfX8QSs/cIgswCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwNTIwWhcNMjYxMDE5MTMxNTIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEndnXPxkD8Oj/kfFHHHFIFPq7FXxFH6uk940egpSJuS0oTgH64qKgoaJ6vSSJQkd9wX2ZtDyYXzjec1YneyeNg6OCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEQ8RAAABAMARzBFAiEAn/uZ6YP5wRFCub5WBswscpccoggoz5XTslU56Pd+FRUCIGdYHpSv2iXUFyvbYaaS8b3j0N8DDWeI21Vs2A9Ub0CWMAoGCCqGSM49BAMDA2gAMGUCMDgwfor+nEL7SKHFZnAKOWxKVmHyX1PNd2oM9YXxcskboyP8k20sLW/6mDFaYXvgogIxAJhMp0YjaTyzUY6W48AH3TUhC2Ipa0dFXoYZDchTjrzU6Va04GaAzLmd0bpe7nO+AQ=="},"tlogEntries":[{"logIndex":"3321256304","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415120","inclusionPromise":{"signedEntryTimestamp":"MEUCIQChxzihL88jHh9baI3rJhbbYPxJNW6PoPCtUYzbwF/obAIgflLNuZt7vh/vwCzjDy+c0pzUlxOiFNbniigFD6uO/eY="},"inclusionProof":{"logIndex":"3199352042","rootHash":"cpRiEJzYyzg2Lvl+tW4/f+RBeCtMuQBdIm9focmZik8=","treeSize":"3199352048","hashes":["IfSBlbsFDXzre5Qld0zyK7cUguFqGRZ6lZMSZvA7A6A=","c5PxnPn09FkoQjQn+xsQbPYxbwhEYM8d67wTkCY1kRo=","NWRdP1vLN48ASGLYRVAhDjLLFUa7G/UKV5iAssFeNZQ=","BQ/oUgeOEh9zjB+Rus/uvUWm4HEURFVrmPoaQ0xclq8=","6PTjbrgF4gmJMXQD4N5eSW/oLOOeuwXfLZBnah+9hJ8=","/r1MjldhvTi5OhOJCp+Dx1xd4N0f5cyGF1KLy8wuWrY=","ig9pr77VIw1H//BUEywcKR6qnlwMqWgbOLe5HSB+RtQ=","pvSOMtCoDY7VfblJPv4FHsSUD1IfWr1b9YUvy3C4W64=","cP4l3rlp30O2J4tK9B/xoAeqH/RdNZIPK//vSax8mag=","2kBL89oKHsEw0T2bX5j7Z/fslRfQBgZ+oj5rWgze1x4=","QyrNHyflFz1E0Eym1jXWQcmF271vpJhslMNdsmF41dM=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199352048\ncpRiEJzYyzg2Lvl+tW4/f+RBeCtMuQBdIm9focmZik8=\n\n— rekor.sigstore.dev wNI9ajBEAiBtOuFl9CsT9E4lIEmGEXLs29tldrNMX7vpUXYN1wOWDgIgChsceXiFp1MHPzS34dN1e34U0Ov6HvG5JE8pj1rxbfM=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1YjY1Zjk2YThjNjg1NzlhZmQzZjc1MWE2ZGZiODM4NTMyYjc3OTA4ZThjZWU4OTgwMzYyYjk5NmI3MTVjOGQ2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURFZkpvKzVUVEZHU0pRNlZZWXZ0c3o2dWZGdFJPYVk5cGM4anY1T1FXNFJ3SWdNeWIwNDV0OVNrZGtYZ3QxZUVFOVpBZ1JudUY5ZTBGR2VQOHdiWGlwa3RvPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlpGRnhhRkZJZGpkUVkxWktkMUE1VFdaWU9GRlRjeTlqU1dkemQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUbFJKZDFkb1kwNU5hbGw0VFVSRk5VMVVUWGhPVkVsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ1Wkc1WVVIaHJSRGhQYWk5clprWklTRWhHU1VaUWNUZEdXSGhHU0RaMWF6azBNR1VLWjNCVFNuVlRNRzlVWjBnMk5IRkxaMjloU2paMlUxTktVV3RrT1hkWU1scDBSSGxaV0hwcVpXTXhXVzVsZVdWT1p6WlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWUk9GSkJRVUZDUVUxQlVucENSa0ZwUlVGdUwzVmFObGxRTlhkU1JrTjFZalZYUW5OM2MyTndZMk52WjJkdmVqVllWQXB6YkZVMU5sQmtLMFpTVlVOSlIyUlpTSEJUZGpKcFdGVkdlWFppV1dGaFV6aGlNMm93VGpoRVJGZGxTVEl4Vm5NeVFUbFZZakJEVjAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUkdkM1ptOXlLMjVGVERkVFMwaEdXbTVCUzA5WGVFdFdiVWg1V0RGUVRtUXliMDA1V1ZoNFkzTnJZbTk1VURnS2F6SXdjMHhYTHpadFJFWmhXVmgyWjI5blNYaEJTbWhOY0RCWmFtRlVlWHBWV1RaWE5EaEJTRE5VVldoRE1rbHdZVEJrUmxodldWcEVZMmhVYW5KNlZRbzJWbUV3TkVkaFFYcE1iV1F3WW5CbE4yNVBLMEZSUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgAvMbpwWt3G3+jyJMmXWl3Gt1VvMa9z26rzjwZ/CrOXYCFQDwoPEPmiz8IQtagQ/N+YbfQ/mSbhgPMjAyNjEwMTkxMzA1MjBaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDUyMFowLwYJKoZIhvcNAQkEMSIEIC6g4WWHYGQAK1A+/Ai0anditASHIVyryEaJiZsaLBfyMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMF/+Ar94KnFfRyJWLGQC7sd+iv+BurTjc3SbGT6aJSiRddH7uIbYbwGdTJDqc+RINwIwaewaIg7JxSAV0bOdVE4ylUY0w1isL83NWhmcacRZRRlP4d90TaNY7kHeaCXtpbIb"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"W2X5aoxoV5r9P3UabfuDhTK3eQjozuiYA2K5lrcVyNY="},"signature":"MEUCIQDEfJo+5TTFGSJQ6VYYvtsz6ufFtROaY9pc8jv5OQW4RwIgMyb045t9SkdkXgt1eEE9ZAgRnuF9e0FGeP8wbXipkto="}}
|
build/torch212-cu130-aarch64-linux/symbols.json
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 4 |
+
"functions": [
|
| 5 |
+
{
|
| 6 |
+
"name": "forward",
|
| 7 |
+
"qualname": "forward",
|
| 8 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 9 |
+
"kind": "function",
|
| 10 |
+
"doc": "RWKV WKV forward pass (float32).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 11 |
+
"signature": {
|
| 12 |
+
"parameters": [
|
| 13 |
+
{
|
| 14 |
+
"name": "w",
|
| 15 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 16 |
+
"default": null,
|
| 17 |
+
"annotation": "torch.Tensor"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"name": "u",
|
| 21 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 22 |
+
"default": null,
|
| 23 |
+
"annotation": "torch.Tensor"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"name": "k",
|
| 27 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 28 |
+
"default": null,
|
| 29 |
+
"annotation": "torch.Tensor"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"name": "v",
|
| 33 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 34 |
+
"default": null,
|
| 35 |
+
"annotation": "torch.Tensor"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"name": "y",
|
| 39 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 40 |
+
"default": null,
|
| 41 |
+
"annotation": "torch.Tensor"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"return_annotation": "None"
|
| 45 |
+
}
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"name": "forward_bf16",
|
| 49 |
+
"qualname": "forward_bf16",
|
| 50 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 51 |
+
"kind": "function",
|
| 52 |
+
"doc": "RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).\n\nRuns the CUDA kernel and writes the result into ``y`` in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 53 |
+
"signature": {
|
| 54 |
+
"parameters": [
|
| 55 |
+
{
|
| 56 |
+
"name": "w",
|
| 57 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 58 |
+
"default": null,
|
| 59 |
+
"annotation": "torch.Tensor"
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"name": "u",
|
| 63 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 64 |
+
"default": null,
|
| 65 |
+
"annotation": "torch.Tensor"
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "k",
|
| 69 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 70 |
+
"default": null,
|
| 71 |
+
"annotation": "torch.Tensor"
|
| 72 |
+
},
|
| 73 |
+
{
|
| 74 |
+
"name": "v",
|
| 75 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 76 |
+
"default": null,
|
| 77 |
+
"annotation": "torch.Tensor"
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"name": "y",
|
| 81 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 82 |
+
"default": null,
|
| 83 |
+
"annotation": "torch.Tensor"
|
| 84 |
+
}
|
| 85 |
+
],
|
| 86 |
+
"return_annotation": "None"
|
| 87 |
+
}
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "forward_with_state",
|
| 91 |
+
"qualname": "forward_with_state",
|
| 92 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 93 |
+
"kind": "function",
|
| 94 |
+
"doc": "RWKV WKV forward pass with persistent state (float32).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 95 |
+
"signature": {
|
| 96 |
+
"parameters": [
|
| 97 |
+
{
|
| 98 |
+
"name": "w",
|
| 99 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 100 |
+
"default": null,
|
| 101 |
+
"annotation": "torch.Tensor"
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"name": "u",
|
| 105 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 106 |
+
"default": null,
|
| 107 |
+
"annotation": "torch.Tensor"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "k",
|
| 111 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 112 |
+
"default": null,
|
| 113 |
+
"annotation": "torch.Tensor"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"name": "v",
|
| 117 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 118 |
+
"default": null,
|
| 119 |
+
"annotation": "torch.Tensor"
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "y",
|
| 123 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 124 |
+
"default": null,
|
| 125 |
+
"annotation": "torch.Tensor"
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"name": "s",
|
| 129 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 130 |
+
"default": null,
|
| 131 |
+
"annotation": "torch.Tensor"
|
| 132 |
+
}
|
| 133 |
+
],
|
| 134 |
+
"return_annotation": "None"
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"name": "forward_with_state_bf16",
|
| 139 |
+
"qualname": "forward_with_state_bf16",
|
| 140 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 141 |
+
"kind": "function",
|
| 142 |
+
"doc": "RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).\n\nRuns the CUDA kernel using and updating state ``s`` and writes the result into ``y``.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.",
|
| 143 |
+
"signature": {
|
| 144 |
+
"parameters": [
|
| 145 |
+
{
|
| 146 |
+
"name": "w",
|
| 147 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 148 |
+
"default": null,
|
| 149 |
+
"annotation": "torch.Tensor"
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"name": "u",
|
| 153 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 154 |
+
"default": null,
|
| 155 |
+
"annotation": "torch.Tensor"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"name": "k",
|
| 159 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 160 |
+
"default": null,
|
| 161 |
+
"annotation": "torch.Tensor"
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"name": "v",
|
| 165 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 166 |
+
"default": null,
|
| 167 |
+
"annotation": "torch.Tensor"
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"name": "y",
|
| 171 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 172 |
+
"default": null,
|
| 173 |
+
"annotation": "torch.Tensor"
|
| 174 |
+
},
|
| 175 |
+
{
|
| 176 |
+
"name": "s",
|
| 177 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 178 |
+
"default": null,
|
| 179 |
+
"annotation": "torch.Tensor"
|
| 180 |
+
}
|
| 181 |
+
],
|
| 182 |
+
"return_annotation": "None"
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"name": "backward",
|
| 187 |
+
"qualname": "backward",
|
| 188 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 189 |
+
"kind": "function",
|
| 190 |
+
"doc": "RWKV WKV backward pass (float32).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 191 |
+
"signature": {
|
| 192 |
+
"parameters": [
|
| 193 |
+
{
|
| 194 |
+
"name": "w",
|
| 195 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 196 |
+
"default": null,
|
| 197 |
+
"annotation": "torch.Tensor"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"name": "u",
|
| 201 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 202 |
+
"default": null,
|
| 203 |
+
"annotation": "torch.Tensor"
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"name": "k",
|
| 207 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 208 |
+
"default": null,
|
| 209 |
+
"annotation": "torch.Tensor"
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"name": "v",
|
| 213 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 214 |
+
"default": null,
|
| 215 |
+
"annotation": "torch.Tensor"
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"name": "y",
|
| 219 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 220 |
+
"default": null,
|
| 221 |
+
"annotation": "torch.Tensor"
|
| 222 |
+
},
|
| 223 |
+
{
|
| 224 |
+
"name": "gy",
|
| 225 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 226 |
+
"default": null,
|
| 227 |
+
"annotation": "torch.Tensor"
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"name": "gw",
|
| 231 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 232 |
+
"default": null,
|
| 233 |
+
"annotation": "torch.Tensor"
|
| 234 |
+
},
|
| 235 |
+
{
|
| 236 |
+
"name": "gu",
|
| 237 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 238 |
+
"default": null,
|
| 239 |
+
"annotation": "torch.Tensor"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"name": "gk",
|
| 243 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 244 |
+
"default": null,
|
| 245 |
+
"annotation": "torch.Tensor"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"name": "gv",
|
| 249 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 250 |
+
"default": null,
|
| 251 |
+
"annotation": "torch.Tensor"
|
| 252 |
+
}
|
| 253 |
+
],
|
| 254 |
+
"return_annotation": "None"
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"name": "backward_bf16",
|
| 259 |
+
"qualname": "backward_bf16",
|
| 260 |
+
"module": "_rwkv_cuda_fe2bb66",
|
| 261 |
+
"kind": "function",
|
| 262 |
+
"doc": "RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).\n\nWrites gradients into the provided tensors in-place.\n\nArgs:\n w: Decay weights, shape ``[C]``, dtype ``torch.float32``.\n u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.\n gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).\n gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).\n\nNotes:\n - All tensors must be on the same CUDA device.\n - Shapes must agree on ``B``, ``T`` and ``C``.",
|
| 263 |
+
"signature": {
|
| 264 |
+
"parameters": [
|
| 265 |
+
{
|
| 266 |
+
"name": "w",
|
| 267 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 268 |
+
"default": null,
|
| 269 |
+
"annotation": "torch.Tensor"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"name": "u",
|
| 273 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 274 |
+
"default": null,
|
| 275 |
+
"annotation": "torch.Tensor"
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"name": "k",
|
| 279 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 280 |
+
"default": null,
|
| 281 |
+
"annotation": "torch.Tensor"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"name": "v",
|
| 285 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 286 |
+
"default": null,
|
| 287 |
+
"annotation": "torch.Tensor"
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"name": "y",
|
| 291 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 292 |
+
"default": null,
|
| 293 |
+
"annotation": "torch.Tensor"
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"name": "gy",
|
| 297 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 298 |
+
"default": null,
|
| 299 |
+
"annotation": "torch.Tensor"
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"name": "gw",
|
| 303 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 304 |
+
"default": null,
|
| 305 |
+
"annotation": "torch.Tensor"
|
| 306 |
+
},
|
| 307 |
+
{
|
| 308 |
+
"name": "gu",
|
| 309 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 310 |
+
"default": null,
|
| 311 |
+
"annotation": "torch.Tensor"
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"name": "gk",
|
| 315 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 316 |
+
"default": null,
|
| 317 |
+
"annotation": "torch.Tensor"
|
| 318 |
+
},
|
| 319 |
+
{
|
| 320 |
+
"name": "gv",
|
| 321 |
+
"kind": "POSITIONAL_OR_KEYWORD",
|
| 322 |
+
"default": null,
|
| 323 |
+
"annotation": "torch.Tensor"
|
| 324 |
+
}
|
| 325 |
+
],
|
| 326 |
+
"return_annotation": "None"
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
],
|
| 330 |
+
"layers": []
|
| 331 |
+
}
|
build/torch212-cu132-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from ._ops import ops
|
| 2 |
+
from typing import Tuple, Any
|
| 3 |
+
|
| 4 |
+
# Use a broad Tensor alias to avoid importing torch at import time.
|
| 5 |
+
from torch import Tensor
|
| 6 |
+
|
| 7 |
+
def forward(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 8 |
+
"""RWKV WKV forward pass (float32).
|
| 9 |
+
|
| 10 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 11 |
+
|
| 12 |
+
Args:
|
| 13 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 14 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 15 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 16 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 17 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 18 |
+
|
| 19 |
+
Notes:
|
| 20 |
+
- All tensors must be on the same CUDA device.
|
| 21 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 22 |
+
"""
|
| 23 |
+
_validate_device_match((w, u, k, v, y))
|
| 24 |
+
ops.forward(w, u, k, v, y)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
def forward_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor) -> None:
|
| 28 |
+
"""RWKV WKV forward pass (bfloat16 inputs/outputs, float32 ``w``).
|
| 29 |
+
|
| 30 |
+
Runs the CUDA kernel and writes the result into ``y`` in-place.
|
| 31 |
+
|
| 32 |
+
Args:
|
| 33 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 34 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 35 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 36 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 37 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 38 |
+
|
| 39 |
+
Notes:
|
| 40 |
+
- All tensors must be on the same CUDA device.
|
| 41 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 42 |
+
"""
|
| 43 |
+
_validate_device_match((w, u, k, v, y))
|
| 44 |
+
ops.forward_bf16(w, u, k, v, y)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def forward_with_state(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 48 |
+
"""RWKV WKV forward pass with persistent state (float32).
|
| 49 |
+
|
| 50 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 54 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 55 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 56 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 57 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 58 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 59 |
+
|
| 60 |
+
Notes:
|
| 61 |
+
- All tensors must be on the same CUDA device.
|
| 62 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 63 |
+
"""
|
| 64 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 65 |
+
ops.forward_with_state(w, u, k, v, y, s)
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
def forward_with_state_bf16(w: Tensor, u: Tensor, k: Tensor, v: Tensor, y: Tensor, s: Tensor) -> None:
|
| 69 |
+
"""RWKV WKV forward pass with persistent state (bfloat16 inputs/outputs, float32 ``w`` and ``s``).
|
| 70 |
+
|
| 71 |
+
Runs the CUDA kernel using and updating state ``s`` and writes the result into ``y``.
|
| 72 |
+
|
| 73 |
+
Args:
|
| 74 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 75 |
+
u: Input tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 76 |
+
k: Key tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 77 |
+
v: Value tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 78 |
+
y: Output tensor, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 79 |
+
s: Stateful tensor, shape ``[B, C]``, dtype ``torch.float32`` (updated in-place).
|
| 80 |
+
|
| 81 |
+
Notes:
|
| 82 |
+
- All tensors must be on the same CUDA device.
|
| 83 |
+
- Shapes must agree on ``B`` and ``C``; ``y`` shares ``[B, T, C]`` with inputs.
|
| 84 |
+
"""
|
| 85 |
+
_validate_device_match((w, u, k, v, y, s))
|
| 86 |
+
ops.forward_with_state_bf16(w, u, k, v, y, s)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def backward(
|
| 90 |
+
w: Tensor,
|
| 91 |
+
u: Tensor,
|
| 92 |
+
k: Tensor,
|
| 93 |
+
v: Tensor,
|
| 94 |
+
y: Tensor,
|
| 95 |
+
gy: Tensor,
|
| 96 |
+
gw: Tensor,
|
| 97 |
+
gu: Tensor,
|
| 98 |
+
gk: Tensor,
|
| 99 |
+
gv: Tensor,
|
| 100 |
+
) -> None:
|
| 101 |
+
"""RWKV WKV backward pass (float32).
|
| 102 |
+
|
| 103 |
+
Writes gradients into the provided tensors in-place.
|
| 104 |
+
|
| 105 |
+
Args:
|
| 106 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 107 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 108 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.float32``.
|
| 109 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.float32`` (written in-place).
|
| 110 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.float32`` (written in-place).
|
| 111 |
+
|
| 112 |
+
Notes:
|
| 113 |
+
- All tensors must be on the same CUDA device.
|
| 114 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 115 |
+
"""
|
| 116 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 117 |
+
ops.backward(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 118 |
+
|
| 119 |
+
|
| 120 |
+
def backward_bf16(
|
| 121 |
+
w: Tensor,
|
| 122 |
+
u: Tensor,
|
| 123 |
+
k: Tensor,
|
| 124 |
+
v: Tensor,
|
| 125 |
+
y: Tensor,
|
| 126 |
+
gy: Tensor,
|
| 127 |
+
gw: Tensor,
|
| 128 |
+
gu: Tensor,
|
| 129 |
+
gk: Tensor,
|
| 130 |
+
gv: Tensor,
|
| 131 |
+
) -> None:
|
| 132 |
+
"""RWKV WKV backward pass (bfloat16 inputs/outputs/gradients, float32 ``w``).
|
| 133 |
+
|
| 134 |
+
Writes gradients into the provided tensors in-place.
|
| 135 |
+
|
| 136 |
+
Args:
|
| 137 |
+
w: Decay weights, shape ``[C]``, dtype ``torch.float32``.
|
| 138 |
+
u, k, v, y: Forward-pass tensors, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 139 |
+
gy: Gradient of ``y``, shape ``[B, T, C]``, dtype ``torch.bfloat16``.
|
| 140 |
+
gw: Gradient for ``w``, shape ``[C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 141 |
+
gu, gk, gv: Gradients for ``u``, ``k``, ``v`` respectively, shape ``[B, T, C]``, dtype ``torch.bfloat16`` (written in-place).
|
| 142 |
+
|
| 143 |
+
Notes:
|
| 144 |
+
- All tensors must be on the same CUDA device.
|
| 145 |
+
- Shapes must agree on ``B``, ``T`` and ``C``.
|
| 146 |
+
"""
|
| 147 |
+
_validate_device_match((w, u, k, v, y, gy, gw, gu, gk, gv))
|
| 148 |
+
ops.backward_bf16(w, u, k, v, y, gy, gw, gu, gk, gv)
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def _validate_device_match(tensors: Tuple[Tensor, ...]) -> None:
|
| 152 |
+
"""Minimal runtime validation that all tensors live on the same CUDA device."""
|
| 153 |
+
if not tensors:
|
| 154 |
+
return
|
| 155 |
+
device = tensors[0].device
|
| 156 |
+
if not device.type == "cuda":
|
| 157 |
+
raise RuntimeError("RWKV CUDA ops require CUDA tensors")
|
| 158 |
+
for t in tensors[1:]:
|
| 159 |
+
if t.device != device:
|
| 160 |
+
raise RuntimeError("All tensors must be on the same CUDA device")
|
| 161 |
+
|
| 162 |
+
|
| 163 |
+
__all__ = [
|
| 164 |
+
"forward",
|
| 165 |
+
"forward_bf16",
|
| 166 |
+
"forward_with_state",
|
| 167 |
+
"forward_with_state_bf16",
|
| 168 |
+
"backward",
|
| 169 |
+
"backward_bf16",
|
| 170 |
+
]
|