Instructions to use Efficient-Large-Model/Sol-Attn-Kernel-Source with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Kernels
How to use Efficient-Large-Model/Sol-Attn-Kernel-Source with Kernels:
# !pip install kernels from kernels import get_kernel kernel = get_kernel("Efficient-Large-Model/Sol-Attn-Kernel-Source") - Notebooks
- Google Colab
- Kaggle
| 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() | |