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-x86_64-linux/__init__.py +170 -0
- build/torch210-cu126-x86_64-linux/_ops.py +9 -0
- build/torch210-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch210-cu126-x86_64-linux/metadata.json +37 -0
- build/torch210-cu126-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch210-cu126-x86_64-linux/symbols.json +331 -0
- build/torch210-cu128-x86_64-linux/__init__.py +170 -0
- build/torch210-cu128-x86_64-linux/_ops.py +9 -0
- build/torch210-cu128-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch210-cu128-x86_64-linux/metadata.json +39 -0
- build/torch210-cu128-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch210-cu128-x86_64-linux/symbols.json +331 -0
- build/torch210-cu130-x86_64-linux/__init__.py +170 -0
- build/torch210-cu130-x86_64-linux/_ops.py +9 -0
- build/torch210-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch210-cu130-x86_64-linux/metadata.json +39 -0
- build/torch210-cu130-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch210-cu130-x86_64-linux/symbols.json +331 -0
- build/torch211-cu126-x86_64-linux/__init__.py +170 -0
- build/torch211-cu126-x86_64-linux/_ops.py +9 -0
- build/torch211-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch211-cu126-x86_64-linux/metadata.json +37 -0
- build/torch211-cu126-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch211-cu126-x86_64-linux/symbols.json +331 -0
- build/torch211-cu128-x86_64-linux/__init__.py +170 -0
- build/torch211-cu128-x86_64-linux/_ops.py +9 -0
- build/torch211-cu128-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch211-cu128-x86_64-linux/metadata.json +39 -0
- build/torch211-cu128-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch211-cu128-x86_64-linux/symbols.json +331 -0
- build/torch211-cu130-x86_64-linux/__init__.py +170 -0
- build/torch211-cu130-x86_64-linux/_ops.py +9 -0
- build/torch211-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch211-cu130-x86_64-linux/metadata.json +39 -0
- build/torch211-cu130-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch211-cu130-x86_64-linux/symbols.json +331 -0
- build/torch212-cu126-x86_64-linux/__init__.py +170 -0
- build/torch212-cu126-x86_64-linux/_ops.py +9 -0
- build/torch212-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch212-cu126-x86_64-linux/metadata.json +37 -0
- build/torch212-cu126-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch212-cu126-x86_64-linux/symbols.json +331 -0
- build/torch212-cu130-x86_64-linux/__init__.py +170 -0
- build/torch212-cu130-x86_64-linux/_ops.py +9 -0
- build/torch212-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so +3 -0
- build/torch212-cu130-x86_64-linux/metadata.json +39 -0
- build/torch212-cu130-x86_64-linux/metadata.json.sigstore +1 -0
- build/torch212-cu130-x86_64-linux/symbols.json +331 -0
- build/torch212-cu132-x86_64-linux/__init__.py +170 -0
.gitattributes
CHANGED
|
@@ -270,3 +270,21 @@ build/torch214-cu132-aarch64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lf
|
|
| 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 273 |
+
build/torch210-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 274 |
+
build/torch210-cu128-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 275 |
+
build/torch210-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 276 |
+
build/torch211-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 277 |
+
build/torch211-cu128-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 278 |
+
build/torch211-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 279 |
+
build/torch212-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 280 |
+
build/torch212-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 281 |
+
build/torch212-cu132-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 282 |
+
build/torch213-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 283 |
+
build/torch213-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 284 |
+
build/torch213-cu132-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 285 |
+
build/torch214-cu126-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 286 |
+
build/torch214-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 287 |
+
build/torch214-cu132-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 288 |
+
build/torch215-cu130-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 289 |
+
build/torch215-cu132-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
| 290 |
+
build/torch215-cu134-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
|
build/torch210-cu126-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6d79862b4955ad5f1324d92752a3cf73aa091d9e366b7dc492aff6da2936bd2a
|
| 3 |
+
size 229664
|
build/torch210-cu126-x86_64-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": "bXmGK0lVrV8TJNknUqPPc6oJHZ42a33Ekq/22ik2vSo=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUfvmeRF5qaJL+qjlbjwyxmGR4w/kwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1ODQ1WhcNMjYxMDE5MTcwODQ1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsWc/TOQKmrOqdNfAZg73CzCWuIXMdwz3QdBIXtdoTlmCS4ltx9g7JfD2d5qJnNE9e0jhfGRxEiVJsq2l872iTaOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRnvMwAABAMARzBFAiEAxg1Ev88DWwckchLb3VsjH+aNJy77ffEK1wLgDothj+sCIHptoVaDlwerBMFqfES3qWbpiQQMRv15a3sGUCIFWEkfMAoGCCqGSM49BAMDA2gAMGUCMQCwDNzflNdjkuNcR76WOqAF5+wavV/DfDDnQIyT2qV7ceWG9do2FUjkbExKPuTxiDUCMEZvSphwXAOx9QCc3NP5J78RQoscRWTuaz8IJL+mCY3Uu1PQX+04Z2AY34xOYwUD9w=="}, "tlogEntries":[{"logIndex":"3323770314", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429128", "inclusionPromise":{"signedEntryTimestamp":"MEUCIHp7TSjzrQhwngkVaNQmnjdupFFzLzvnadqPCKK+uN/OAiEA7HEK4LTmQ+rACXldE6LAo+fFdDqm6i0/dTMfas1s13A="}, "inclusionProof":{"logIndex":"3201866052", "rootHash":"q2LwnMa0qCwWmN9LeMzPr62STdmzlllQ6N91OE2W/fw=", "treeSize":"3201866384", "hashes":["5UDUgs3+k5Xzij1BfLtcEVp3m9ZDfV2deWq3Kb/LA7k=", "gdaHQGHZsuM7S2rXGjSGkZtE6+gahOoqf/skRr4H5do=", "5LK+HFnrU+YQnqRl2fNbwGuWl3Vja+R/mHdQpLrVqhE=", "m1CnsCnGvURDzd0Bok6nQuMGnSpklfxErViAwou5G3U=", "/fpN9Qt0y/qIaXCjoC3wUc4QITIcjGW+VBVEtT0ClK8=", "2vsL4Ebp1isI8u1im81yyE4PzbTjVxZwzvYQdfL15MU=", "XX2SUkUyLNGFLO2SdTrYlSpC3cnuS86YtOJbLglzS+w=", "oUFQDWnPO2mq03t2Ty0dl1YEZvggpbiul7i2g1gX8bw=", "/LHEawDTQYBFJbe9u8bKTgIBkdH++kRL37pjgiHAcSQ=", "CzgNb3o0du4vXIkkV2nIwgUUfnxrcRx2bmFpiQvRIA4=", "ZPauTSPOesHyNSsCSamwg8AVqbZFSiWGAQUOkU+jTk8=", "qn+fHiszAh+N2YtRmkvz0lgvQltc3SQw8JGks4iML24=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201866384\nq2LwnMa0qCwWmN9LeMzPr62STdmzlllQ6N91OE2W/fw=\n\n— rekor.sigstore.dev wNI9ajBFAiEAk7RXxOeNmTa1mvHHwq/p83Nbbn4Jp76TSFlPpqzrd/cCIHtbzUgSL3Fg7Rq+f7oFMvKnCSfU6+kXercduvH9cl9N\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4OGQ2ODc4OWExYTFkOTVkMWNhN2FiMGNlYWJhN2M2NjQzMTk4ZjQzMTgxYzg3OTU2MzExZjE5ODgzZjExMWI2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURldTd5K0kyVytFenF0VjBtTWh2UnNBR3U0eVpRSkFraXV6VmRIVnlLTTlnSWhBT21mSDQ3NmRiSVRsVHQ5KzlIck9XcC96VENVQjNFcTBHOVZoc3R3OVJ2TyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlpuWnRaVkpHTlhGaFNrd3JjV3BzWW1wM2VYaHRSMUkwZHk5cmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMFJSTVZkb1kwNU5hbGw0VFVSRk5VMVVZM2RQUkZFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ6VjJNdlZFOVJTMjF5VDNGa1RtWkJXbWMzTTBONlExZDFTVmhOWkhkNk0xRmtRa2tLV0hSa2IxUnNiVU5UTkd4MGVEbG5OMHBtUkRKa05YRktiazVGT1dVd2FtaG1SMUo0UldsV1NuTnhNbXc0TnpKcFZHRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKdWRrMTNRVUZDUVUxQlVucENSa0ZwUlVGNFp6RkZkamc0UkZkM1kydGphRXhpTTFaemFrZ3JZVTVLZVRjM1ptWkZTd294ZDB4blJHOTBhR29yYzBOSlNIQjBiMVpoUkd4M1pYSkNUVVp4WmtWVE0zRlhZbkJwVVZGTlVuWXhOV0V6YzBkVlEwbEdWMFZyWmsxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OVVVOM1JFNTZabXhPWkdwcmRVNWpVamMyVjA5eFFVWTFLM2RoZGxZdlJHWkVSRzVSU1hsVU1uRldOMk5sVjBjS09XUnZNa1pWYW10aVJYaExVSFZVZUdsRVZVTk5SVnAyVTNCb2QxaEJUM2c1VVVOak0wNVFOVW8zT0ZKUmIzTmpVbGRVZFdGNk9FbEtUQ3R0UTFrelZRcDFNVkJSV0Nzd05Gb3lRVmt6TkhoUFdYZFZSRGwzUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg8+fkk+U89KaCUe9mA1rORkwzULQ0BBSkS1n3SMWAqkACFQCEKcFlvapVRMb0vUbH6PM252PDchgPMjAyNjEwMTkxNjU4NDVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTE2NTg0NVowLwYJKoZIhvcNAQkEMSIEIKFN7I1rMTAxWElm2q6BbXaS+WgKV3wZb6x1aM70OCjiMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQD+1N/PkTeg5MBx25t7IWVyoGndI4hlUDsBGOhQQFi4Ios4iSwGSzVJJzNAOICb9O8CMQC+9/wB67JVKcMe9mSIuew4SFAhn8WjjCheVhvpGAMqKKp5CVEwFBTSfFyONlxQf2w="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"iNaHiaGh2V0cp6sM6rp8ZkMZj0MYHIeVYxHxmIPxEbY="}, "signature":"MEYCIQDeu7y+I2W+EzqtV0mMhvRsAGu4yZQJAkiuzVdHVyKM9gIhAOmfH476dbITlTt9+9HrOWp/zTCUB3Eq0G9Vhstw9RvO"}}
|
build/torch210-cu126-x86_64-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-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b0da7af93dbb4efcad7603fe28da3ff189f4439d8733093c04c425c30d107657
|
| 3 |
+
size 385160
|
build/torch210-cu128-x86_64-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": "sNp6+T27TvytdgP+KNo/8Yn0Q52HMwk8BMQlww0Qdlc=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLjCCBrOgAwIBAgIUEqiF9HCeB5HUNUIy3upxoOaeBgswCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1ODU0WhcNMjYxMDE5MTcwODU0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeiUlWC7nB/zjW06YXeGQwzz3tYRR2GtUC8ujyEIJSMUEUEzI3LfeKXvqYtQbDBL4HZjAmvM+qFNTG/IVhpOrn6OCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRoR9AAABAMASDBGAiEAz2gOMi2DFvTerYdCsDl1rbLizAgXLZl4ISNsWCLpjn8CIQDqg5U7JSBxBvCFEcyum3yn9nDd0Onnn1NFWkHOCVmjpzAKBggqhkjOPQQDAwNpADBmAjEAyq929zvmzo+pNRIVw5MpAeerUxyI99934SQxcrCoWYNbHtD3ooKJXWAT8l2l1Iv6AjEAraWCDw9XhhhEMsodWqXZd8avDfMJuawzwH3ndH/8/tvnAoauT8eVVNm6nQR/9w4I"}, "tlogEntries":[{"logIndex":"3323771599", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429134", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQDMfq4u7CdOqnUncJ4QvO9Cc2bF2sU/FNSXaLNIoZ1NNQIhAKfYIDmdPXcsCMzKNxrG9yfCAhT5rZ2zu8IYwPZuWQ3A"}, "inclusionProof":{"logIndex":"3201867337", "rootHash":"3fEzcA30cuBB2+hjnDLIygAZCttDjC4W1jKhaZv7xt8=", "treeSize":"3201867360", "hashes":["qmVuki3PmPGsTSS6i/KFmyiwjR8nw9cPAe28l7CZfYU=", "mBqP8Hl8GoYvYZhficTIvEns5o0/WUDhc6zOGbNtQzY=", "15QXL18gepKqb9eZvs1lh7yk9W6wxIu0TBmGz5nl6g4=", "/TU9mQZz/HjJpzzD+pfQZCYJ2rziEiwwbJoce9YfTag=", "S1biDtwzg5rTUMHIyaC8EU+sbwDW/n1aTwL+eONmRKI=", "5kETYltmJi2K3WWVc/CRxLs88C+UG1Hfg600H3vnhOA=", "8kaicoSUVjjSC/faCJu7SRyFm53BivN12STKOdBsHjc=", "WP8jqy3iiV+Qu6Dljlu5beMIdjdp6cfbVyjWOsZlxYM=", "ZPauTSPOesHyNSsCSamwg8AVqbZFSiWGAQUOkU+jTk8=", "qn+fHiszAh+N2YtRmkvz0lgvQltc3SQw8JGks4iML24=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201867360\n3fEzcA30cuBB2+hjnDLIygAZCttDjC4W1jKhaZv7xt8=\n\n— rekor.sigstore.dev wNI9ajBFAiEAlu6pd2BgxtQw/tVC9CCPBwVoB3bXRO9Sc5i3x4xXrusCIGCvo4pQ7JAYQQii0QWtTmy4fZ+BNZttGgkUYnvZi1UO\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjZDFmOGJmODhiNzYzYzZlMjk4ZDJkZjY5ZDdmZTZmMDNmN2I4MzFjNDI3OGU0ZmI0NWQxZDNjNGM0ZjA1NjM2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRkErd1o5Sk9zeEhsOGpZbVI0NW5hUEVGdGdqRWxpU1VFQjRIV2JVY2ZyNkFpRUE5NDNOelRCRnN2R2VqNGtGZWZGOEc2eG1OKys5cTg1VnpiZGJlQWR6eVF3PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1ha05EUW5KUFowRjNTVUpCWjBsVlJYRnBSamxJUTJWQ05VaFZUbFZKZVROMWNIaHZUMkZsUW1kemQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMFJWTUZkb1kwNU5hbGw0VFVSRk5VMVVZM2RQUkZVd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZsYVZWc1YwTTNia0l2ZW1wWE1EWlpXR1ZIVVhkNmVqTjBXVkpTTWtkMFZVTTRkV29LZVVWSlNsTk5WVVZWUlhwSk0weG1aVXRZZG5GWmRGRmlSRUpNTkVoYWFrRnRkazByY1VaT1ZFY3ZTVlpvY0U5eWJqWlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKdlVqbEJRVUZDUVUxQlUwUkNSMEZwUlVGNk1tZFBUV2t5UkVaMlZHVnlXV1JEYzBSc01YSmlUR2w2UVdkWVRGcHNOQXBKVTA1elYwTk1jR3B1T0VOSlVVUnhaelZWTjBwVFFuaENka05HUldONWRXMHplVzQ1YmtSa01FOXVibTR4VGtaWGEwaFBRMVp0YW5CNlFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2NFRkVRbTFCYWtWQmVYRTVNamw2ZG0xNmJ5dHdUbEpKVm5jMVRYQkJaV1Z5VlhoNVNUazVPVE0wVTFGNFkzSkRiMWRaVG1JS1NIUkVNMjl2UzBwWVYwRlVPR3d5YkRGSmRqWkJha1ZCY21GWFEwUjNPVmhvYUdoRlRYTnZaRmR4V0Zwa09HRjJSR1pOU25WaGQzcDNTRE51WkVndk9Bb3ZkSFp1UVc5aGRWUTRaVlpXVG0wMmJsRlNMemwzTkVrS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg64SEkVed56Dbpk0+Yjj5pyF1Pn7icvrqlGElLCZHPOMCFQD9vndFTKBg/kYQZUh4BkfxL4W1zxgPMjAyNjEwMTkxNjU4NTRaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTE2NTg1NFowLwYJKoZIhvcNAQkEMSIEIOFMJrmgSQiPX4CHIx8nhJXUiXajcnuTeHXHqQPuvAhZMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQDXULQ6IvTBBs85iyov2/SLC5+35Yc/5se24B2n5abySzm0HPPZrVYd4brJa+7ODdwCMQDv6fPUjw6LSvYvF8rvL/JpmtJBkhWpH1P/fYzIufzI9Oo6JG7X51D89zaafjAJbCA="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"zR+L+It2PG4pjS32nX/m8D97gxxCeOT7RdHTxMTwVjY="}, "signature":"MEUCIFA+wZ9JOsxHl8jYmR45naPEFtgjEliSUEB4HWbUcfr6AiEA943NzTBFsvGej4kFefF8G6xmN++9q85VzbdbeAdzyQw="}}
|
build/torch210-cu128-x86_64-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-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:00e2ba59a3e2b328deb5523162a5bf961c8165f5df3c0edb994c88fef1740933
|
| 3 |
+
size 410664
|
build/torch210-cu130-x86_64-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": "AOK6WaPisyjetVIxYqW/lhyBZfXfPA7bmUyI/vF0CTM=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLjCCBrOgAwIBAgIUOsJwl36bHG0b5M6n6N8GIcDMOWMwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1ODU4WhcNMjYxMDE5MTcwODU4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOi7IC1tvZn3KGWj2DIyV+GfGYvIwLhE2InvV5AwvWCWHPQW2JmQUERMXsv2KlGqtwbwQ75/BdG//P9LQSYTlf6OCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRojqgAABAMASDBGAiEAx70P2tYJMB7zKUD4jlA9YpIK/a0US+pBdsn7qeSI/qICIQDQqSZisdWFlO5gHZYXzUNLNGQGsfcg3TKKK8d1ZPN3VjAKBggqhkjOPQQDAwNpADBmAjEAt3R3vygUrET/tv9JfQIV8/3Kzx6o7sK7UVkGPr6Qa3aNeQF5cMwHvasrQ/owUMbAAjEA+C0EV5iFuBQz9Nk0nwIZ1zQq9hN6/WIaD7JABM7A1BjzJDzJ+UxGW5CiOGZsPWEX"}, "tlogEntries":[{"logIndex":"3323772481", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429139", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQD2QYKDIKxOJeWibmgDyX/j02PrvbVKP2+H0dhrdJEkrAIgNIJrWdk2CdyaHfIxzIJ5rujxIms5HQ9n6fsQ9ntyYgY="}, "inclusionProof":{"logIndex":"3201868219", "rootHash":"qHbhsvcv93NY6aefgLbNIYE4kVUCUe0NV4eRVtccJys=", "treeSize":"3201868228", "hashes":["XAJBY/JKLpaY+dZxwc8PRU3xKJYDOa6jdgSHazEt58M=", "pNTlWqlrtrecvhv74ttcMhQMX0MqxU0fLEjQAWIx2ak=", "q7727o3jyfoDHP49If1sHmp5SKnGdIYcRIR4Ckyyxb4=", "VMnMz50AwbunonLX+4hOkb/BD7wMlUGq1EkqnayhtX4=", "+69j4S4C5nFafHUwgRbshWAqrthzGc/YRC8YVcH9Tmw=", "lg7U7emXAefNlKN53uhjb8I10Ih5efu+b+44izHUuWY=", "i2Y+y+mZHjhlULnWgcHFtScBO2yGOMG9AinRZJQXS1c=", "yKBUVDJgU8ACKPM6C5MHn6W30PlPzIXzq9ZBzDLHFR0=", "vIj1uM8VfWQMrUqihHhuL2Af8QkL7QJu14hc1Yg+dyc=", "KToNGOU/2LQPMnwkW0YBQmo27fLOVdrtlPNJA6eS4kg=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201868228\nqHbhsvcv93NY6aefgLbNIYE4kVUCUe0NV4eRVtccJys=\n\n— rekor.sigstore.dev wNI9ajBFAiAIMtQI6LfYFAs3TZVanZZLR0iR/Hw5G2jbJan6oK5exwIhAP0cG0sIHNan1ltP2wkIjG3FegVSJmkdCfM5Ey9+gzB/\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJhNTgxYThlMmEyZWQ5YzkzZTYzMGVjYzRlOTgyN2FlOGZjMTI0YjdjNGE4MGVjMzEyNWMwNDA5YjU4MDJlNWQ5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJR0xxZXFSK2x6K2pMb0R3bW1HUEx3eWVJNWNYWmppNGM3cDNoNE5ndkc1WEFpRUF1OW5rMWRjQVdOZWtkTmFGSXpWUWszbEI3OEp1ZmlJeFFnUHYzZXRyQW9zPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1ha05EUW5KUFowRjNTVUpCWjBsVlQzTktkMnd6Tm1KSVJ6QmlOVTAyYmpaT09FZEpZMFJOVDFkTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMFJWTkZkb1kwNU5hbGw0VFVSRk5VMVVZM2RQUkZVMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZQYVRkSlF6RjBkbHB1TTB0SFYyb3lSRWw1Vml0SFprZFpka2wzVEdoRk1rbHVkbFlLTlVGM2RsZERWMGhRVVZjeVNtMVJWVVZTVFZoemRqSkxiRWR4ZEhkaWQxRTNOUzlDWkVjdkwxQTVURkZUV1ZSc1pqWlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKdmFuRm5RVUZDUVUxQlUwUkNSMEZwUlVGNE56QlFNblJaU2sxQ04zcExWVVEwYW14Qk9WbHdTVXN2WVRCVlV5dHdRZ3BrYzI0M2NXVlRTUzl4U1VOSlVVUlJjVk5hYVhOa1YwWnNUelZuU0ZwWldIcFZUa3hPUjFGSGMyWmpaek5VUzB0TE9HUXhXbEJPTTFacVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2NFRkVRbTFCYWtWQmRETlNNM1o1WjFWeVJWUXZkSFk1U21aUlNWWTRMek5MZW5nMmJ6ZHpTemRWVm10SFVISTJVV0V6WVU0S1pWRkdOV05OZDBoMllYTnlVUzl2ZDFWTllrRkJha1ZCSzBNd1JWWTFhVVoxUWxGNk9VNXJNRzUzU1ZveGVsRnhPV2hPTmk5WFNXRkVOMHBCUWswM1FRb3hRbXA2U2tSNlNpdFZlRWRYTlVOcFQwZGFjMUJYUlZnS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg4N4ZW2JIsnMQ8WktGQQfV54/81q5wmiFvn5xq1XqMYgCFQCUFAn+H0Eb7gKVwo8RiUboYZDSaBgPMjAyNjEwMTkxNjU4NThaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTE2NTg1OFowLwYJKoZIhvcNAQkEMSIEIEUq50YKG1d1cOGD5WTXnP7L2vfL2/ynmuNt3yUm3nzsMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQCambyE1BpdvML0lsOd+a0lvvBM63fCWwD2M2+gmwbuTG1buGRFXIEIAdswRpCe1tACMQCZCwN0vcwByry50MSlPYR5iWWkI3Mobv4mWH4k5jWEaGnziKCJfU3z5wc1+MayDoo="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"pYGo4qLtnJPmMOzE6YJ66PwSS3xKgOwxJcBAm1gC5dk="}, "signature":"MEUCIGLqeqR+lz+jLoDwmmGPLwyeI5cXZji4c7p3h4NgvG5XAiEAu9nk1dcAWNekdNaFIzVQk3lB78JufiIxQgPv3etrAos="}}
|
build/torch210-cu130-x86_64-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-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ab0e923dce74e7c55bb8abea8d9d8f7d96f186074471149103c1faefa1b417aa
|
| 3 |
+
size 229664
|
build/torch211-cu126-x86_64-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": "qw6SPc5058VbuKvqjZ2PfZbxhgdEcRSRA8H676G0F6o=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLTCCBrKgAwIBAgIUFVsVaQeTF27KyuMvRs303QB46QEwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1OTAzWhcNMjYxMDE5MTcwOTAzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWqN3ZkXF3JPq6dO0re1kIMdlCGT+Byd8nirifO4PIcw/E+DmIPBuRjHUxv7ytgv54PO3nyygW6ivZoXrCpjbUqOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRo2vQAABAMARzBFAiA7KbDArvBqPe1ALnBUn5xPqTBrCu0uPZ5o5JIVNmtWWQIhAI72Pj0QRZdmAGaW9SPU+XY5a2TZJeFFz2TObTVLf+vsMAoGCCqGSM49BAMDA2kAMGYCMQCql53VlR9HerIP/8d8MS2TkDgps2e9xa9eubylKsvXZ3t+rOlrAzEWxd9VNcevsWcCMQChmdaNx1EI2HBcIBckusOpzZ3Qc5/Rrhvb7BaeWEFWRwhhuTgdNQ+GXa5mhEI+6fU="}, "tlogEntries":[{"logIndex":"3323773771", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429145", "inclusionPromise":{"signedEntryTimestamp":"MEQCID/VN2RjyUCVq0k+ZOsrG08jdEJR1aDaf4j3j1HyWIMkAiBCAPSRq+t7dlEc7EBUxkXOUL/QqCMVneeIp7AyUVljDw=="}, "inclusionProof":{"logIndex":"3201869509", "rootHash":"W9claMolZ2LXhc/23lO1qqtJ10niMaPMJZgoa7HKxEs=", "treeSize":"3201870071", "hashes":["raHjQY+QIo39yvdFKrg7KeRipu/iDdUoUxzfUW2d0/o=", "eRcYa8n7auHMoYlKergGcS7JuBFDy4PuFoVMCsLqgUg=", "/fD8z0DuRGkfJK9aH/KX7Npv+AeXsOTHDezmb9uBfw8=", "XPJy46K1U8x9i06aKdJZzOTFXAAiwqwCK4qCuJsvCew=", "d5Cw1FQX+FKrn7bb2yDe64FrJ8rI/fA7lVc1TrBIRxE=", "jqor0B/zlWyyxIp6l1vzgn7tdsR17YWEG7+SbewIwjM=", "JmlM7j6N/BrbY5MEwBtf4UBDf7ICI4oP8dQR3m8tPnQ=", "epPzYj28zI13Ex7N6T1AEFlj2e7OfhJNzUTft7YXXaw=", "GJdEUFVAjBjlgt2QrxlxbFPeFn+gGuCFQJC/BhEoVks=", "kAXcK3qZBVLwzxb8d5ZiNPgflqeJhoaRtsQea1HAhhc=", "/VTLdp40meMX8B3H3VAry72qvwJQ+KlULgQDrKWn4yU=", "sghJxkV4aXmhkDlPntrZ3JulU+RYeZIS3dl45uyZNe0=", "KToNGOU/2LQPMnwkW0YBQmo27fLOVdrtlPNJA6eS4kg=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201870071\nW9claMolZ2LXhc/23lO1qqtJ10niMaPMJZgoa7HKxEs=\n\n— rekor.sigstore.dev wNI9ajBFAiBaFRg68PGZFSz5CRU+Vj5ksZ9mA6Ydrr6ZUuvS+JHDpwIhAK0SfX8LL9Vfjwxndf7OewBCQDt1imaxHdWG+gDcMZao\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1MDBlMDIxNjJlOTVlM2JiZmY3ODE5MzAxZmEwZWJhNzUzZmY2NmY4ODhmNjY5ZjcxY2ZmZGVkZDExNDY0YTE5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQWo5WVRBeXdRRTlCNXpYNzRyY2hEWU5BNDFUeFBWTExua1BJMDdFa3ZCWUFpQnBFNjBhR2VxaHI5WVJwZ3ptZmRDdnNNaVc3K2VDbGZYQkNZQ3BJdDZrQ0E9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KTFowRjNTVUpCWjBsVlJsWnpWbUZSWlZSR01qZExlWFZOZGxKek16QXpVVUkwTmxGRmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMVJCZWxkb1kwNU5hbGw0VFVSRk5VMVVZM2RQVkVGNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZYY1U0eldtdFlSak5LVUhFMlpFOHdjbVV4YTBsTlpHeERSMVFyUW5sa09HNXBjbWtLWms4MFVFbGpkeTlGSzBSdFNWQkNkVkpxU0ZWNGRqZDVkR2QyTlRSUVR6TnVlWGxuVnpacGRscHZXSEpEY0dwaVZYRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKdk1uWlJRVUZDUVUxQlVucENSa0ZwUVRkTFlrUkJjblpDY1ZCbE1VRk1ia0pWYmpWNFVIRlVRbkpEZFRCMVVGbzFid28xU2tsV1RtMTBWMWRSU1doQlNUY3lVR293VVZKYVpHMUJSMkZYT1ZOUVZTdFlXVFZoTWxSYVNtVkdSbm95VkU5aVZGWk1aaXQyYzAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKclFVMUhXVU5OVVVOeGJEVXpWbXhTT1VobGNrbFFMemhrT0UxVE1sUnJSR2R3Y3pKbE9YaGhPV1YxWW5sc1MzTjJXRm96ZENzS2NrOXNja0Y2UlZkNFpEbFdUbU5sZG5OWFkwTk5VVU5vYldSaFRuZ3hSVWt5U0VKalNVSmphM1Z6VDNCNldqTlJZelV2VW5Kb2RtSTNRbUZsVjBWR1Z3cFNkMmhvZFZSblpFNVJLMGRZWVRWdGFFVkpLelptVlQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQghj+oPKYi7hKpdknu+CX5veQMys+Ly5bNqBV0dawdLR0CFQDMiWwTnoBddiRr0LzhpeiYiCqEYRgPMjAyNjEwMTkxNjU5MDNaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTE2NTkwM1owLwYJKoZIhvcNAQkEMSIEIAtRNBFmvTLWUG/bF7MmAqALkL6Odc4YASmnl8iMgP0VMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMAapjIKaeDyH2pau/ieCmDLjNK7iKPcjTSj1SSH/oRaBO4Pq9jrdqaTLFMtOWNc/egIxAKr1/QNKkJ8gtomOyTsEtPwvLIW5vctBXkWj3oAhyUkHWOgvv81CFSkuxzzRcceSTw=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"UA4CFi6V47v/eBkwH6Drp1P/ZviI9mn3HP/e3RFGShk="}, "signature":"MEQCIAj9YTAywQE9B5zX74rchDYNA41TxPVLLnkPI07EkvBYAiBpE60aGeqhr9YRpgzmfdCvsMiW7+eClfXBCYCpIt6kCA=="}}
|
build/torch211-cu126-x86_64-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-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d92b9e6c9a232d9dd98944890e941b4cfb40c2742be6026a3900c2a133567cd
|
| 3 |
+
size 385160
|
build/torch211-cu128-x86_64-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": "jZK55smiMtndmJRIkOlBtM+0DCdCvmAmo5AMKhM1Z80=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLTCCBrKgAwIBAgIUQsRIFi4slmKfyHUCXcP3W4xHCGEwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1OTEyWhcNMjYxMDE5MTcwOTEyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElIOR5ypMJW6Ilbh/Z3CWfKPwrbIhF7gYD81zZGWe7tWbRrBIBZ7EC/QNFMtD3nXuUXZVZOiVzm78leOeRutKn6OCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRpaGQAABAMARzBFAiEAx3/bVETT68VXVa0guGum2aHhCpH0d48XyHfGRazWDlsCIAvXbFRkhoFMHHin56p4Dk/KwbiI3Ojz8ogfk64BotXGMAoGCCqGSM49BAMDA2kAMGYCMQC5dMLNK7wpSWILmStCeXl8dIox4UgGoz2GRXZfi1m7VlGn2DZaa7mYwaeatQ89IrICMQCzdBT9Mjye2FPtTpVsx036oiQxcZCM3qHfjyl0iBSo+m8wOnMyGLzeHSKtwToyB8s="}, "tlogEntries":[{"logIndex":"3323775407", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429153", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQCv9PEdQ2ohZRyhQdaZiGJiw+vHRm9rctQnfHKSik5dcgIgVx9HYlhg24aJD07+qWkiL6fPMRlZdWaO4SsEGxB2Bug="}, "inclusionProof":{"logIndex":"3201871145", "rootHash":"54qruKG0yzo+f75Kpm/kL2m289lYdeozLCDD9m9SNOQ=", "treeSize":"3201871354", "hashes":["FB7uA1nB4/6wAvcvCTBJ8UcUXgpxoOqe65UgHsU8HUA=", "Oh9qbQ7BtOATK9vy8lXAQZu508niFa+W+tyyl7R+CII=", "g+L+GxNHar/fvsLRu1AiUcQxSyv+9uDscSKYDK2XT6Y=", "6qgYiPJOjr3gN5EaX+3qZ3MuUWE4ItJHTPYICmXELvM=", "pA+KmHqxg0E8DZbdo6oaCl8+lBOOxxcRT/I5X5dXLa4=", "E9khCu+JBWvxI1LYoo5Zu3/u6wB9Ul+z3uVJrDYdnZ4=", "EZ9926bjgfuI5NuGkcblSMVYpjdcbNE9CsHIXV760go=", "smm/CTKGpFV9Ym5y8gc3ioBf689FSSAfENQZaOwK2a4=", "pHtX82Y74bvwhuKZfb907BY0kRutGODi0V+g0AevY3U=", "glyQw5Cb7UTQcVC8Nv6dsXFY/Q41T/OzJMUPByTDcuQ=", "lXysSfZzBRrHF3PliB4b5n2skqb1A6lQIEKJfxyqFu8=", "KToNGOU/2LQPMnwkW0YBQmo27fLOVdrtlPNJA6eS4kg=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201871354\n54qruKG0yzo+f75Kpm/kL2m289lYdeozLCDD9m9SNOQ=\n\n— rekor.sigstore.dev wNI9ajBEAiBY3LhnRJV2GIECj7oMIyNTFVVAuxfsLbMyAf0QLcRzAwIgC86Kt3RkhW8yfsdrfGbRefpKiF43Lb9OiWVcZdtkqh0=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1ODI1Yjk3MDlkZGZhNWUxYjI3Y2I5NjZlNTAwOTZiODUwNDdlODc0MjgwZjVkYTYyODk2ZDNiYjM3YzMzNmI2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRXBwV0dNbGgrM1ZKZ2lCWWdEcy8yTXd3ZmJ2dTdKR09PaldidjFIQmlSNEFpRUExRENYNDExdVdHMjFJRFlKQkZ5Q05qeWxKYTFGY1ZrU203VWZURWlVanpvPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KTFowRjNTVUpCWjBsVlVYTlNTVVpwTkhOc2JVdG1lVWhWUTFoalVETlhOSGhJUTBkRmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMVJGZVZkb1kwNU5hbGw0VFVSRk5VMVVZM2RQVkVWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZzU1U5U05YbHdUVXBYTmtsc1ltZ3ZXak5EVjJaTFVIZHlZa2xvUmpkbldVUTRNWG9LV2tkWFpUZDBWMkpTY2tKSlFsbzNSVU12VVU1R1RYUkVNMjVZZFZWWVdsWmFUMmxXZW0wM09HeGxUMlZTZFhSTGJqWlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKd1lVZFJRVUZDUVUxQlVucENSa0ZwUlVGNE15OWlWa1ZVVkRZNFZsaFdZVEJuZFVkMWJUSmhTR2hEY0Vnd1pEUTRXQXA1U0daSFVtRjZWMFJzYzBOSlFYWllZa1pTYTJodlJrMUlTR2x1TlRad05FUnJMMHQzWW1sSk0wOXFlamh2WjJack5qUkNiM1JZUjAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKclFVMUhXVU5OVVVNMVpFMU1Ua3MzZDNCVFYwbE1iVk4wUTJWWWJEaGtTVzk0TkZWblIyOTZNa2RTV0ZwbWFURnROMVpzUjI0S01rUmFZV0UzYlZsM1lXVmhkRkU0T1VseVNVTk5VVU42WkVKVU9VMXFlV1V5UmxCMFZIQldjM2d3TXpadmFWRjRZMXBEVFROeFNHWnFlV3d3YVVKVGJ3b3JiVGgzVDI1TmVVZE1lbVZJVTB0MGQxUnZlVUk0Y3owS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgpY03shN3i0hD2L5Mia+LbRZbUg/FAIlwdFBJvIZtqxcCFQDhb/5g26zFl/kPCI1juB4mz2ufeRgPMjAyNjEwMTkxNjU5MTJaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTE2NTkxMlowLwYJKoZIhvcNAQkEMSIEIFI6xh9GiPa8s/nXTtp3ouQ6VTu3Iomk154rh5Vy5IfxMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMHGWJz0ewJb82rEVInQh1ntGH6Fa53Sxs+d9Usr2gLwIPxvnN/86eGZiwGWy1HiUQQIwTWUTur9/SfI8jEjir6Oh5s8yMFo3Lkf4G4JA8fNKsKs5TR3Txm+t6GPBWgmV+K8r"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"WCW5cJ3fpeGyfLlm5QCWuFBH6HQoD12mKJbTuzfDNrY="}, "signature":"MEUCIEppWGMlh+3VJgiBYgDs/2Mwwfbvu7JGOOjWbv1HBiR4AiEA1DCX411uWG21IDYJBFyCNjylJa1FcVkSm7UfTEiUjzo="}}
|
build/torch211-cu128-x86_64-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-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:07d3eec7fcc9772fee93a595d55d5728e498491cf8ff9a96b19c8c5ed2cf4794
|
| 3 |
+
size 410664
|
build/torch211-cu130-x86_64-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": "B9Pux/zJdy/uk6WV1V1XKOSYSRz4/5qWsZyMXtLPR5Q=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrOgAwIBAgIUOC3/PVMMBgYq+hbAPyg3ey5xxIgwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1OTE1WhcNMjYxMDE5MTcwOTE1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvnvv7M1AnoBaEvdy3iIluWx3nYqjO7r6VbQQGLCgTBSBa7b5CBOKGqREyZJAnx6mTganqlVMlH46RUsKYGnyE6OCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRplOQAABAMASDBGAiEA4qBhjGRUxb1pPtsthMF14Whh/yjgfKnBDyLG0waeBnwCIQDOS5vw0GB5Z9S6nMt6oYAtddwtBT0zpfxCgeSIuDd9TjAKBggqhkjOPQQDAwNnADBkAjARNPeM08QOFdPznmi6lBzNG6CmfTZN0ufc4cW+Kzz7XZbGoSV33vjfRMEGR2NQ09QCMHyUYOadA3lR2bBLk1Vuq1HmBmQ76+KKrNNd3qiDUvMgEh0JvlrDcwI1VgQOKYvp7g=="}, "tlogEntries":[{"logIndex":"3323775966", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429156", "inclusionPromise":{"signedEntryTimestamp":"MEQCIBpDZIo04UNs4e1k9R+RRXopWNSCAWAtMupNIvPpDH+DAiAEgxu3t1HARgGnq6BPOharDyagcOOnjO8IzFqTe+9WDQ=="}, "inclusionProof":{"logIndex":"3201871704", "rootHash":"Yz4tugnWyAY7tbWtrwpTKRSJ4tGX5u839YJmDogoVdo=", "treeSize":"3201872002", "hashes":["8YkGQbDNB/14Wst6wZjXX0gPgSvgNJiJQ7OUBwruasw=", "xQj+9nzKciV6/ojpbp2RfC8dzy04EN0zibXxvESA8yI=", "rOOthtnau7N3Ev21vOkND5WiLoSbpvEUc4wDtj+DPgU=", "S3+UxMaK1PKWB/GI+BESCQ87lDRKLRVwJwEysERC8HY=", "joq/l9uUx2wxx61x8eKlE8IDh0Qh0D2L8wMAb11kBac=", "rQJTIqNJl6fkx9Ma9NDNkYFBoWUGsQ47FIr1Y8P41FA=", "qhqlwv/DyfKoRnU/L0bqmJiIpFsHDFxMNIDIDiwrQnc=", "13FvdE1/nw/9bPyQQd98Tssyj8mWxkxECMH91ZIwfqY=", "78trHy97IRNOGtmVsqX/84epZR7RBz0dBWYsoSJxJL0=", "szrJoWEZBlN6vVyqAH7cigkWXjzTEDo9LT8MwP+/1iA=", "glyQw5Cb7UTQcVC8Nv6dsXFY/Q41T/OzJMUPByTDcuQ=", "lXysSfZzBRrHF3PliB4b5n2skqb1A6lQIEKJfxyqFu8=", "PJcEWheSvn2yVXD8wR9GJ6lKvUSCDM+m1WGh/i9UHEc=", "KToNGOU/2LQPMnwkW0YBQmo27fLOVdrtlPNJA6eS4kg=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201872002\nYz4tugnWyAY7tbWtrwpTKRSJ4tGX5u839YJmDogoVdo=\n\n— rekor.sigstore.dev wNI9ajBFAiEAzpa2gTTnt0z/VLUcVwJ6mwRbNXY5tWeEyZk9d7toLPUCIDsZZJ3UWrkIgwBf5YgB2WbQvR292FpdFlR/PbMS+y60\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJkYjY5YWQyNjkyOGM3ZWUzZTdhOWI5ZTFjMTg5NDNmNGRlMzEzYjg2YmJjMWE0NTM2OTMxZWQ3OGNkZmEzYWRmIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNwZDNkVm0zZUJicVUxeXErRzRIZmM5b2c1RVMzY2FDSE5rYlE3T1FSYmxBSWdhWHNiZys2QnJsNmJUVEk2RDRZTlJZb1RIRU40dzBUVnQzWUZ4RVNQVm5nPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KUFowRjNTVUpCWjBsVlQwTXpMMUJXVFUxQ1oxbHhLMmhpUVZCNVp6TmxlVFY0ZUVsbmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMVJGTVZkb1kwNU5hbGw0VFVSRk5VMVVZM2RQVkVVeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVYyYm5aMk4wMHhRVzV2UW1GRmRtUjVNMmxKYkhWWGVETnVXWEZxVHpkeU5sWmlVVkVLUjB4RFoxUkNVMEpoTjJJMVEwSlBTMGR4VWtWNVdrcEJibmcyYlZSbllXNXhiRlpOYkVnME5sSlZjMHRaUjI1NVJUWlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKd2JFOVJRVUZDUVUxQlUwUkNSMEZwUlVFMGNVSm9ha2RTVlhoaU1YQlFkSE4wYUUxR01UUlhhR2d2ZVdwblprdHVRZ3BFZVV4SE1IZGhaVUp1ZDBOSlVVUlBVelYyZHpCSFFqVmFPVk0yYmsxME5tOVpRWFJrWkhkMFFsUXdlbkJtZUVOblpWTkpkVVJrT1ZScVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2JrRkVRbXRCYWtGU1RsQmxUVEE0VVU5R1pGQjZibTFwTm14Q2VrNUhOa050WmxSYVRqQjFabU0wWTFjclMzcDZOMWhhWWtjS2IxTldNek4yYW1aU1RVVkhVakpPVVRBNVVVTk5TSGxWV1U5aFpFRXpiRkl5WWtKTWF6RldkWEV4U0cxQ2JWRTNOaXRMUzNKT1RtUXpjV2xFVlhaTlp3cEZhREJLZG14eVJHTjNTVEZXWjFGUFMxbDJjRGRuUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgNX4BitZqjhR1jzopyD3tA7+UJ2DnrpRMC3/1jI5LSG4CFQCsvm3vjB7mbxjM74rsdUcoxB2x4RgPMjAyNjEwMTkxNjU5MTVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTE2NTkxNVowLwYJKoZIhvcNAQkEMSIEIKF6+bDHzaGPPctlmBCNAudM2/CPdLVXKDdrtofojWA3MIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMGhDPpOs/7Sbf94iNzMKvKFNv/Zlic/vLDWTmn53yASx3wuzoKnxOurGpDXZIxYj1wIwVR3z1lfGRr+7qLqS4fnGKnzY5f8kYUxwoG4D0OgPCNzYOc5F6kPD59RpmPasq5tc"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"22mtJpKMfuPnqbnhwYlD9N4xO4a7waRTaTHteM36Ot8="}, "signature":"MEUCIQCpd3dVm3eBbqU1yq+G4Hfc9og5ES3caCHNkbQ7OQRblAIgaXsbg+6Brl6bTTI6D4YNRYoTHEN4w0TVt3YFxESPVng="}}
|
build/torch211-cu130-x86_64-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-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f8c7cfd4d57158ac319babf49b0a661340fc71546abe21d04b7b4a0fc2952294
|
| 3 |
+
size 229392
|
build/torch212-cu126-x86_64-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": "+MfP1NVxWKwxm6v0mwpmE0D8cVRqviHQS3tKD8KVIpQ=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLTCCBrKgAwIBAgIUF5MbeIqlrG2NKn/WU4wPv65jujQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1OTIwWhcNMjYxMDE5MTcwOTIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhhljUz2cr+tacQpr4Xut42anto+VHny3mMS7pUCw8jlMP/jHxuO5T6Fhs7bNYRprPTD/OrLN9hVks9cBXwlSOqOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRp3YwAABAMARzBFAiAAp6XtZzdj4PeFa6lGd7N7UtRu27lUW1quyTtC0BN8EgIhANa9TJv1N0bzjeUOZtbCfj7PPaVV4ZjOtiorDuEObeFfMAoGCCqGSM49BAMDA2kAMGYCMQCY7upbhax8Zsv1/qrlnU+cEvQ49MNAPzAlp7sI9t0qyZa6URdLPyofqEi0SN7vPvsCMQDOnezm2NisIAUbMwyMhAxXmqzdZB3L2b/WBrxX2jxFvqmedfKgeMoW2CfNx9gyWd8="}, "tlogEntries":[{"logIndex":"3323776834", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429160", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCihW0IDwKODLuk6gLbzMZtYM4R72AfI0M7VwSWq+HvQgIhAIHnfecZ1yc+Tekr97tyr7YJ8LG7X/6w/Xi2jIZri6oP"}, "inclusionProof":{"logIndex":"3201872572", "rootHash":"HkfrimUwfeDnAs/vdijQ5P7/5fPAUSo2SvYQvycrZ+c=", "treeSize":"3201873289", "hashes":["D4R5d5Rz3tSh1DeCniYjIMBcfFbC8xh5hYmiQTR+P9g=", "VucSTmOvfwD7+wfqlsQTpglBO8f46tGo+rrd4RIJlB8=", "k2c6OPGAHwgRlBd1fljj1w+ogH52cJPHsWsTEOSQRzg=", "eOPzX5Ap5/GOT7Pq0ecyAfeIcQe2jcKjcDL1Swjv/90=", "ExNLxPvSGfJEaTv6CT/t/cerBOOt49ddrVae6XM8AtY=", "pAz/MnHMrO9ImU424ihIvFmDEtwjbCLrjec5qh3+lSg=", "qF9ZCmV3EFXTFiXuY01grqOeLOoVJOSxO2wPLsRgfD4=", "Z5WfiivB45HwESmKdt0XsM2v2TEOyViqW36qXBSHl+Q=", "GkxOv2b8NufnFgvo65foAOa06g2YfG7XLBRkPhkWkq4=", "JGM1cS7yJFLgFSXinmOuunK+Z07ZVX9Wji+ornJ68Qo=", "TvNaI/CuFix8Tn8ppVllS45JH4WQwPJefwsJXPYHZLc=", "vjPNDK+mGQQHdOhpF1epI0ArReuRdQTWwCGLKzODMXI=", "KToNGOU/2LQPMnwkW0YBQmo27fLOVdrtlPNJA6eS4kg=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201873289\nHkfrimUwfeDnAs/vdijQ5P7/5fPAUSo2SvYQvycrZ+c=\n\n— rekor.sigstore.dev wNI9ajBFAiEA0qcR9I4VR1LnVqaGfhka6MbbU0eA+dfJb4Ctn1+uHqoCICFfcQ0zTNxfIuXFOXB5u3GriVL+U5UpECRKQuk4Sd1B\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzYzAxYTQ2NTEyYjRhNzY5ZjcxMTAxYjcwYzcwM2FmYWU2NmQyOTY5NmU5YjIxZTc1NWZjOWMzZDFlNzJjNTQ5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURYT2dOL29xVElIUXRFRXR6ajZTRW4wWk5oZmk3aDVDZzBxL1hyUHk1ZVN3SWdQeitvZDIyYWtQSjJiS2dweVFhMVlRVCtRRU9NV2Y3ckc4Z3FsdHdHQ1BrPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KTFowRjNTVUpCWjBsVlJqVk5ZbVZKY1d4eVJ6Sk9TMjR2VjFVMGQxQjJOalZxZFdwUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMVJKZDFkb1kwNU5hbGw0VFVSRk5VMVVZM2RQVkVsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZvYUd4cVZYb3lZM0lyZEdGalVYQnlORmgxZERReVlXNTBieXRXU0c1NU0yMU5VemNLY0ZWRGR6aHFiRTFRTDJwSWVIVlBOVlEyUm1oek4ySk9XVkp3Y2xCVVJDOVBja3hPT1doV2EzTTVZMEpZZDJ4VFQzRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKd00xbDNRVUZDUVUxQlVucENSa0ZwUVVGd05saDBXbnBrYWpSUVpVWmhObXhIWkRkT04xVjBVblV5TjJ4VlZ6RnhkUXA1VkhSRE1FSk9PRVZuU1doQlRtRTVWRXAyTVU0d1lucHFaVlZQV25SaVEyWnFOMUJRWVZaV05GcHFUM1JwYjNKRWRVVlBZbVZHWmsxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKclFVMUhXVU5OVVVOWk4zVndZbWhoZURoYWMzWXhMM0Z5Ykc1VksyTkZkbEUwT1UxT1FWQjZRV3h3TjNOSk9YUXdjWGxhWVRZS1ZWSmtURkI1YjJaeFJXa3dVMDQzZGxCMmMwTk5VVVJQYm1WNmJUSk9hWE5KUVZWaVRYZDVUV2hCZUZodGNYcGtXa0l6VERKaUwxZENjbmhZTW1wNFJncDJjVzFsWkdaTFoyVk5iMWN5UTJaT2VEbG5lVmRrT0QwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg+NU2n2Rk3d997zkiRvqWwKjnSwJGTzPi7Jiy8OYTnzUCFA+szdclutX2BEgZBYkwgrMfh12oGA8yMDI2MTAxOTE2NTkyMFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTY1OTIwWjAvBgkqhkiG9w0BCQQxIgQgb/mXxw1qMETvfoo+nj49Pzn62p9JqmV20Af1soy3RlkwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwPYuqFECQ55kaO7wkNlFztH9g7aWiQebhI3q7YqZ69P7SU/p2YrKeBqXBSMtLONrVAjEAnJGJCrxGn+2UU+Bun1wglzSNGCrI/PBqQ0uFFFyU2wyypRQwDU+VBwinZOpgeBuv"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"PAGkZRK0p2n3EQG3DHA6+uZtKWlumyHnVfycPR5yxUk="}, "signature":"MEUCIQDXOgN/oqTIHQtEEtzj6SEn0ZNhfi7h5Cg0q/XrPy5eSwIgPz+od22akPJ2bKgpyQa1YQT+QEOMWf7rG8gqltwGCPk="}}
|
build/torch212-cu126-x86_64-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-x86_64-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-x86_64-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-x86_64-linux/_rwkv_cuda_fe2bb66.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3046373069d07d08d045716387c349019d7b9b244e08f860f0a85db04216d34c
|
| 3 |
+
size 410680
|
build/torch212-cu130-x86_64-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": "MEY3MGnQfQjQRXFjh8NJAZ17myROCPhg8KhdsEIW00w=",
|
| 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-x86_64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHLTCCBrKgAwIBAgIUQJrc6q1AKXTB4wc1obdd99yeVdswCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTY1OTI0WhcNMjYxMDE5MTcwOTI0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9dN1L/DVmWORZ+jEpQTftzTGumPqJvLTZqnFjfTcfwTssoZNSeKPwBzybm216L+kc3N90AnjFe0tE/NsQh/VbqOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY1MTI0OC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVRqJmAAABAMARzBFAiEAyeQqP6Oy4CrE+Lfm43wsx0Yczv2zg6w2W3VB5t8HZ8sCIHDd8zvA6HN65w1iBDFjDwPwW0MLtCt/249/HZ62jdbgMAoGCCqGSM49BAMDA2kAMGYCMQDXckxMzIWiYtuYhZapUCAWHQA/8VcXwPsoIfToQ9G1H9aa+Lvhcwkvo2XKR6Tfx/MCMQDQTfNH5GcQp45yNuE6Zl8jY0tU1kxNJTcx4sfXeUw0FmTt/MSWL4GyBFOUE+6UuVw="}, "tlogEntries":[{"logIndex":"3323777767", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1792429165", "inclusionPromise":{"signedEntryTimestamp":"MEQCICLSiysLWohBmMHz46EL/XtdNbOJtyFPiOZMZI3MFFpNAiAp4yZuTqncJRiyDaIqCLjcxMd9TK5C/JDzyJlugZbpdA=="}, "inclusionProof":{"logIndex":"3201873505", "rootHash":"/kPB9vAB+R9486Vk4/D+ia3M5kOeVOVs+ExT+ZrUOug=", "treeSize":"3201873780", "hashes":["m1ke0in3wihEH7e52/8GqdQf7F9NG5b9Kcp4OWgLahU=", "MWSTga/NdBbtu/uKy3lSkFXKyVayGkwyEA/eMwWA5Ik=", "1hPX9MvN2DLVZQZvSI5RwGQSE+MuT8RqYgoXHM5BTLI=", "LRJdYkE1zd9lPBZVdhoWDvQ0vHnQMt6ZDHQpB6kus3s=", "Xoa1mgrVAeNKtgTkTJiW+iPaXb7H2tLZHs2BqDiGy1I=", "M2HgEm1jiZNyEnCZOnYQV31Pqn8Ot+fyzWpGTIMRFA8=", "4EXAfyloCuOL1fyRqLNyNuzGSKPf2PSq4wmtIp5nHLE=", "fRDCYkoDkM7PkY7KK2aGCIThuQMJzeGghFi0vwwrPW4=", "IRiTOeBQ0ILSFoZ8k6KgHJ6QY3GCx93oMVUfr85UcwQ=", "p/uvC4RXKhROjBISEKFGTf+jBSWcQJ8d3jmpnP9oMGQ=", "CdOR2r7420N3zLSdpo0AJtgyEHVYzWtl0E7Bws5Zg7w=", "vjPNDK+mGQQHdOhpF1epI0ArReuRdQTWwCGLKzODMXI=", "KToNGOU/2LQPMnwkW0YBQmo27fLOVdrtlPNJA6eS4kg=", "8EBu2br9+uQVSURl2FbPBD5EU28cYYhiRWnWgduwE4I=", "MD4OgR/R/G+2HawrFMhrsxg9GvdgOeQsIipPmrKXl38=", "j0WYhlZCgHWFR/OJIjCQT0Q8ta+HnlghbtUUUTyZptI=", "7WFpoaiQCzLwM3o2YI5Ngo8J7JD0OfyCCQtmXhWxVes=", "nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=", "G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=", "qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=", "gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=", "NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=", "qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=", "xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3201873780\n/kPB9vAB+R9486Vk4/D+ia3M5kOeVOVs+ExT+ZrUOug=\n\n— rekor.sigstore.dev wNI9ajBFAiAKh+8tGhMcfi85cBvVAdhACtWXE0NfGOy+UNDq3xtx1gIhANFlXH3ggIilOirJCc8IpZic37GvhY630Ttxq1HggADY\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJkZDcxZmFmNjkzMTJhNzI0ZDdkY2NkZjc0NzRkMTc0ODNlNDM4ODI3ZDU1OTdkNWUwNmI5ZGFjYzdhYzdkZGVlIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRHVxZ0NzQkM3MkE1bC93Z3krVC8xcm53M1BOWHZLZUtjRmh5eTJ1aWhsYkFpRUE4dXJKRDZIWk1GWHJiZFJNeE1iOFRFNWRETjg4aWpLWlU0NDQxY1ZHM3dNPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KTFowRjNTVUpCWjBsVlVVcHlZelp4TVVGTFdGUkNOSGRqTVc5aVpHUTVPWGxsVm1SemQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZGa3hUMVJKTUZkb1kwNU5hbGw0VFVSRk5VMVVZM2RQVkVrd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVU1WkU0eFRDOUVWbTFYVDFKYUsycEZjRkZVWm5SNlZFZDFiVkJ4U25aTVZGcHhia1lLYW1aVVkyWjNWSE56YjFwT1UyVkxVSGRDZW5saWJUSXhOa3dyYTJNelRqa3dRVzVxUm1Vd2RFVXZUbk5SYUM5V1luRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RGTlZFa3dUME01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmxKeFNtMUJRVUZDUVUxQlVucENSa0ZwUlVGNVpWRnhVRFpQZVRSRGNrVXJUR1p0TkROM2MzZ3dXV042ZGpKNlp6WjNNZ3BYTTFaQ05YUTRTRm80YzBOSlNFUmtPSHAyUVRaSVRqWTFkekZwUWtSR2FrUjNVSGRYTUUxTWRFTjBMekkwT1M5SVdqWXlhbVJpWjAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKclFVMUhXVU5OVVVSWVkydDRUWHBKVjJsWmRIVlphRnBoY0ZWRFFWZElVVUV2T0ZaaldIZFFjMjlKWmxSdlVUbEhNVWc1WVdFS0sweDJhR04zYTNadk1saExValpVWm5ndlRVTk5VVVJSVkdaT1NEVkhZMUZ3TkRWNVRuVkZObHBzT0dwWk1IUlZNV3Q0VGtwVVkzZzBjMlpZWlZWM01BcEdiVlIwTDAxVFYwdzBSM2xDUms5VlJTczJWWFZXZHowS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgiHPth2Q1QDqtn6yP89b6eZXoTjxVjuZp8S1bVbgTRC8CFFh+kZLmIutf7+1ylfalSgRcS501GA8yMDI2MTAxOTE2NTkyNVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTY1OTI1WjAvBgkqhkiG9w0BCQQxIgQgwDED44mteQPAPn66IHnGFAJMupbwWgdrslDEI2PWC1owgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAKb7va7CDoiFmEwiQnEpTqyQeGElNQVOyookPfGF6xb6M0SgPjr4YAysZUywAXlVLwIxANTDHwt/bW2T+m3xkKaxKdGMYfBA1R1zCWrnj0KA2YKHh87f45O1FHIW8QTcMdXWow=="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"3XH69pMSpyTX3M33R00XSD5DiCfVWX1eBrnazHrH3e4="}, "signature":"MEUCIDuqgCsBC72A5l/wgy+T/1rnw3PNXvKeKcFhyy2uihlbAiEA8urJD6HZMFXrbdRMxMb8TE5dDN88ijKZU4441cVG3wM="}}
|
build/torch212-cu130-x86_64-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-x86_64-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 |
+
]
|