Kernels:
Trusted publisher
Uploaded using `kernel-builder`.
Browse files- build/torch-stable-abi210-cu126-aarch64-linux/__init__.py +75 -0
- build/torch-stable-abi210-cu126-aarch64-linux/_activation_cuda_2f7c452.abi3.so +3 -0
- build/torch-stable-abi210-cu126-aarch64-linux/_ops.py +9 -0
- build/torch-stable-abi210-cu126-aarch64-linux/activation/__init__.py +26 -0
- build/torch-stable-abi210-cu126-aarch64-linux/layers.py +201 -0
- build/torch-stable-abi210-cu126-aarch64-linux/metadata.json +41 -0
- build/torch-stable-abi210-cu126-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch-stable-abi210-cu128-aarch64-linux/__init__.py +75 -0
- build/torch-stable-abi210-cu128-aarch64-linux/_activation_cuda_2f7c452.abi3.so +3 -0
- build/torch-stable-abi210-cu128-aarch64-linux/_ops.py +9 -0
- build/torch-stable-abi210-cu128-aarch64-linux/activation/__init__.py +26 -0
- build/torch-stable-abi210-cu128-aarch64-linux/layers.py +201 -0
- build/torch-stable-abi210-cu128-aarch64-linux/metadata.json +44 -0
- build/torch-stable-abi210-cu128-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch-stable-abi210-cu130-aarch64-linux/__init__.py +75 -0
- build/torch-stable-abi210-cu130-aarch64-linux/_activation_cuda_2f7c452.abi3.so +3 -0
- build/torch-stable-abi210-cu130-aarch64-linux/_ops.py +9 -0
- build/torch-stable-abi210-cu130-aarch64-linux/activation/__init__.py +26 -0
- build/torch-stable-abi210-cu130-aarch64-linux/layers.py +201 -0
- build/torch-stable-abi210-cu130-aarch64-linux/metadata.json +43 -0
- build/torch-stable-abi210-cu130-aarch64-linux/metadata.json.sigstore +1 -0
- build/torch-stable-abi210-cu132-aarch64-linux/__init__.py +75 -0
- build/torch-stable-abi210-cu132-aarch64-linux/_activation_cuda_2f7c452.abi3.so +3 -0
- build/torch-stable-abi210-cu132-aarch64-linux/_ops.py +9 -0
- build/torch-stable-abi210-cu132-aarch64-linux/activation/__init__.py +26 -0
- build/torch-stable-abi210-cu132-aarch64-linux/layers.py +201 -0
- build/torch-stable-abi210-cu132-aarch64-linux/metadata.json +43 -0
- build/torch-stable-abi210-cu132-aarch64-linux/metadata.json.sigstore +1 -0
build/torch-stable-abi210-cu126-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
|
| 3 |
+
from ._ops import ops
|
| 4 |
+
|
| 5 |
+
from . import layers
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def silu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 9 |
+
ops.silu_and_mul(out, x)
|
| 10 |
+
return out
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def mul_and_silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 14 |
+
ops.mul_and_silu(out, x)
|
| 15 |
+
return out
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
def gelu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 19 |
+
ops.gelu_and_mul(out, x)
|
| 20 |
+
return out
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def gelu_tanh_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 24 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 25 |
+
return out
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def fatrelu_and_mul(out: torch.Tensor, x: torch.Tensor, threshold: float = 0.0) -> torch.Tensor:
|
| 29 |
+
ops.fatrelu_and_mul(out, x, threshold)
|
| 30 |
+
return out
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def gelu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 34 |
+
ops.gelu(out, x)
|
| 35 |
+
return out
|
| 36 |
+
|
| 37 |
+
def silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 38 |
+
ops.silu(out, x)
|
| 39 |
+
return out
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def gelu_tanh(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 43 |
+
ops.gelu_tanh(out, x)
|
| 44 |
+
return out
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def gelu_fast(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 48 |
+
ops.gelu_fast(out, x)
|
| 49 |
+
return out
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
def gelu_new(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 53 |
+
ops.gelu_new(out, x)
|
| 54 |
+
return out
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
def gelu_quick(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 58 |
+
ops.gelu_quick(out, x)
|
| 59 |
+
return out
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
__all__ = [
|
| 63 |
+
"silu_and_mul",
|
| 64 |
+
"mul_and_silu",
|
| 65 |
+
"gelu_and_mul",
|
| 66 |
+
"gelu_tanh_and_mul",
|
| 67 |
+
"fatrelu_and_mul",
|
| 68 |
+
"gelu_fast",
|
| 69 |
+
"gelu_new",
|
| 70 |
+
"gelu_quick",
|
| 71 |
+
"gelu_tanh",
|
| 72 |
+
"silu",
|
| 73 |
+
"gelu",
|
| 74 |
+
"layers",
|
| 75 |
+
]
|
build/torch-stable-abi210-cu126-aarch64-linux/_activation_cuda_2f7c452.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ef2c3eb198b5a665ea644ba7aac650f1955de3047adb52e63e0bc9c435c1dcf7
|
| 3 |
+
size 1269632
|
build/torch-stable-abi210-cu126-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _activation_cuda_2f7c452
|
| 3 |
+
ops = torch.ops._activation_cuda_2f7c452
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_activation_cuda_2f7c452::{op_name}"
|
build/torch-stable-abi210-cu126-aarch64-linux/activation/__init__.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ctypes
|
| 2 |
+
import importlib.util
|
| 3 |
+
import sys
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
from types import ModuleType
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def _import_from_path(file_path: Path) -> ModuleType:
|
| 9 |
+
# We cannot use the module name as-is, after adding it to `sys.modules`,
|
| 10 |
+
# it would also be used for other imports. So, we make a module name that
|
| 11 |
+
# depends on the path for it to be unique using the hex-encoded hash of
|
| 12 |
+
# the path.
|
| 13 |
+
path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
|
| 14 |
+
module_name = path_hash
|
| 15 |
+
spec = importlib.util.spec_from_file_location(module_name, file_path)
|
| 16 |
+
if spec is None:
|
| 17 |
+
raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
|
| 18 |
+
module = importlib.util.module_from_spec(spec)
|
| 19 |
+
if module is None:
|
| 20 |
+
raise ImportError(f"Cannot load module {module_name} from spec")
|
| 21 |
+
sys.modules[module_name] = module
|
| 22 |
+
spec.loader.exec_module(module) # type: ignore
|
| 23 |
+
return module
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
|
build/torch-stable-abi210-cu126-aarch64-linux/layers.py
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import torch.nn as nn
|
| 3 |
+
|
| 4 |
+
from ._ops import ops
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
class SiluAndMul(nn.Module):
|
| 8 |
+
"""An activation function for SwiGLU.
|
| 9 |
+
|
| 10 |
+
The function computes x -> silu(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 11 |
+
|
| 12 |
+
Shapes:
|
| 13 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 14 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 15 |
+
"""
|
| 16 |
+
|
| 17 |
+
can_torch_compile: bool = True
|
| 18 |
+
|
| 19 |
+
def forward(self, x: torch.Tensor):
|
| 20 |
+
if not x.is_contiguous():
|
| 21 |
+
x = x.contiguous()
|
| 22 |
+
d = x.shape[-1] // 2
|
| 23 |
+
output_shape = x.shape[:-1] + (d,)
|
| 24 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 25 |
+
ops.silu_and_mul(out, x)
|
| 26 |
+
return out
|
| 27 |
+
|
| 28 |
+
class Silu(nn.Module):
|
| 29 |
+
"""An activation function for SiLU.
|
| 30 |
+
|
| 31 |
+
The function computes x -> silu(x).
|
| 32 |
+
|
| 33 |
+
Shapes:
|
| 34 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 35 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 36 |
+
"""
|
| 37 |
+
|
| 38 |
+
can_torch_compile: bool = True
|
| 39 |
+
|
| 40 |
+
def forward(self, x: torch.Tensor):
|
| 41 |
+
if not x.is_contiguous():
|
| 42 |
+
x = x.contiguous()
|
| 43 |
+
out = torch.empty_like(x)
|
| 44 |
+
ops.silu(out, x)
|
| 45 |
+
return out
|
| 46 |
+
|
| 47 |
+
class Gelu(nn.Module):
|
| 48 |
+
"""An activation function for GELU.
|
| 49 |
+
|
| 50 |
+
The function computes x -> gelu(x).
|
| 51 |
+
|
| 52 |
+
Shapes:
|
| 53 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 54 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 55 |
+
"""
|
| 56 |
+
|
| 57 |
+
can_torch_compile: bool = True
|
| 58 |
+
|
| 59 |
+
def forward(self, x: torch.Tensor):
|
| 60 |
+
if not x.is_contiguous():
|
| 61 |
+
x = x.contiguous()
|
| 62 |
+
out = torch.empty_like(x)
|
| 63 |
+
ops.gelu(out, x)
|
| 64 |
+
return out
|
| 65 |
+
|
| 66 |
+
class GeluTanh(nn.Module):
|
| 67 |
+
"""An activation function for GELU with `tanh` approximation.
|
| 68 |
+
|
| 69 |
+
The function computes x -> gelu_tanh(x).
|
| 70 |
+
|
| 71 |
+
Shapes:
|
| 72 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 73 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 74 |
+
"""
|
| 75 |
+
|
| 76 |
+
can_torch_compile: bool = True
|
| 77 |
+
|
| 78 |
+
def forward(self, x: torch.Tensor):
|
| 79 |
+
if not x.is_contiguous():
|
| 80 |
+
x = x.contiguous()
|
| 81 |
+
out = torch.empty_like(x)
|
| 82 |
+
ops.gelu_tanh(out, x)
|
| 83 |
+
return out
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
class MulAndSilu(nn.Module):
|
| 87 |
+
"""An activation function for SwiGLU.
|
| 88 |
+
|
| 89 |
+
The function computes x -> x[:d] * silu(x[d:]) where d = x.shape[-1] // 2.
|
| 90 |
+
|
| 91 |
+
Shapes:
|
| 92 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 93 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 94 |
+
"""
|
| 95 |
+
|
| 96 |
+
can_torch_compile: bool = True
|
| 97 |
+
|
| 98 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 99 |
+
if not x.is_contiguous():
|
| 100 |
+
x = x.contiguous()
|
| 101 |
+
d = x.shape[-1] // 2
|
| 102 |
+
output_shape = x.shape[:-1] + (d,)
|
| 103 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 104 |
+
ops.mul_and_silu(out, x)
|
| 105 |
+
return out
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
class GeluAndMul(nn.Module):
|
| 109 |
+
"""An activation function for GeGLU.
|
| 110 |
+
|
| 111 |
+
The function computes x -> GELU(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 112 |
+
|
| 113 |
+
Shapes:
|
| 114 |
+
x: (batch_size, seq_len, 2 * d) or (num_tokens, 2 * d)
|
| 115 |
+
return: (batch_size, seq_len, d) or (num_tokens, d)
|
| 116 |
+
"""
|
| 117 |
+
|
| 118 |
+
can_torch_compile: bool = True
|
| 119 |
+
|
| 120 |
+
def forward(self, x: torch.Tensor):
|
| 121 |
+
if not x.is_contiguous():
|
| 122 |
+
x = x.contiguous()
|
| 123 |
+
d = x.shape[-1] // 2
|
| 124 |
+
output_shape = x.shape[:-1] + (d,)
|
| 125 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 126 |
+
ops.gelu_and_mul(out, x)
|
| 127 |
+
return out
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
class GeluTanhAndMul(nn.Module):
|
| 131 |
+
can_torch_compile: bool = True
|
| 132 |
+
|
| 133 |
+
def forward(self, x: torch.Tensor):
|
| 134 |
+
if not x.is_contiguous():
|
| 135 |
+
x = x.contiguous()
|
| 136 |
+
d = x.shape[-1] // 2
|
| 137 |
+
output_shape = x.shape[:-1] + (d,)
|
| 138 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 139 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 140 |
+
return out
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
class FatreluAndMul(nn.Module):
|
| 144 |
+
"""An activation function for FATReLU.
|
| 145 |
+
|
| 146 |
+
The function computes x -> FATReLU(x[:d]) * x[d:] where
|
| 147 |
+
d = x.shape[-1] // 2.
|
| 148 |
+
This is used in openbmb/MiniCPM-S-1B-sft.
|
| 149 |
+
|
| 150 |
+
Shapes:
|
| 151 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 152 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 153 |
+
"""
|
| 154 |
+
|
| 155 |
+
can_torch_compile: bool = True
|
| 156 |
+
|
| 157 |
+
def __init__(self, threshold: float = 0.0):
|
| 158 |
+
super().__init__()
|
| 159 |
+
self.threshold = threshold
|
| 160 |
+
|
| 161 |
+
def forward(self, x: torch.Tensor):
|
| 162 |
+
if not x.is_contiguous():
|
| 163 |
+
x = x.contiguous()
|
| 164 |
+
d = x.shape[-1] // 2
|
| 165 |
+
output_shape = x.shape[:-1] + (d,)
|
| 166 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 167 |
+
ops.fatrelu_and_mul(out, x, self.threshold)
|
| 168 |
+
return out
|
| 169 |
+
|
| 170 |
+
|
| 171 |
+
class FastGELU(nn.Module):
|
| 172 |
+
can_torch_compile: bool = True
|
| 173 |
+
|
| 174 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 175 |
+
if not x.is_contiguous():
|
| 176 |
+
x = x.contiguous()
|
| 177 |
+
out = torch.empty_like(x)
|
| 178 |
+
ops.gelu_fast(out, x)
|
| 179 |
+
return out
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
class NewGELU(nn.Module):
|
| 183 |
+
can_torch_compile: bool = True
|
| 184 |
+
|
| 185 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 186 |
+
if not x.is_contiguous():
|
| 187 |
+
x = x.contiguous()
|
| 188 |
+
out = torch.empty_like(x)
|
| 189 |
+
ops.gelu_new(out, x)
|
| 190 |
+
return out
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
class QuickGELU(nn.Module):
|
| 194 |
+
can_torch_compile: bool = True
|
| 195 |
+
|
| 196 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 197 |
+
if not x.is_contiguous():
|
| 198 |
+
x = x.contiguous()
|
| 199 |
+
out = torch.empty_like(x)
|
| 200 |
+
ops.gelu_quick(out, x)
|
| 201 |
+
return out
|
build/torch-stable-abi210-cu126-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "activation",
|
| 3 |
+
"id": "_activation_cuda_2f7c452",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"license": "Apache-2.0",
|
| 6 |
+
"python-depends": [],
|
| 7 |
+
"backend": {
|
| 8 |
+
"type": "cuda",
|
| 9 |
+
"archs": [
|
| 10 |
+
"7.0",
|
| 11 |
+
"7.2",
|
| 12 |
+
"7.5",
|
| 13 |
+
"8.0",
|
| 14 |
+
"8.6",
|
| 15 |
+
"8.7",
|
| 16 |
+
"8.9",
|
| 17 |
+
"9.0+PTX"
|
| 18 |
+
]
|
| 19 |
+
},
|
| 20 |
+
"digest": {
|
| 21 |
+
"algorithm": "sha256",
|
| 22 |
+
"files": {
|
| 23 |
+
"__init__.py": "NQdhY7p9BPoMw0NQodMKFTPSQXBlrsX3yUdP8MEHyH0=",
|
| 24 |
+
"_activation_cuda_2f7c452.abi3.so": "7yw+sZi1pmXqZEunqsZQ8ZVd4wR621LmPgvJxDXB3Pc=",
|
| 25 |
+
"_ops.py": "q9xZtwPjdsRciOCA5aQFDtsTQnV9SNcvAC74ivbShuM=",
|
| 26 |
+
"activation/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=",
|
| 27 |
+
"layers.py": "wWX07+W0BNFA7RyCE0jYH7aa2U3B8aiiIpu/Q4xsE0w="
|
| 28 |
+
}
|
| 29 |
+
},
|
| 30 |
+
"provenance": {
|
| 31 |
+
"kernel-builder": {
|
| 32 |
+
"version": "0.17.0-dev0",
|
| 33 |
+
"sha": "81580bb92577f2f7228661ca2a221fc052375709",
|
| 34 |
+
"dirty": false
|
| 35 |
+
},
|
| 36 |
+
"kernel": {
|
| 37 |
+
"sha": "2f7c452801641012cf6aa9bdf042431457024033",
|
| 38 |
+
"dirty": false
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
}
|
build/torch-stable-abi210-cu126-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUWSLB8pFWUwWaHXhGDZ3R8RhNi2wwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA5MTU0OTQ0WhcNMjYwNzA5MTU1OTQ0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3Q0LUHl8Q/dpD61n2CUkQYAvMuAC81UdHTNTy8oT9TsA2PCuLhBZ6lQhcN20FUps1WTv4UEQCvrfVdzCAsQOKqOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUZ0zSs0EZ59HIag73bqHIUj1BmsgwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDJmN2M0NTI4MDE2NDEwMTJjZjZhYTliZGYwNDI0MzE0NTcwMjQwMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjkwMzA3NzExMDMvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0eSFw8AAAQDAEcwRQIgCPNxq5BTCEvYNB5Yd1eFJxZe+S1wnTU0duaEd8czyyACIQC7xLCjz3usA58QG4lqIAKMqEgfxzFTBu2l/FT6+/RaLTAKBggqhkjOPQQDAwNoADBlAjBijZ0ZYeOpnHE8FeF1fjw6FxjXf996xYfgJ9xD3zLISgDwgPnmXeQJeG2cvNUQKP4CMQCaFuDZHFUv9N8HAkmcoDUntzDUFmAAU6rEA9XJo+pJ9SYJNksOOftMkJkCTbbrzTk="}, "tlogEntries":[{"logIndex":"2129276360", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783612184", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQCAG+2qd1y6L20nKwKjZ5gK9gBfhidzwOgmFlLJOUxPTAIhAOSWhZZbpy5EKp8tEnE0FNRKRUjZBjwyaRMLsEq8OZ2+"}, "inclusionProof":{"logIndex":"2007372098", "rootHash":"rAKgnWZPr5tDfgQYbD/tDv6hEP2z32lecojkS/lf+Kw=", "treeSize":"2007372203", "hashes":["11kc0w4vx871JuhWd77UJtrhs9IrIh061lA1A4Q3L1M=", "dG9TIud97f1PwHDA8+PZ6O2l5SbAwyrL3vEPmvxg+BI=", "y7/r5j6sd+lMIyxP1yCNjlRRvyR69hE8F3QcjicwAf8=", "O2y/ucAN1JhlXc6gUHDnY1vWSd+yKQH5r7nj0UNIq+c=", "jLUKBDwQTkxc3n0lYkMG6cokfw241MTMSEjhEjXfJeE=", "2f+TLUtk3VTZLdu97iTZEzv6NVa4fptRmlr1vt3XkN0=", "cVSauhvBQaIgdstH+cI20VNVCxXCGkMGtf5sbMMY6DY=", "EiAa30gkrCiVgCEkDPQGRjaC553qLkiEl8xMQ9bUiew=", "bnulwvz3BzvG+I9Vi/SUXkNNoZVe0J6+bGWiykXUvl4=", "6q+LpbK/Ih183cA9KuL8+fgXqZf4ltUk/2rp524ZFuI=", "CCu7OkQW6+npAh6Tygn9JYdKku6AUboDosZP3sI7yKQ=", "uwnh4tLrO/3+ywQ63CnFW6mU2V+y+Db8CobG3g6S0Hk=", "Kezfh1XcoOp9KAwr7OWyF8C7cr/mZBPGqKHTdO0BnDs=", "LD5Ws0n7JWm8O7qGvHNSZug32ByFM1WblCpsDJh5M6o=", "f8knrc4LOu/X8scT5SBvEgFJSd7vZZ0LzSaC0Z3lm/U=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2007372203\nrAKgnWZPr5tDfgQYbD/tDv6hEP2z32lecojkS/lf+Kw=\n\n— rekor.sigstore.dev wNI9ajBEAiBLnnP9qGB3ZIj2vvAuH8e5nYgoxwJFUCPLn/FyIEhiMQIgHwIVNTAbnEQ417uGoOfvN43IT3JM3U4WL2k1BSOwj7A=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyMjU4NjQ3ZWI0NzA3ZjlmZTliODEyNGQ5OGMxOWMzOWE2OGMwYzFmZDFhM2QyZTQ5NzIyOTA3NmZiZmE2MDc4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURNaVhwU2dSSldmWStMdWoveDZVMTRBKzlIU2ZTanNlQnAzL3hpZVp0WFV3SWdMS2xxWlNMcXVHbmdIQkUyaENkTHNLV3RGVmNtQnp1R3hzOGtZNHMxa2JJPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlYxTk1Ramh3UmxkVmQxZGhTRmhvUjBSYU0xSTRVbWhPYVRKM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRWTlZGVXdUMVJSTUZkb1kwNU5hbGwzVG5wQk5VMVVWVEZQVkZFd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVV6VVRCTVZVaHNPRkV2WkhCRU5qRnVNa05WYTFGWlFYWk5kVUZET0RGVlpFaFVUbFFLZVRodlZEbFVjMEV5VUVOMVRHaENXalpzVVdoalRqSXdSbFZ3Y3pGWFZIWTBWVVZSUTNaeVpsWmtla05CYzFGUFMzRlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZhTUhwVENuTXdSVm8xT1VoSllXYzNNMkp4U0VsVmFqRkNiWE5uZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5iVmt6V1hwUk1VMXFaM2ROVkZrd1RWUkJlRTF0VG0xT2JVWm9DazlYU210YWFrRXdUV3BSZWsxVVVURk9la0Y1VGtSQmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWhQVjBwcldtcEJNRTFxVVhvS1RWUlJNVTU2UVhsT1JFRjZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWdLVDFkS2ExcHFRVEJOYWxGNlRWUlJNVTU2UVhsT1JFRjZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUktiVTR5VFRBS1RsUkpORTFFUlRKT1JFVjNUVlJLYWxwcVdtaFpWR3hwV2tkWmQwNUVTVEJOZWtVd1RsUmpkMDFxVVhkTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW10M1RYcEJNMDU2UlhoTlJFMTJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdaVk5HZHpoQlFVRlJSQXBCUldOM1VsRkpaME5RVG5oeE5VSlVRMFYyV1U1Q05WbGtNV1ZHU25oYVpTdFRNWGR1VkZVd1pIVmhSV1E0WTNwNWVVRkRTVkZETjNoTVEycDZNM1Z6Q2tFMU9GRkhOR3h4U1VGTFRYRkZaMlo0ZWtaVVFuVXliQzlHVkRZckwxSmhURlJCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcENhV3BhTUZvS1dXVlBjRzVJUlRoR1pVWXhabXAzTmtaNGFsaG1PVGsyZUZsbVowbzVlRVF6ZWt4SlUyZEVkMmRRYm0xWVpWRktaVWN5WTNaT1ZWRkxVRFJEVFZGRFlRcEdkVVJhU0VaVmRqbE9PRWhCYTIxamIwUlZiblI2UkZWR2JVRkJWVFp5UlVFNVdFcHZLM0JLT1ZOWlNrNXJjMDlQWm5STmEwcHJRMVJpWW5KNlZHczlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgninX/DaUuhf1jmWFq0Nz4C+xlKnUEPKFJAQiC2QCoTsCFG4bIX5Ab2thD6CMogKQ9T4ILwY0GA8yMDI2MDcwOTE1NDk0NFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzA5MTU0OTQ0WjAvBgkqhkiG9w0BCQQxIgQgcbgYyULEvmT/RwkuMKcV8dho1bHka1IiEmLJrHHlDoEwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwFVU7Y8d0XAv/2VDRNgAVgJhnpRyl5jduEZ1I+XnRNmpG2dOIMJkBgpY4DGp5dLt2AjEA81usc7oGQN4p3debRIPhtcBJis8MLW+TCw1pZNXMRDtcO1PRGrzti1v9TPTu3MmV"}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"IlhkfrRwf5/puBJNmMGcOaaMDB/Ro9LklyKQdvv6YHg="}, "signature":"MEUCIQDMiXpSgRJWfY+Luj/x6U14A+9HSfSjseBp3/xieZtXUwIgLKlqZSLquGngHBE2hCdLsKWtFVcmBzuGxs8kY4s1kbI="}}
|
build/torch-stable-abi210-cu128-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
|
| 3 |
+
from ._ops import ops
|
| 4 |
+
|
| 5 |
+
from . import layers
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def silu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 9 |
+
ops.silu_and_mul(out, x)
|
| 10 |
+
return out
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def mul_and_silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 14 |
+
ops.mul_and_silu(out, x)
|
| 15 |
+
return out
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
def gelu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 19 |
+
ops.gelu_and_mul(out, x)
|
| 20 |
+
return out
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def gelu_tanh_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 24 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 25 |
+
return out
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def fatrelu_and_mul(out: torch.Tensor, x: torch.Tensor, threshold: float = 0.0) -> torch.Tensor:
|
| 29 |
+
ops.fatrelu_and_mul(out, x, threshold)
|
| 30 |
+
return out
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def gelu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 34 |
+
ops.gelu(out, x)
|
| 35 |
+
return out
|
| 36 |
+
|
| 37 |
+
def silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 38 |
+
ops.silu(out, x)
|
| 39 |
+
return out
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def gelu_tanh(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 43 |
+
ops.gelu_tanh(out, x)
|
| 44 |
+
return out
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def gelu_fast(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 48 |
+
ops.gelu_fast(out, x)
|
| 49 |
+
return out
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
def gelu_new(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 53 |
+
ops.gelu_new(out, x)
|
| 54 |
+
return out
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
def gelu_quick(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 58 |
+
ops.gelu_quick(out, x)
|
| 59 |
+
return out
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
__all__ = [
|
| 63 |
+
"silu_and_mul",
|
| 64 |
+
"mul_and_silu",
|
| 65 |
+
"gelu_and_mul",
|
| 66 |
+
"gelu_tanh_and_mul",
|
| 67 |
+
"fatrelu_and_mul",
|
| 68 |
+
"gelu_fast",
|
| 69 |
+
"gelu_new",
|
| 70 |
+
"gelu_quick",
|
| 71 |
+
"gelu_tanh",
|
| 72 |
+
"silu",
|
| 73 |
+
"gelu",
|
| 74 |
+
"layers",
|
| 75 |
+
]
|
build/torch-stable-abi210-cu128-aarch64-linux/_activation_cuda_2f7c452.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ed51ba1cc66a43004c27a52997846193dcc77c44b8ecf0909b47084d69528c8d
|
| 3 |
+
size 2449328
|
build/torch-stable-abi210-cu128-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _activation_cuda_2f7c452
|
| 3 |
+
ops = torch.ops._activation_cuda_2f7c452
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_activation_cuda_2f7c452::{op_name}"
|
build/torch-stable-abi210-cu128-aarch64-linux/activation/__init__.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ctypes
|
| 2 |
+
import importlib.util
|
| 3 |
+
import sys
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
from types import ModuleType
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def _import_from_path(file_path: Path) -> ModuleType:
|
| 9 |
+
# We cannot use the module name as-is, after adding it to `sys.modules`,
|
| 10 |
+
# it would also be used for other imports. So, we make a module name that
|
| 11 |
+
# depends on the path for it to be unique using the hex-encoded hash of
|
| 12 |
+
# the path.
|
| 13 |
+
path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
|
| 14 |
+
module_name = path_hash
|
| 15 |
+
spec = importlib.util.spec_from_file_location(module_name, file_path)
|
| 16 |
+
if spec is None:
|
| 17 |
+
raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
|
| 18 |
+
module = importlib.util.module_from_spec(spec)
|
| 19 |
+
if module is None:
|
| 20 |
+
raise ImportError(f"Cannot load module {module_name} from spec")
|
| 21 |
+
sys.modules[module_name] = module
|
| 22 |
+
spec.loader.exec_module(module) # type: ignore
|
| 23 |
+
return module
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
|
build/torch-stable-abi210-cu128-aarch64-linux/layers.py
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import torch.nn as nn
|
| 3 |
+
|
| 4 |
+
from ._ops import ops
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
class SiluAndMul(nn.Module):
|
| 8 |
+
"""An activation function for SwiGLU.
|
| 9 |
+
|
| 10 |
+
The function computes x -> silu(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 11 |
+
|
| 12 |
+
Shapes:
|
| 13 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 14 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 15 |
+
"""
|
| 16 |
+
|
| 17 |
+
can_torch_compile: bool = True
|
| 18 |
+
|
| 19 |
+
def forward(self, x: torch.Tensor):
|
| 20 |
+
if not x.is_contiguous():
|
| 21 |
+
x = x.contiguous()
|
| 22 |
+
d = x.shape[-1] // 2
|
| 23 |
+
output_shape = x.shape[:-1] + (d,)
|
| 24 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 25 |
+
ops.silu_and_mul(out, x)
|
| 26 |
+
return out
|
| 27 |
+
|
| 28 |
+
class Silu(nn.Module):
|
| 29 |
+
"""An activation function for SiLU.
|
| 30 |
+
|
| 31 |
+
The function computes x -> silu(x).
|
| 32 |
+
|
| 33 |
+
Shapes:
|
| 34 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 35 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 36 |
+
"""
|
| 37 |
+
|
| 38 |
+
can_torch_compile: bool = True
|
| 39 |
+
|
| 40 |
+
def forward(self, x: torch.Tensor):
|
| 41 |
+
if not x.is_contiguous():
|
| 42 |
+
x = x.contiguous()
|
| 43 |
+
out = torch.empty_like(x)
|
| 44 |
+
ops.silu(out, x)
|
| 45 |
+
return out
|
| 46 |
+
|
| 47 |
+
class Gelu(nn.Module):
|
| 48 |
+
"""An activation function for GELU.
|
| 49 |
+
|
| 50 |
+
The function computes x -> gelu(x).
|
| 51 |
+
|
| 52 |
+
Shapes:
|
| 53 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 54 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 55 |
+
"""
|
| 56 |
+
|
| 57 |
+
can_torch_compile: bool = True
|
| 58 |
+
|
| 59 |
+
def forward(self, x: torch.Tensor):
|
| 60 |
+
if not x.is_contiguous():
|
| 61 |
+
x = x.contiguous()
|
| 62 |
+
out = torch.empty_like(x)
|
| 63 |
+
ops.gelu(out, x)
|
| 64 |
+
return out
|
| 65 |
+
|
| 66 |
+
class GeluTanh(nn.Module):
|
| 67 |
+
"""An activation function for GELU with `tanh` approximation.
|
| 68 |
+
|
| 69 |
+
The function computes x -> gelu_tanh(x).
|
| 70 |
+
|
| 71 |
+
Shapes:
|
| 72 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 73 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 74 |
+
"""
|
| 75 |
+
|
| 76 |
+
can_torch_compile: bool = True
|
| 77 |
+
|
| 78 |
+
def forward(self, x: torch.Tensor):
|
| 79 |
+
if not x.is_contiguous():
|
| 80 |
+
x = x.contiguous()
|
| 81 |
+
out = torch.empty_like(x)
|
| 82 |
+
ops.gelu_tanh(out, x)
|
| 83 |
+
return out
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
class MulAndSilu(nn.Module):
|
| 87 |
+
"""An activation function for SwiGLU.
|
| 88 |
+
|
| 89 |
+
The function computes x -> x[:d] * silu(x[d:]) where d = x.shape[-1] // 2.
|
| 90 |
+
|
| 91 |
+
Shapes:
|
| 92 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 93 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 94 |
+
"""
|
| 95 |
+
|
| 96 |
+
can_torch_compile: bool = True
|
| 97 |
+
|
| 98 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 99 |
+
if not x.is_contiguous():
|
| 100 |
+
x = x.contiguous()
|
| 101 |
+
d = x.shape[-1] // 2
|
| 102 |
+
output_shape = x.shape[:-1] + (d,)
|
| 103 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 104 |
+
ops.mul_and_silu(out, x)
|
| 105 |
+
return out
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
class GeluAndMul(nn.Module):
|
| 109 |
+
"""An activation function for GeGLU.
|
| 110 |
+
|
| 111 |
+
The function computes x -> GELU(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 112 |
+
|
| 113 |
+
Shapes:
|
| 114 |
+
x: (batch_size, seq_len, 2 * d) or (num_tokens, 2 * d)
|
| 115 |
+
return: (batch_size, seq_len, d) or (num_tokens, d)
|
| 116 |
+
"""
|
| 117 |
+
|
| 118 |
+
can_torch_compile: bool = True
|
| 119 |
+
|
| 120 |
+
def forward(self, x: torch.Tensor):
|
| 121 |
+
if not x.is_contiguous():
|
| 122 |
+
x = x.contiguous()
|
| 123 |
+
d = x.shape[-1] // 2
|
| 124 |
+
output_shape = x.shape[:-1] + (d,)
|
| 125 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 126 |
+
ops.gelu_and_mul(out, x)
|
| 127 |
+
return out
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
class GeluTanhAndMul(nn.Module):
|
| 131 |
+
can_torch_compile: bool = True
|
| 132 |
+
|
| 133 |
+
def forward(self, x: torch.Tensor):
|
| 134 |
+
if not x.is_contiguous():
|
| 135 |
+
x = x.contiguous()
|
| 136 |
+
d = x.shape[-1] // 2
|
| 137 |
+
output_shape = x.shape[:-1] + (d,)
|
| 138 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 139 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 140 |
+
return out
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
class FatreluAndMul(nn.Module):
|
| 144 |
+
"""An activation function for FATReLU.
|
| 145 |
+
|
| 146 |
+
The function computes x -> FATReLU(x[:d]) * x[d:] where
|
| 147 |
+
d = x.shape[-1] // 2.
|
| 148 |
+
This is used in openbmb/MiniCPM-S-1B-sft.
|
| 149 |
+
|
| 150 |
+
Shapes:
|
| 151 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 152 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 153 |
+
"""
|
| 154 |
+
|
| 155 |
+
can_torch_compile: bool = True
|
| 156 |
+
|
| 157 |
+
def __init__(self, threshold: float = 0.0):
|
| 158 |
+
super().__init__()
|
| 159 |
+
self.threshold = threshold
|
| 160 |
+
|
| 161 |
+
def forward(self, x: torch.Tensor):
|
| 162 |
+
if not x.is_contiguous():
|
| 163 |
+
x = x.contiguous()
|
| 164 |
+
d = x.shape[-1] // 2
|
| 165 |
+
output_shape = x.shape[:-1] + (d,)
|
| 166 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 167 |
+
ops.fatrelu_and_mul(out, x, self.threshold)
|
| 168 |
+
return out
|
| 169 |
+
|
| 170 |
+
|
| 171 |
+
class FastGELU(nn.Module):
|
| 172 |
+
can_torch_compile: bool = True
|
| 173 |
+
|
| 174 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 175 |
+
if not x.is_contiguous():
|
| 176 |
+
x = x.contiguous()
|
| 177 |
+
out = torch.empty_like(x)
|
| 178 |
+
ops.gelu_fast(out, x)
|
| 179 |
+
return out
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
class NewGELU(nn.Module):
|
| 183 |
+
can_torch_compile: bool = True
|
| 184 |
+
|
| 185 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 186 |
+
if not x.is_contiguous():
|
| 187 |
+
x = x.contiguous()
|
| 188 |
+
out = torch.empty_like(x)
|
| 189 |
+
ops.gelu_new(out, x)
|
| 190 |
+
return out
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
class QuickGELU(nn.Module):
|
| 194 |
+
can_torch_compile: bool = True
|
| 195 |
+
|
| 196 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 197 |
+
if not x.is_contiguous():
|
| 198 |
+
x = x.contiguous()
|
| 199 |
+
out = torch.empty_like(x)
|
| 200 |
+
ops.gelu_quick(out, x)
|
| 201 |
+
return out
|
build/torch-stable-abi210-cu128-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "activation",
|
| 3 |
+
"id": "_activation_cuda_2f7c452",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"license": "Apache-2.0",
|
| 6 |
+
"python-depends": [],
|
| 7 |
+
"backend": {
|
| 8 |
+
"type": "cuda",
|
| 9 |
+
"archs": [
|
| 10 |
+
"10.0",
|
| 11 |
+
"10.1",
|
| 12 |
+
"12.0+PTX",
|
| 13 |
+
"7.0",
|
| 14 |
+
"7.2",
|
| 15 |
+
"7.5",
|
| 16 |
+
"8.0",
|
| 17 |
+
"8.6",
|
| 18 |
+
"8.7",
|
| 19 |
+
"8.9",
|
| 20 |
+
"9.0"
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
"digest": {
|
| 24 |
+
"algorithm": "sha256",
|
| 25 |
+
"files": {
|
| 26 |
+
"__init__.py": "NQdhY7p9BPoMw0NQodMKFTPSQXBlrsX3yUdP8MEHyH0=",
|
| 27 |
+
"_activation_cuda_2f7c452.abi3.so": "7VG6HMZqQwBMJ6Upl4Rhk9zHfES47PCQm0cITWlSjI0=",
|
| 28 |
+
"_ops.py": "q9xZtwPjdsRciOCA5aQFDtsTQnV9SNcvAC74ivbShuM=",
|
| 29 |
+
"activation/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=",
|
| 30 |
+
"layers.py": "wWX07+W0BNFA7RyCE0jYH7aa2U3B8aiiIpu/Q4xsE0w="
|
| 31 |
+
}
|
| 32 |
+
},
|
| 33 |
+
"provenance": {
|
| 34 |
+
"kernel-builder": {
|
| 35 |
+
"version": "0.17.0-dev0",
|
| 36 |
+
"sha": "81580bb92577f2f7228661ca2a221fc052375709",
|
| 37 |
+
"dirty": false
|
| 38 |
+
},
|
| 39 |
+
"kernel": {
|
| 40 |
+
"sha": "2f7c452801641012cf6aa9bdf042431457024033",
|
| 41 |
+
"dirty": false
|
| 42 |
+
}
|
| 43 |
+
}
|
| 44 |
+
}
|
build/torch-stable-abi210-cu128-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtGgAwIBAgIUb5eXq5Bzje5V4ppUVD7MG3jkEaQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA5MTU0OTQ1WhcNMjYwNzA5MTU1OTQ1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEt21KryJA6sJt/d0yZ89GJlo8JMbW+JUF9Cp2Pdx+eyxCcnwGb8SbabHmvsu4cR8HRqpisSVKMYLViENjfPf5E6OCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUUBL323/1yOiv2ig1sl0KLyeuOwwwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDJmN2M0NTI4MDE2NDEwMTJjZjZhYTliZGYwNDI0MzE0NTcwMjQwMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjkwMzA3NzExMDMvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0eSHV8AAAQDAEcwRQIhAJFVRDrUhKqaVXA0UpmxKUMy0uzK0Gs2+5E25HI+xSMxAiAQigpHM/eiSeRKSFQMAycmfaFrlnd+ync50mK4g1vqDzAKBggqhkjOPQQDAwNpADBmAjEA/8/a73lJCJaWTh74voRZ/hq55I14IpR8lDzbl2IQAVAWdnlx3e50iFTq7pwVmEKsAjEAtz8gKCzJ+cFNFX/Z8ahENbpzbqrm2eB4Jb0E3I3O5IY+riR8Zwd8w1v/eBL3777r"}, "tlogEntries":[{"logIndex":"2129276718", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783612186", "inclusionPromise":{"signedEntryTimestamp":"MEUCIQD+csGDoSfxn4MMJwRK53yA8KVHjcpD6xK6+NfZ6f+vuAIgPUvMTGalGBS/DhTBs6JhXRyQ3narB7mn1wsPJN9DdiE="}, "inclusionProof":{"logIndex":"2007372456", "rootHash":"07nhTX4vHqc0UWWW6M5syZitiZFDgFlnSyoZM2aN+vA=", "treeSize":"2007372487", "hashes":["7OHgb4MPAWXGhnwTwcoD72Xz7oHQBhX3PehTLyQMHWc=", "WuM43Q6zRGLn2I9Old3xCcToyXF3INHS2J7bzP1tsFk=", "RWH9BIJqI6Nx/1c29bvrygiVdUYn/yRxdnpN9rV5G9A=", "uQ/TUYesAvVeDUO1OKBKRIpBZOWyVl8G9aQfbwB1+nI=", "J+2INrZa+dDlrukuUoeplAjrF2OVZNMR89XNJZ92evE=", "mQ7YmzzG6U0kvpBS2G44JWLybVnZZaNorI/s5Wo0Tqc=", "oEOA8hf4OSwVpAPL8BcQMXOd5emCAvSUwqzuTKqGKJI=", "e67CUiGR0Vw/L2NdMUQMikicr3JK9TkwzG4prAunGDc=", "slqOv5gBmQhRJrilY7eSfegXrc1VoSHecwywwt4cYoA=", "6q+LpbK/Ih183cA9KuL8+fgXqZf4ltUk/2rp524ZFuI=", "CCu7OkQW6+npAh6Tygn9JYdKku6AUboDosZP3sI7yKQ=", "uwnh4tLrO/3+ywQ63CnFW6mU2V+y+Db8CobG3g6S0Hk=", "Kezfh1XcoOp9KAwr7OWyF8C7cr/mZBPGqKHTdO0BnDs=", "LD5Ws0n7JWm8O7qGvHNSZug32ByFM1WblCpsDJh5M6o=", "f8knrc4LOu/X8scT5SBvEgFJSd7vZZ0LzSaC0Z3lm/U=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2007372487\n07nhTX4vHqc0UWWW6M5syZitiZFDgFlnSyoZM2aN+vA=\n\n— rekor.sigstore.dev wNI9ajBEAiA+A4tS21EMMkEuITeXKyPBIBCIU6R3qCirCJGJhSuBSQIgT06d2RxvXPJ69rNlGga6P6q5xMKZoIR4x5zrIoMsedw=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2ZTBiOGU2ODM2YmVhODU5ZjA3NTE1YzMxZWZjMTcxOWYyNGRjYWE5MmU4YTIwZTgwZGY5NDY1Y2Y5NDE0MzA4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQ3FYMUplYkRGeU5WcE1lN3BPYkg2Nnp2bkxNak5QMytaVTFqSWxvNS9SUEFpRUFqU1VXUi9obmR1V1FLSEZUclljQTNlR3J4OXFlaExhemRyZmFJdE1EZzBrPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5SSFowRjNTVUpCWjBsVllqVmxXSEUxUW5wcVpUVldOSEJ3VlZaRU4wMUhNMnByUldGUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRWTlZGVXdUMVJSTVZkb1kwNU5hbGwzVG5wQk5VMVVWVEZQVkZFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVYwTWpGTGNubEtRVFp6U25RdlpEQjVXamc1UjBwc2J6aEtUV0pYSzBwVlJqbERjRElLVUdSNEsyVjVlRU5qYm5kSFlqaFRZbUZpU0cxMmMzVTBZMUk0U0ZKeGNHbHpVMVpMVFZsTVZtbEZUbXBtVUdZMVJUWlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZWUWt3ekNqSXpMekY1VDJsMk1tbG5NWE5zTUV0TWVXVjFUM2QzZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5iVmt6V1hwUk1VMXFaM2ROVkZrd1RWUkJlRTF0VG0xT2JVWm9DazlYU210YWFrRXdUV3BSZWsxVVVURk9la0Y1VGtSQmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWhQVjBwcldtcEJNRTFxVVhvS1RWUlJNVTU2UVhsT1JFRjZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWdLVDFkS2ExcHFRVEJOYWxGNlRWUlJNVTU2UVhsT1JFRjZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUktiVTR5VFRBS1RsUkpORTFFUlRKT1JFVjNUVlJLYWxwcVdtaFpWR3hwV2tkWmQwNUVTVEJOZWtVd1RsUmpkMDFxVVhkTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW10M1RYcEJNMDU2UlhoTlJFMTJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdaVk5JVmpoQlFVRlJSQXBCUldOM1VsRkphRUZLUmxaU1JISlZhRXR4WVZaWVFUQlZjRzE0UzFWTmVUQjFla3N3UjNNeUt6VkZNalZJU1N0NFUwMTRRV2xCVVdsbmNFaE5MMlZwQ2xObFVrdFRSbEZOUVhsamJXWmhSbkpzYm1RcmVXNWpOVEJ0U3pSbk1YWnhSSHBCUzBKblozRm9hMnBQVUZGUlJFRjNUbkJCUkVKdFFXcEZRUzg0TDJFS056TnNTa05LWVZkVWFEYzBkbTlTV2k5b2NUVTFTVEUwU1hCU09HeEVlbUpzTWtsUlFWWkJWMlJ1YkhnelpUVXdhVVpVY1Rkd2QxWnRSVXR6UVdwRlFRcDBlamhuUzBONlNpdGpSazVHV0M5YU9HRm9SVTVpY0hwaWNYSnRNbVZDTkVwaU1FVXpTVE5QTlVsWkszSnBVamhhZDJRNGR6RjJMMlZDVERNM056ZHlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgh0IZ6QOZMB4XyuPy5jIlLEwG4vu5MM449yruolbwJiwCFQDuW2zFSVFvrKZgfXLIM5pOKiwjPRgPMjAyNjA3MDkxNTQ5NDZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDcwOTE1NDk0NlowLwYJKoZIhvcNAQkEMSIEIKebwDF1d9bqQZV3DICT+f/Fby97fVBgRCzw2lTdZuLTMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQDJHp9DGvjErnPlJumBYCnS2VRCekA7gP9ebnWPkLpgXmFJhy0/bahj/BsxFqSHVS0CMQCZrGoxXdynpl3oiFbIqS1xxnqesFqsT85Cayxwyg8do8DKD/j2qrRIoZkvNGTzteU="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"bguOaDa+qFnwdRXDHvwXGfJNyqkuiiDoDflGXPlBQwg="}, "signature":"MEUCICqX1JebDFyNVpMe7pObH66zvnLMjNP3+ZU1jIlo5/RPAiEAjSUWR/hnduWQKHFTrYcA3eGrx9qehLazdrfaItMDg0k="}}
|
build/torch-stable-abi210-cu130-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
|
| 3 |
+
from ._ops import ops
|
| 4 |
+
|
| 5 |
+
from . import layers
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def silu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 9 |
+
ops.silu_and_mul(out, x)
|
| 10 |
+
return out
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def mul_and_silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 14 |
+
ops.mul_and_silu(out, x)
|
| 15 |
+
return out
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
def gelu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 19 |
+
ops.gelu_and_mul(out, x)
|
| 20 |
+
return out
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def gelu_tanh_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 24 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 25 |
+
return out
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def fatrelu_and_mul(out: torch.Tensor, x: torch.Tensor, threshold: float = 0.0) -> torch.Tensor:
|
| 29 |
+
ops.fatrelu_and_mul(out, x, threshold)
|
| 30 |
+
return out
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def gelu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 34 |
+
ops.gelu(out, x)
|
| 35 |
+
return out
|
| 36 |
+
|
| 37 |
+
def silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 38 |
+
ops.silu(out, x)
|
| 39 |
+
return out
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def gelu_tanh(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 43 |
+
ops.gelu_tanh(out, x)
|
| 44 |
+
return out
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def gelu_fast(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 48 |
+
ops.gelu_fast(out, x)
|
| 49 |
+
return out
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
def gelu_new(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 53 |
+
ops.gelu_new(out, x)
|
| 54 |
+
return out
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
def gelu_quick(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 58 |
+
ops.gelu_quick(out, x)
|
| 59 |
+
return out
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
__all__ = [
|
| 63 |
+
"silu_and_mul",
|
| 64 |
+
"mul_and_silu",
|
| 65 |
+
"gelu_and_mul",
|
| 66 |
+
"gelu_tanh_and_mul",
|
| 67 |
+
"fatrelu_and_mul",
|
| 68 |
+
"gelu_fast",
|
| 69 |
+
"gelu_new",
|
| 70 |
+
"gelu_quick",
|
| 71 |
+
"gelu_tanh",
|
| 72 |
+
"silu",
|
| 73 |
+
"gelu",
|
| 74 |
+
"layers",
|
| 75 |
+
]
|
build/torch-stable-abi210-cu130-aarch64-linux/_activation_cuda_2f7c452.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dc1d1f9025d83df02c8983cd8d79c9bea97282e4d73f88034419cff2c6d9383d
|
| 3 |
+
size 2662752
|
build/torch-stable-abi210-cu130-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _activation_cuda_2f7c452
|
| 3 |
+
ops = torch.ops._activation_cuda_2f7c452
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_activation_cuda_2f7c452::{op_name}"
|
build/torch-stable-abi210-cu130-aarch64-linux/activation/__init__.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ctypes
|
| 2 |
+
import importlib.util
|
| 3 |
+
import sys
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
from types import ModuleType
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def _import_from_path(file_path: Path) -> ModuleType:
|
| 9 |
+
# We cannot use the module name as-is, after adding it to `sys.modules`,
|
| 10 |
+
# it would also be used for other imports. So, we make a module name that
|
| 11 |
+
# depends on the path for it to be unique using the hex-encoded hash of
|
| 12 |
+
# the path.
|
| 13 |
+
path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
|
| 14 |
+
module_name = path_hash
|
| 15 |
+
spec = importlib.util.spec_from_file_location(module_name, file_path)
|
| 16 |
+
if spec is None:
|
| 17 |
+
raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
|
| 18 |
+
module = importlib.util.module_from_spec(spec)
|
| 19 |
+
if module is None:
|
| 20 |
+
raise ImportError(f"Cannot load module {module_name} from spec")
|
| 21 |
+
sys.modules[module_name] = module
|
| 22 |
+
spec.loader.exec_module(module) # type: ignore
|
| 23 |
+
return module
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
|
build/torch-stable-abi210-cu130-aarch64-linux/layers.py
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import torch.nn as nn
|
| 3 |
+
|
| 4 |
+
from ._ops import ops
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
class SiluAndMul(nn.Module):
|
| 8 |
+
"""An activation function for SwiGLU.
|
| 9 |
+
|
| 10 |
+
The function computes x -> silu(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 11 |
+
|
| 12 |
+
Shapes:
|
| 13 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 14 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 15 |
+
"""
|
| 16 |
+
|
| 17 |
+
can_torch_compile: bool = True
|
| 18 |
+
|
| 19 |
+
def forward(self, x: torch.Tensor):
|
| 20 |
+
if not x.is_contiguous():
|
| 21 |
+
x = x.contiguous()
|
| 22 |
+
d = x.shape[-1] // 2
|
| 23 |
+
output_shape = x.shape[:-1] + (d,)
|
| 24 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 25 |
+
ops.silu_and_mul(out, x)
|
| 26 |
+
return out
|
| 27 |
+
|
| 28 |
+
class Silu(nn.Module):
|
| 29 |
+
"""An activation function for SiLU.
|
| 30 |
+
|
| 31 |
+
The function computes x -> silu(x).
|
| 32 |
+
|
| 33 |
+
Shapes:
|
| 34 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 35 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 36 |
+
"""
|
| 37 |
+
|
| 38 |
+
can_torch_compile: bool = True
|
| 39 |
+
|
| 40 |
+
def forward(self, x: torch.Tensor):
|
| 41 |
+
if not x.is_contiguous():
|
| 42 |
+
x = x.contiguous()
|
| 43 |
+
out = torch.empty_like(x)
|
| 44 |
+
ops.silu(out, x)
|
| 45 |
+
return out
|
| 46 |
+
|
| 47 |
+
class Gelu(nn.Module):
|
| 48 |
+
"""An activation function for GELU.
|
| 49 |
+
|
| 50 |
+
The function computes x -> gelu(x).
|
| 51 |
+
|
| 52 |
+
Shapes:
|
| 53 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 54 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 55 |
+
"""
|
| 56 |
+
|
| 57 |
+
can_torch_compile: bool = True
|
| 58 |
+
|
| 59 |
+
def forward(self, x: torch.Tensor):
|
| 60 |
+
if not x.is_contiguous():
|
| 61 |
+
x = x.contiguous()
|
| 62 |
+
out = torch.empty_like(x)
|
| 63 |
+
ops.gelu(out, x)
|
| 64 |
+
return out
|
| 65 |
+
|
| 66 |
+
class GeluTanh(nn.Module):
|
| 67 |
+
"""An activation function for GELU with `tanh` approximation.
|
| 68 |
+
|
| 69 |
+
The function computes x -> gelu_tanh(x).
|
| 70 |
+
|
| 71 |
+
Shapes:
|
| 72 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 73 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 74 |
+
"""
|
| 75 |
+
|
| 76 |
+
can_torch_compile: bool = True
|
| 77 |
+
|
| 78 |
+
def forward(self, x: torch.Tensor):
|
| 79 |
+
if not x.is_contiguous():
|
| 80 |
+
x = x.contiguous()
|
| 81 |
+
out = torch.empty_like(x)
|
| 82 |
+
ops.gelu_tanh(out, x)
|
| 83 |
+
return out
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
class MulAndSilu(nn.Module):
|
| 87 |
+
"""An activation function for SwiGLU.
|
| 88 |
+
|
| 89 |
+
The function computes x -> x[:d] * silu(x[d:]) where d = x.shape[-1] // 2.
|
| 90 |
+
|
| 91 |
+
Shapes:
|
| 92 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 93 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 94 |
+
"""
|
| 95 |
+
|
| 96 |
+
can_torch_compile: bool = True
|
| 97 |
+
|
| 98 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 99 |
+
if not x.is_contiguous():
|
| 100 |
+
x = x.contiguous()
|
| 101 |
+
d = x.shape[-1] // 2
|
| 102 |
+
output_shape = x.shape[:-1] + (d,)
|
| 103 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 104 |
+
ops.mul_and_silu(out, x)
|
| 105 |
+
return out
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
class GeluAndMul(nn.Module):
|
| 109 |
+
"""An activation function for GeGLU.
|
| 110 |
+
|
| 111 |
+
The function computes x -> GELU(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 112 |
+
|
| 113 |
+
Shapes:
|
| 114 |
+
x: (batch_size, seq_len, 2 * d) or (num_tokens, 2 * d)
|
| 115 |
+
return: (batch_size, seq_len, d) or (num_tokens, d)
|
| 116 |
+
"""
|
| 117 |
+
|
| 118 |
+
can_torch_compile: bool = True
|
| 119 |
+
|
| 120 |
+
def forward(self, x: torch.Tensor):
|
| 121 |
+
if not x.is_contiguous():
|
| 122 |
+
x = x.contiguous()
|
| 123 |
+
d = x.shape[-1] // 2
|
| 124 |
+
output_shape = x.shape[:-1] + (d,)
|
| 125 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 126 |
+
ops.gelu_and_mul(out, x)
|
| 127 |
+
return out
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
class GeluTanhAndMul(nn.Module):
|
| 131 |
+
can_torch_compile: bool = True
|
| 132 |
+
|
| 133 |
+
def forward(self, x: torch.Tensor):
|
| 134 |
+
if not x.is_contiguous():
|
| 135 |
+
x = x.contiguous()
|
| 136 |
+
d = x.shape[-1] // 2
|
| 137 |
+
output_shape = x.shape[:-1] + (d,)
|
| 138 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 139 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 140 |
+
return out
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
class FatreluAndMul(nn.Module):
|
| 144 |
+
"""An activation function for FATReLU.
|
| 145 |
+
|
| 146 |
+
The function computes x -> FATReLU(x[:d]) * x[d:] where
|
| 147 |
+
d = x.shape[-1] // 2.
|
| 148 |
+
This is used in openbmb/MiniCPM-S-1B-sft.
|
| 149 |
+
|
| 150 |
+
Shapes:
|
| 151 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 152 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 153 |
+
"""
|
| 154 |
+
|
| 155 |
+
can_torch_compile: bool = True
|
| 156 |
+
|
| 157 |
+
def __init__(self, threshold: float = 0.0):
|
| 158 |
+
super().__init__()
|
| 159 |
+
self.threshold = threshold
|
| 160 |
+
|
| 161 |
+
def forward(self, x: torch.Tensor):
|
| 162 |
+
if not x.is_contiguous():
|
| 163 |
+
x = x.contiguous()
|
| 164 |
+
d = x.shape[-1] // 2
|
| 165 |
+
output_shape = x.shape[:-1] + (d,)
|
| 166 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 167 |
+
ops.fatrelu_and_mul(out, x, self.threshold)
|
| 168 |
+
return out
|
| 169 |
+
|
| 170 |
+
|
| 171 |
+
class FastGELU(nn.Module):
|
| 172 |
+
can_torch_compile: bool = True
|
| 173 |
+
|
| 174 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 175 |
+
if not x.is_contiguous():
|
| 176 |
+
x = x.contiguous()
|
| 177 |
+
out = torch.empty_like(x)
|
| 178 |
+
ops.gelu_fast(out, x)
|
| 179 |
+
return out
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
class NewGELU(nn.Module):
|
| 183 |
+
can_torch_compile: bool = True
|
| 184 |
+
|
| 185 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 186 |
+
if not x.is_contiguous():
|
| 187 |
+
x = x.contiguous()
|
| 188 |
+
out = torch.empty_like(x)
|
| 189 |
+
ops.gelu_new(out, x)
|
| 190 |
+
return out
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
class QuickGELU(nn.Module):
|
| 194 |
+
can_torch_compile: bool = True
|
| 195 |
+
|
| 196 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 197 |
+
if not x.is_contiguous():
|
| 198 |
+
x = x.contiguous()
|
| 199 |
+
out = torch.empty_like(x)
|
| 200 |
+
ops.gelu_quick(out, x)
|
| 201 |
+
return out
|
build/torch-stable-abi210-cu130-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "activation",
|
| 3 |
+
"id": "_activation_cuda_2f7c452",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"license": "Apache-2.0",
|
| 6 |
+
"python-depends": [],
|
| 7 |
+
"backend": {
|
| 8 |
+
"type": "cuda",
|
| 9 |
+
"archs": [
|
| 10 |
+
"10.0",
|
| 11 |
+
"11.0",
|
| 12 |
+
"12.0",
|
| 13 |
+
"12.1+PTX",
|
| 14 |
+
"7.5",
|
| 15 |
+
"8.0",
|
| 16 |
+
"8.6",
|
| 17 |
+
"8.7",
|
| 18 |
+
"8.9",
|
| 19 |
+
"9.0"
|
| 20 |
+
]
|
| 21 |
+
},
|
| 22 |
+
"digest": {
|
| 23 |
+
"algorithm": "sha256",
|
| 24 |
+
"files": {
|
| 25 |
+
"__init__.py": "NQdhY7p9BPoMw0NQodMKFTPSQXBlrsX3yUdP8MEHyH0=",
|
| 26 |
+
"_activation_cuda_2f7c452.abi3.so": "3B0fkCXYPfAsiYPNjXnJvqlyguTXP4gDRBnP8sbZOD0=",
|
| 27 |
+
"_ops.py": "q9xZtwPjdsRciOCA5aQFDtsTQnV9SNcvAC74ivbShuM=",
|
| 28 |
+
"activation/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=",
|
| 29 |
+
"layers.py": "wWX07+W0BNFA7RyCE0jYH7aa2U3B8aiiIpu/Q4xsE0w="
|
| 30 |
+
}
|
| 31 |
+
},
|
| 32 |
+
"provenance": {
|
| 33 |
+
"kernel-builder": {
|
| 34 |
+
"version": "0.17.0-dev0",
|
| 35 |
+
"sha": "81580bb92577f2f7228661ca2a221fc052375709",
|
| 36 |
+
"dirty": false
|
| 37 |
+
},
|
| 38 |
+
"kernel": {
|
| 39 |
+
"sha": "2f7c452801641012cf6aa9bdf042431457024033",
|
| 40 |
+
"dirty": false
|
| 41 |
+
}
|
| 42 |
+
}
|
| 43 |
+
}
|
build/torch-stable-abi210-cu130-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHTTCCBtKgAwIBAgIUDjdewuDGvURZU2hhTIV9SRHIuG8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA5MTU0OTQ2WhcNMjYwNzA5MTU1OTQ2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUpCHA26YQhOmnTrDTC2anpckNf0WPw58CjP0d+aLUl3y3h69AGHki+ac/t80oOd4B5zWRX5euDU/0EqJx5rEd6OCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUafxYxMMLFyLUHTeIuVQPEP4LFXkwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDJmN2M0NTI4MDE2NDEwMTJjZjZhYTliZGYwNDI0MzE0NTcwMjQwMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjkwMzA3NzExMDMvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0eSIYIAAAQDAEgwRgIhAMHzHDQZUJeiSSx2NEArAEteugjehmEiLkw7NPsnazRHAiEA+UQCiYuHhVcPavnFAXENG/C2B30sCv9Av2UoXbPP7AYwCgYIKoZIzj0EAwMDaQAwZgIxAKxgd7KPm948lVHIRpBCGOYCMbXhfRcbWZ+XwG/uSLJBGjyeOb9FX8XnsNhbY5HBDAIxANh9+Xma7VG0tW8RJl68irZVzEBfT7Rx9VmINp72jvrPFE5uY7Q9sRBaoyTY7khnkA=="}, "tlogEntries":[{"logIndex":"2129276940", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783612187", "inclusionPromise":{"signedEntryTimestamp":"MEUCIHKxUcTk/OPDy8rzNIy60vzjSGgknoUXX9MSM+gg0n1kAiEA0D8nATRx1rNpRHoQOXfooDrrpSoIMg3xbdSdbWdEIFQ="}, "inclusionProof":{"logIndex":"2007372678", "rootHash":"PcK9X5OVNUdKxNcvVXXvF1gM809fE7mVL2/+QQuthEo=", "treeSize":"2007372680", "hashes":["N2KehzymD0KZQ8x1sySwjXE1LBYkoKOxHH0qcVRhEN0=", "H6lJGH48ZgBSSOljWzhRpg1b5AZXF/ZDa53ibyLGbwA=", "6CuFHtPU5eDGPfrnsoR9tfnGoM0FO5joaZTKo8vQYKk=", "FbAOWRmsYSIrZNgFwaGh4pN3MNumCtyxK8kozpfsp50=", "bFCHPeWT6gGx4cCjp7O8ZH7tejWmMee8KquirXRoOeI=", "slqOv5gBmQhRJrilY7eSfegXrc1VoSHecwywwt4cYoA=", "6q+LpbK/Ih183cA9KuL8+fgXqZf4ltUk/2rp524ZFuI=", "CCu7OkQW6+npAh6Tygn9JYdKku6AUboDosZP3sI7yKQ=", "uwnh4tLrO/3+ywQ63CnFW6mU2V+y+Db8CobG3g6S0Hk=", "Kezfh1XcoOp9KAwr7OWyF8C7cr/mZBPGqKHTdO0BnDs=", "LD5Ws0n7JWm8O7qGvHNSZug32ByFM1WblCpsDJh5M6o=", "f8knrc4LOu/X8scT5SBvEgFJSd7vZZ0LzSaC0Z3lm/U=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2007372680\nPcK9X5OVNUdKxNcvVXXvF1gM809fE7mVL2/+QQuthEo=\n\n— rekor.sigstore.dev wNI9ajBEAiADQ2GfI43pB2yAyAml79Upy92/nKzQgnv6pvKABpIpKAIgdFGqDVisnJNWTnkXy/L6D6XGGkV4LQVczSRv2/cdsKI=\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJmOTRhZDJmMmM0MDdlYjNkN2Y2OTVlODMwY2RjYWFiY2I0ODRhMTk1MjFlMjkxODAxYTIxMmI1ZGExZTE0NzgzIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQS9qRklkOEpYNG8rYmpvNmpNejkxUk9RSHpUcXc2UjM1d0hQbnBEN0lIa0FpQUc3VVlzR0dPQ3dRYUZRb083OFBoZHR6NTFaUUE5azUwcEJkOFlJOFl6bFE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVWRU5EUW5STFowRjNTVUpCWjBsVlJHcGtaWGQxUkVkMlZWSmFWVEpvYUZSSlZqbFRVa2hKZFVjNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRWTlZGVXdUMVJSTWxkb1kwNU5hbGwzVG5wQk5VMVVWVEZQVkZFeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZWY0VOSVFUSTJXVkZvVDIxdVZISkVWRU15WVc1d1kydE9aakJYVUhjMU9FTnFVREFLWkN0aFRGVnNNM2t6YURZNVFVZElhMmtyWVdNdmREZ3diMDlrTkVJMWVsZFNXRFZsZFVSVkx6QkZjVXA0TlhKRlpEWlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZoWm5oWkNuaE5UVXhHZVV4VlNGUmxTWFZXVVZCRlVEUk1SbGhyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5iVmt6V1hwUk1VMXFaM2ROVkZrd1RWUkJlRTF0VG0xT2JVWm9DazlYU210YWFrRXdUV3BSZWsxVVVURk9la0Y1VGtSQmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWhQVjBwcldtcEJNRTFxVVhvS1RWUlJNVTU2UVhsT1JFRjZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWdLVDFkS2ExcHFRVEJOYWxGNlRWUlJNVTU2UVhsT1JFRjZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUktiVTR5VFRBS1RsUkpORTFFUlRKT1JFVjNUVlJLYWxwcVdtaFpWR3hwV2tkWmQwNUVTVEJOZWtVd1RsUmpkMDFxVVhkTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW10M1RYcEJNMDU2UlhoTlJFMTJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdaVk5KV1VsQlFVRlJSQXBCUldkM1VtZEphRUZOU0hwSVJGRmFWVXBsYVZOVGVESk9SVUZ5UVVWMFpYVm5hbVZvYlVWcFRHdDNOMDVRYzI1aGVsSklRV2xGUVN0VlVVTnBXWFZJQ21oV1kxQmhkbTVHUVZoRlRrY3ZRekpDTXpCelEzWTVRWFl5Vlc5WVlsQlFOMEZaZDBObldVbExiMXBKZW1vd1JVRjNUVVJoVVVGM1dtZEplRUZMZUdjS1pEZExVRzA1TkRoc1ZraEpVbkJDUTBkUFdVTk5ZbGhvWmxKallsZGFLMWgzUnk5MVUweEtRa2RxZVdWUFlqbEdXRGhZYm5OT2FHSlpOVWhDUkVGSmVBcEJUbWc1SzFodFlUZFdSekIwVnpoU1NtdzJPR2x5V2xaNlJVSm1WRGRTZURsV2JVbE9jRGN5YW5aeVVFWkZOWFZaTjFFNWMxSkNZVzk1VkZrM2EyaHVDbXRCUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg5Kc+Dmv5mr5z/WfVr3ZNe1q2O9It2HJ4grHHJfCkNOsCFQDWWKq9BHUeY9+Ko6i0WeDNZluaRRgPMjAyNjA3MDkxNTQ5NDdaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDcwOTE1NDk0N1owLwYJKoZIhvcNAQkEMSIEIP5lVDm/fzAdogyehXwB+CSv7ZrDqGZUtL8UwM/RzT34MIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQDdj4MhAsMt5mJf4fLuNdKOLx1hPA0XEedpv+bVwz3msYkDv/Ks6g5thx77i+hK9esCMQCJW/lQHH44B0iPYei+MRkBHWTE7lXc0rfGww2id0004Dneo4EOsvNAFIBJQaT3ttA="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"+UrS8sQH6z1/aV6DDNyqvLSEoZUh4pGAGiErXaHhR4M="}, "signature":"MEQCIA/jFId8JX4o+bjo6jMz91ROQHzTqw6R35wHPnpD7IHkAiAG7UYsGGOCwQaFQoO78Phdtz51ZQA9k50pBd8YI8YzlQ=="}}
|
build/torch-stable-abi210-cu132-aarch64-linux/__init__.py
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
|
| 3 |
+
from ._ops import ops
|
| 4 |
+
|
| 5 |
+
from . import layers
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def silu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 9 |
+
ops.silu_and_mul(out, x)
|
| 10 |
+
return out
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def mul_and_silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 14 |
+
ops.mul_and_silu(out, x)
|
| 15 |
+
return out
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
def gelu_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 19 |
+
ops.gelu_and_mul(out, x)
|
| 20 |
+
return out
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def gelu_tanh_and_mul(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 24 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 25 |
+
return out
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def fatrelu_and_mul(out: torch.Tensor, x: torch.Tensor, threshold: float = 0.0) -> torch.Tensor:
|
| 29 |
+
ops.fatrelu_and_mul(out, x, threshold)
|
| 30 |
+
return out
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def gelu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 34 |
+
ops.gelu(out, x)
|
| 35 |
+
return out
|
| 36 |
+
|
| 37 |
+
def silu(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 38 |
+
ops.silu(out, x)
|
| 39 |
+
return out
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def gelu_tanh(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 43 |
+
ops.gelu_tanh(out, x)
|
| 44 |
+
return out
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def gelu_fast(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 48 |
+
ops.gelu_fast(out, x)
|
| 49 |
+
return out
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
def gelu_new(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 53 |
+
ops.gelu_new(out, x)
|
| 54 |
+
return out
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
def gelu_quick(out: torch.Tensor, x: torch.Tensor) -> torch.Tensor:
|
| 58 |
+
ops.gelu_quick(out, x)
|
| 59 |
+
return out
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
__all__ = [
|
| 63 |
+
"silu_and_mul",
|
| 64 |
+
"mul_and_silu",
|
| 65 |
+
"gelu_and_mul",
|
| 66 |
+
"gelu_tanh_and_mul",
|
| 67 |
+
"fatrelu_and_mul",
|
| 68 |
+
"gelu_fast",
|
| 69 |
+
"gelu_new",
|
| 70 |
+
"gelu_quick",
|
| 71 |
+
"gelu_tanh",
|
| 72 |
+
"silu",
|
| 73 |
+
"gelu",
|
| 74 |
+
"layers",
|
| 75 |
+
]
|
build/torch-stable-abi210-cu132-aarch64-linux/_activation_cuda_2f7c452.abi3.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2e3af076e8fc0c050f4635d903f191310808c92345fd1289c95ae77c54076f10
|
| 3 |
+
size 2730976
|
build/torch-stable-abi210-cu132-aarch64-linux/_ops.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from . import _activation_cuda_2f7c452
|
| 3 |
+
ops = torch.ops._activation_cuda_2f7c452
|
| 4 |
+
|
| 5 |
+
def add_op_namespace_prefix(op_name: str):
|
| 6 |
+
"""
|
| 7 |
+
Prefix op by namespace.
|
| 8 |
+
"""
|
| 9 |
+
return f"_activation_cuda_2f7c452::{op_name}"
|
build/torch-stable-abi210-cu132-aarch64-linux/activation/__init__.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ctypes
|
| 2 |
+
import importlib.util
|
| 3 |
+
import sys
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
from types import ModuleType
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def _import_from_path(file_path: Path) -> ModuleType:
|
| 9 |
+
# We cannot use the module name as-is, after adding it to `sys.modules`,
|
| 10 |
+
# it would also be used for other imports. So, we make a module name that
|
| 11 |
+
# depends on the path for it to be unique using the hex-encoded hash of
|
| 12 |
+
# the path.
|
| 13 |
+
path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
|
| 14 |
+
module_name = path_hash
|
| 15 |
+
spec = importlib.util.spec_from_file_location(module_name, file_path)
|
| 16 |
+
if spec is None:
|
| 17 |
+
raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
|
| 18 |
+
module = importlib.util.module_from_spec(spec)
|
| 19 |
+
if module is None:
|
| 20 |
+
raise ImportError(f"Cannot load module {module_name} from spec")
|
| 21 |
+
sys.modules[module_name] = module
|
| 22 |
+
spec.loader.exec_module(module) # type: ignore
|
| 23 |
+
return module
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
|
build/torch-stable-abi210-cu132-aarch64-linux/layers.py
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import torch.nn as nn
|
| 3 |
+
|
| 4 |
+
from ._ops import ops
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
class SiluAndMul(nn.Module):
|
| 8 |
+
"""An activation function for SwiGLU.
|
| 9 |
+
|
| 10 |
+
The function computes x -> silu(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 11 |
+
|
| 12 |
+
Shapes:
|
| 13 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 14 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 15 |
+
"""
|
| 16 |
+
|
| 17 |
+
can_torch_compile: bool = True
|
| 18 |
+
|
| 19 |
+
def forward(self, x: torch.Tensor):
|
| 20 |
+
if not x.is_contiguous():
|
| 21 |
+
x = x.contiguous()
|
| 22 |
+
d = x.shape[-1] // 2
|
| 23 |
+
output_shape = x.shape[:-1] + (d,)
|
| 24 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 25 |
+
ops.silu_and_mul(out, x)
|
| 26 |
+
return out
|
| 27 |
+
|
| 28 |
+
class Silu(nn.Module):
|
| 29 |
+
"""An activation function for SiLU.
|
| 30 |
+
|
| 31 |
+
The function computes x -> silu(x).
|
| 32 |
+
|
| 33 |
+
Shapes:
|
| 34 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 35 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 36 |
+
"""
|
| 37 |
+
|
| 38 |
+
can_torch_compile: bool = True
|
| 39 |
+
|
| 40 |
+
def forward(self, x: torch.Tensor):
|
| 41 |
+
if not x.is_contiguous():
|
| 42 |
+
x = x.contiguous()
|
| 43 |
+
out = torch.empty_like(x)
|
| 44 |
+
ops.silu(out, x)
|
| 45 |
+
return out
|
| 46 |
+
|
| 47 |
+
class Gelu(nn.Module):
|
| 48 |
+
"""An activation function for GELU.
|
| 49 |
+
|
| 50 |
+
The function computes x -> gelu(x).
|
| 51 |
+
|
| 52 |
+
Shapes:
|
| 53 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 54 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 55 |
+
"""
|
| 56 |
+
|
| 57 |
+
can_torch_compile: bool = True
|
| 58 |
+
|
| 59 |
+
def forward(self, x: torch.Tensor):
|
| 60 |
+
if not x.is_contiguous():
|
| 61 |
+
x = x.contiguous()
|
| 62 |
+
out = torch.empty_like(x)
|
| 63 |
+
ops.gelu(out, x)
|
| 64 |
+
return out
|
| 65 |
+
|
| 66 |
+
class GeluTanh(nn.Module):
|
| 67 |
+
"""An activation function for GELU with `tanh` approximation.
|
| 68 |
+
|
| 69 |
+
The function computes x -> gelu_tanh(x).
|
| 70 |
+
|
| 71 |
+
Shapes:
|
| 72 |
+
x: (num_tokens, d) or (batch_size, seq_len, d)
|
| 73 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 74 |
+
"""
|
| 75 |
+
|
| 76 |
+
can_torch_compile: bool = True
|
| 77 |
+
|
| 78 |
+
def forward(self, x: torch.Tensor):
|
| 79 |
+
if not x.is_contiguous():
|
| 80 |
+
x = x.contiguous()
|
| 81 |
+
out = torch.empty_like(x)
|
| 82 |
+
ops.gelu_tanh(out, x)
|
| 83 |
+
return out
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
class MulAndSilu(nn.Module):
|
| 87 |
+
"""An activation function for SwiGLU.
|
| 88 |
+
|
| 89 |
+
The function computes x -> x[:d] * silu(x[d:]) where d = x.shape[-1] // 2.
|
| 90 |
+
|
| 91 |
+
Shapes:
|
| 92 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 93 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 94 |
+
"""
|
| 95 |
+
|
| 96 |
+
can_torch_compile: bool = True
|
| 97 |
+
|
| 98 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 99 |
+
if not x.is_contiguous():
|
| 100 |
+
x = x.contiguous()
|
| 101 |
+
d = x.shape[-1] // 2
|
| 102 |
+
output_shape = x.shape[:-1] + (d,)
|
| 103 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 104 |
+
ops.mul_and_silu(out, x)
|
| 105 |
+
return out
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
class GeluAndMul(nn.Module):
|
| 109 |
+
"""An activation function for GeGLU.
|
| 110 |
+
|
| 111 |
+
The function computes x -> GELU(x[:d]) * x[d:] where d = x.shape[-1] // 2.
|
| 112 |
+
|
| 113 |
+
Shapes:
|
| 114 |
+
x: (batch_size, seq_len, 2 * d) or (num_tokens, 2 * d)
|
| 115 |
+
return: (batch_size, seq_len, d) or (num_tokens, d)
|
| 116 |
+
"""
|
| 117 |
+
|
| 118 |
+
can_torch_compile: bool = True
|
| 119 |
+
|
| 120 |
+
def forward(self, x: torch.Tensor):
|
| 121 |
+
if not x.is_contiguous():
|
| 122 |
+
x = x.contiguous()
|
| 123 |
+
d = x.shape[-1] // 2
|
| 124 |
+
output_shape = x.shape[:-1] + (d,)
|
| 125 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 126 |
+
ops.gelu_and_mul(out, x)
|
| 127 |
+
return out
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
class GeluTanhAndMul(nn.Module):
|
| 131 |
+
can_torch_compile: bool = True
|
| 132 |
+
|
| 133 |
+
def forward(self, x: torch.Tensor):
|
| 134 |
+
if not x.is_contiguous():
|
| 135 |
+
x = x.contiguous()
|
| 136 |
+
d = x.shape[-1] // 2
|
| 137 |
+
output_shape = x.shape[:-1] + (d,)
|
| 138 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 139 |
+
ops.gelu_tanh_and_mul(out, x)
|
| 140 |
+
return out
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
class FatreluAndMul(nn.Module):
|
| 144 |
+
"""An activation function for FATReLU.
|
| 145 |
+
|
| 146 |
+
The function computes x -> FATReLU(x[:d]) * x[d:] where
|
| 147 |
+
d = x.shape[-1] // 2.
|
| 148 |
+
This is used in openbmb/MiniCPM-S-1B-sft.
|
| 149 |
+
|
| 150 |
+
Shapes:
|
| 151 |
+
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d)
|
| 152 |
+
return: (num_tokens, d) or (batch_size, seq_len, d)
|
| 153 |
+
"""
|
| 154 |
+
|
| 155 |
+
can_torch_compile: bool = True
|
| 156 |
+
|
| 157 |
+
def __init__(self, threshold: float = 0.0):
|
| 158 |
+
super().__init__()
|
| 159 |
+
self.threshold = threshold
|
| 160 |
+
|
| 161 |
+
def forward(self, x: torch.Tensor):
|
| 162 |
+
if not x.is_contiguous():
|
| 163 |
+
x = x.contiguous()
|
| 164 |
+
d = x.shape[-1] // 2
|
| 165 |
+
output_shape = x.shape[:-1] + (d,)
|
| 166 |
+
out = torch.empty(output_shape, dtype=x.dtype, device=x.device)
|
| 167 |
+
ops.fatrelu_and_mul(out, x, self.threshold)
|
| 168 |
+
return out
|
| 169 |
+
|
| 170 |
+
|
| 171 |
+
class FastGELU(nn.Module):
|
| 172 |
+
can_torch_compile: bool = True
|
| 173 |
+
|
| 174 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 175 |
+
if not x.is_contiguous():
|
| 176 |
+
x = x.contiguous()
|
| 177 |
+
out = torch.empty_like(x)
|
| 178 |
+
ops.gelu_fast(out, x)
|
| 179 |
+
return out
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
class NewGELU(nn.Module):
|
| 183 |
+
can_torch_compile: bool = True
|
| 184 |
+
|
| 185 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 186 |
+
if not x.is_contiguous():
|
| 187 |
+
x = x.contiguous()
|
| 188 |
+
out = torch.empty_like(x)
|
| 189 |
+
ops.gelu_new(out, x)
|
| 190 |
+
return out
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
class QuickGELU(nn.Module):
|
| 194 |
+
can_torch_compile: bool = True
|
| 195 |
+
|
| 196 |
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
| 197 |
+
if not x.is_contiguous():
|
| 198 |
+
x = x.contiguous()
|
| 199 |
+
out = torch.empty_like(x)
|
| 200 |
+
ops.gelu_quick(out, x)
|
| 201 |
+
return out
|
build/torch-stable-abi210-cu132-aarch64-linux/metadata.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "activation",
|
| 3 |
+
"id": "_activation_cuda_2f7c452",
|
| 4 |
+
"version": 1,
|
| 5 |
+
"license": "Apache-2.0",
|
| 6 |
+
"python-depends": [],
|
| 7 |
+
"backend": {
|
| 8 |
+
"type": "cuda",
|
| 9 |
+
"archs": [
|
| 10 |
+
"10.0",
|
| 11 |
+
"11.0",
|
| 12 |
+
"12.0",
|
| 13 |
+
"12.1+PTX",
|
| 14 |
+
"7.5",
|
| 15 |
+
"8.0",
|
| 16 |
+
"8.6",
|
| 17 |
+
"8.7",
|
| 18 |
+
"8.9",
|
| 19 |
+
"9.0"
|
| 20 |
+
]
|
| 21 |
+
},
|
| 22 |
+
"digest": {
|
| 23 |
+
"algorithm": "sha256",
|
| 24 |
+
"files": {
|
| 25 |
+
"__init__.py": "NQdhY7p9BPoMw0NQodMKFTPSQXBlrsX3yUdP8MEHyH0=",
|
| 26 |
+
"_activation_cuda_2f7c452.abi3.so": "Ljrwduj8DAUPRjXZA/GRMQgIySNF/RKJyVrnfFQHbxA=",
|
| 27 |
+
"_ops.py": "q9xZtwPjdsRciOCA5aQFDtsTQnV9SNcvAC74ivbShuM=",
|
| 28 |
+
"activation/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY=",
|
| 29 |
+
"layers.py": "wWX07+W0BNFA7RyCE0jYH7aa2U3B8aiiIpu/Q4xsE0w="
|
| 30 |
+
}
|
| 31 |
+
},
|
| 32 |
+
"provenance": {
|
| 33 |
+
"kernel-builder": {
|
| 34 |
+
"version": "0.17.0-dev0",
|
| 35 |
+
"sha": "81580bb92577f2f7228661ca2a221fc052375709",
|
| 36 |
+
"dirty": false
|
| 37 |
+
},
|
| 38 |
+
"kernel": {
|
| 39 |
+
"sha": "2f7c452801641012cf6aa9bdf042431457024033",
|
| 40 |
+
"dirty": false
|
| 41 |
+
}
|
| 42 |
+
}
|
| 43 |
+
}
|
build/torch-stable-abi210-cu132-aarch64-linux/metadata.json.sigstore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json", "verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUfLxI4GdcTXCqWeYA96dr6KiKy70wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA5MTU0OTQ3WhcNMjYwNzA5MTU1OTQ3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETqBqgvY3RJBo3lQDG4RnjlFCaywIGlXfSQmHM4Mf4oU9b4Z3xxS7J4YWkPjcQGpiQga4nfW16RSPnPyDMMxnBKOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUAY4FE02u9a/AwbdQwQmm5h+LHY8wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMmY3YzQ1MjgwMTY0MTAxMmNmNmFhOWJkZjA0MjQzMTQ1NzAyNDAzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDJmN2M0NTI4MDE2NDEwMTJjZjZhYTliZGYwNDI0MzE0NTcwMjQwMzMwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMjkwMzA3NzExMDMvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABn0eSJScAAAQDAEcwRQIhAKS2p2qWSe9+dr95XMB6xNUqMIUilLcE5Pe+Md+NpodKAiAKmfUsEYTZrJo/fhmXEiZzhPTM21Xxwb2K8VVLk8PK6DAKBggqhkjOPQQDAwNoADBlAjEAyVZ7AtIqq7kvZqK05apjRsTa5wUu74eiO3acnxuLyaMSLG/S39Y8tDdSar00wqtyAjAwNqDZrhPnnnCEhMTdCOqUIjMNZIPOGDnrGJLarQIw345KKg6VR3c7Q1GWsrAzCgw="}, "tlogEntries":[{"logIndex":"2129277158", "logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="}, "kindVersion":{"kind":"hashedrekord", "version":"0.0.1"}, "integratedTime":"1783612188", "inclusionPromise":{"signedEntryTimestamp":"MEYCIQC+Dimw0xr66PFvq6eXMSNm/O8h52LHvNhtsE7ap9SJYgIhAOMcfxHGYFTEWa2LQZqGyjBo3juDSXJS2NZUpRNG1DkH"}, "inclusionProof":{"logIndex":"2007372896", "rootHash":"LV+qAY9J0YWMwdcQAF0BnWpbJcoVgZNNt0lEHNgLK94=", "treeSize":"2007372928", "hashes":["kN6iJbTtEZvjkSojx5K1EkLxWVoQzWug1B/o7WcUJ68=", "DU81dCIR3NZ+rjEltK9mhT8oTH0LEltmoM3xuFE0HjY=", "h32s6rPhHO9lD6aha+7D3ZWfn4DJuR9I98QvuIEOtFA=", "H0VvEBumWCVY6FMTNVCiNH0Jng1ihn6MTdI347gMWM8=", "ER5iBhpNxBgIO8dh9lrLy/9hkFwjtWzss9GYA9NnwPM=", "6W8vJ+D6fTDBxgGB2l2QeKI23npi+2klImqRgQoaj/8=", "bizkQtow9bYDIzaYrKj7dS5AYaxQiswPSfH+0TnuQ88=", "59rSn8Rt0cVWqgReMM0Yi86oeneXlh+FZXICIaZzV0Y=", "6q+LpbK/Ih183cA9KuL8+fgXqZf4ltUk/2rp524ZFuI=", "CCu7OkQW6+npAh6Tygn9JYdKku6AUboDosZP3sI7yKQ=", "uwnh4tLrO/3+ywQ63CnFW6mU2V+y+Db8CobG3g6S0Hk=", "Kezfh1XcoOp9KAwr7OWyF8C7cr/mZBPGqKHTdO0BnDs=", "LD5Ws0n7JWm8O7qGvHNSZug32ByFM1WblCpsDJh5M6o=", "f8knrc4LOu/X8scT5SBvEgFJSd7vZZ0LzSaC0Z3lm/U=", "WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=", "cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=", "+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=", "daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=", "DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="], "checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2007372928\nLV+qAY9J0YWMwdcQAF0BnWpbJcoVgZNNt0lEHNgLK94=\n\n— rekor.sigstore.dev wNI9ajBFAiEA33x0fRKyBoqxawtiG3WTjzhl+rVFYO2v5CfJzoqyFdgCIGQkujp6KwvHrKRm0g80hwNEDRM1unM+39PHS4cghPJt\n"}}, "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlMDgyNmYxZGE3NTVkZmUyOTk4MzVmYzlkMTUxOWZmMzU5NWJmMWY2YmU4NWY5ZmFlNjYzNGQxNGU5ZTdhMWFhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRGJNZ2dJWjEyN012d1ZXa0FQNVN0ek15TGwrVVhxc0NMRXBXVmh4OGw5bkFpQmhKdTUvaTlvUjlDWXdYVytrS2JFMG01RVh4QlRpRHJaTE5haC9NTmFnNWc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlpreDRTVFJIWkdOVVdFTnhWMlZaUVRrMlpISTJTMmxMZVRjd2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRWTlZGVXdUMVJSTTFkb1kwNU5hbGwzVG5wQk5VMVVWVEZQVkZFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZVY1VKeFozWlpNMUpLUW04emJGRkVSelJTYm1wc1JrTmhlWGRKUjJ4WVpsTlJiVWdLVFRSTlpqUnZWVGxpTkZvemVIaFROMG8wV1ZkclVHcGpVVWR3YVZGbllUUnVabGN4TmxKVFVHNVFlVVJOVFhodVFrdFBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZCV1RSR0NrVXdNblU1WVM5QmQySmtVWGRSYlcwMWFDdE1TRms0ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5iVmt6V1hwUk1VMXFaM2ROVkZrd1RWUkJlRTF0VG0xT2JVWm9DazlYU210YWFrRXdUV3BSZWsxVVVURk9la0Y1VGtSQmVrMTZRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWhQVjBwcldtcEJNRTFxVVhvS1RWUlJNVTU2UVhsT1JFRjZUWHBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDF0V1ROWmVsRXhUV3BuZDAxVVdUQk5WRUY0VFcxT2JVNXRSbWdLVDFkS2ExcHFRVEJOYWxGNlRWUlJNVTU2UVhsT1JFRjZUWHBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUktiVTR5VFRBS1RsUkpORTFFUlRKT1JFVjNUVlJLYWxwcVdtaFpWR3hwV2tkWmQwNUVTVEJOZWtVd1RsUmpkMDFxVVhkTmVrMTNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOYW10M1RYcEJNMDU2UlhoTlJFMTJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtNHdaVk5LVTJOQlFVRlJSQXBCUldOM1VsRkphRUZMVXpKd01uRlhVMlU1SzJSeU9UVllUVUkyZUU1VmNVMUpWV2xzVEdORk5WQmxLMDFrSzA1d2IyUkxRV2xCUzIxbVZYTkZXVlJhQ25KS2J5OW1hRzFZUldsYWVtaFFWRTB5TVZoNGQySXlTemhXVmt4ck9GQkxOa1JCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEZRWGxXV2pjS1FYUkpjWEUzYTNaYWNVc3dOV0Z3YWxKelZHRTFkMVYxTnpSbGFVOHpZV051ZUhWTWVXRk5VMHhITDFNek9WazRkRVJrVTJGeU1EQjNjWFI1UVdwQmR3cE9jVVJhY21oUWJtNXVRMFZvVFZSa1EwOXhWVWxxVFU1YVNWQlBSMFJ1Y2tkS1RHRnlVVWwzTXpRMVMwdG5ObFpTTTJNM1VURkhWM055UVhwRFozYzlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}], "timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgG0x9g4jHxv7rq0k6oCdYs6Qu9k6R77NgiTqTKJWTI5kCFBFOYxdt19rNB2GM3lJg4KQjWJRRGA8yMDI2MDcwOTE1NDk0OFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzA5MTU0OTQ4WjAvBgkqhkiG9w0BCQQxIgQgdKsYMb+qH4Ztp9JaZeORKd6dQJhpTMFpM7kQU11ak5wwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwJaNg74bzEOVdmCpUqctGxopoR/X1BK9E6QXNcISTr33Plna13GlGJdqR19QbJvaUAjBz0GtpXlGlzHPz5xr5QnRGkcayQ7uIpCJpPAAEmpJfklqc/QbMMfesQXywA1SVQoM="}]}}, "messageSignature":{"messageDigest":{"algorithm":"SHA2_256", "digest":"4IJvHadV3+KZg1/J0VGf81lb8fa+hfn65mNNFOnnoao="}, "signature":"MEQCIDbMggIZ127MvwVWkAP5StzMyLl+UXqsCLEpWVhx8l9nAiBhJu5/i9oR9CYwXW+kKbE0m5EXxBTiDrZLNah/MNag5g=="}}
|