hp-l33's picture
Add Sol-Attn Kernel Builder source
8e9f35a verified
Raw
History Blame Contribute Delete
1.29 kB
import importlib
import torch
from kernels.benchmark import Benchmark
class SolAttnBenchmark(Benchmark):
seed: int = 42
def _setup(self, tokens, heads):
self.q = torch.randn(
1,
tokens,
heads,
128,
device=self.device,
dtype=torch.bfloat16,
)
self.k = torch.randn_like(self.q)
self.v = torch.randn_like(self.q)
module = importlib.import_module(f"{self.kernel.__name__}.triton_ref")
self.triton_sol_attn = module.sol_attn
def _run(self):
self.out = self.kernel.sol_attn(
self.q,
self.k,
self.v,
tau=1.0,
thresh_type="exact",
)
def _reference(self):
return self.triton_sol_attn(
self.q,
self.k,
self.v,
tau=1.0,
thresh_type="exact",
)
def setup_base(self):
self._setup(tokens=4096, heads=8)
def benchmark_base(self):
self._run()
def verify_base(self):
return self._reference()
def setup_video(self):
self._setup(tokens=16384, heads=16)
def benchmark_video(self):
self._run()
def verify_video(self):
return self._reference()