Skip to main content

kestrel-kernels

Precompiled CUDA kernels for Kestrel, a high-performance inference engine for Moondream, the world's most efficient vision-language model.

License: These kernels are provided for use with Kestrel only. Other use is not permitted.

These kernels target NVIDIA Ampere/Ada/Hopper GPUs (SM80/SM86/SM89/SM90) and are distributed as precompiled shared libraries for fast installation without CUDA compilation.

Kernel Library

CUDA Kernels (compiled via CMake)

These kernels are implemented in CUDA C++ and compiled during wheel build.

activation - GELU Residual Activation

Computes GELU(h) * (g + 1) fused gated activation used in MoE expert layers. The input tensor is split in half: h passes through GELU, g acts as a gate with +1 bias.

Tokens CUDA PyTorch (eager) Compile vs PyTorch
1 3.8 us 64 us 63 us 17x
64 2.9 us 49 us 69 us 17x
740 3.5 us 49 us 68 us 14x
1024 3.9 us 49 us 68 us 13x
2048 5.1 us 49 us 68 us 10x

PyTorch eager launches separate kernels for slice, erf, multiply, and add, with intermediate tensors hitting global memory. Our kernel fuses everything into a single pass. torch.compile is slower than eager here, likely because the dynamic x[:, :hidden] slicing prevents effective fusion.

fused_linear_residual - Linear + Bias + Residual

Fused out = x @ W.T + bias + residual using cuBLASLt epilogues.

Crops Tokens CUDA PyTorch (eager) vs PyTorch
1 729 9.0 us 24 us 2.7x
2 1458 12 us 24 us 2.0x
4 2916 16 us 29 us 1.8x
8 5832 46 us 50 us 1.1x
13 9477 44 us 77 us 1.7x

cuBLASLt epilogues fuse bias addition and residual into the matmul, avoiding extra kernel launches and memory traffic.

fused_mlp - Fused MLP with cuBLASLt

Fused out = residual + gelu(x @ W1.T + b1) @ W2.T + b2 using cuBLASLt epilogues.

Crops Tokens CUDA PyTorch (eager) vs PyTorch
1 729 43 us 56 us 1.3x
2 1458 72 us 89 us 1.2x
4 2916 97 us 124 us 1.3x
8 5832 214 us 259 us 1.2x
13 9477 283 us 379 us 1.3x

MLP is matmul-dominated so the speedup is modest. The gain comes from fusing GELU and residual add into cuBLASLt epilogues.

kv_cache_write - KV Cache Write with FP8 Quantization

Writes BF16 key/value tensors to FP8 paged KV cache with quantization.

Tokens Kestrel vLLM PyTorch (eager) vs vLLM vs PyTorch
1 3.7 us 4.9 us 67 us 1.3x 18x
8 3.5 us 4.8 us 35 us 1.4x 10x
64 3.7 us 4.8 us 35 us 1.3x 9x
256 4.1 us 4.8 us 36 us 1.2x 9x
1024 8.6 us 9.7 us 51 us 1.1x 6x
4096 31 us 46 us 124 us 1.5x 4x

Fused K/V processing and optimized vectorization provide 1.1-1.5x speedup over vLLM's implementation.

layernorm_cuda - Fast LayerNorm Forward

Optimized LayerNorm forward pass for common hidden dimensions.

Vision Encoder (N=1152):

Crops Tokens CUDA PyTorch (eager) vs PyTorch
1 729 3.9 us 8.4 us 2.2x
2 1458 4.2 us 8.4 us 2.0x
4 2916 5.5 us 10 us 1.8x
8 5832 8.3 us 18 us 2.1x
13 9477 18 us 28 us 1.6x

Text Decoder (N=2048):

Context Tokens CUDA PyTorch (eager) vs PyTorch
decode 1 4.2 us 8.4 us 2.0x
prefill 740 3.7 us 8.4 us 2.3x

Specialized kernels for N=1152 and N=2048 use 4 rows/block with warp-only reductions, avoiding shared memory overhead. Two epilogue strategies trade register pressure vs memory bandwidth.

moe_sum - MoE Output Summation

Sums the weighted outputs from top-k MoE experts back into a single hidden state per token. Computes out[t] = sum(expert_outputs[t, 0:k]) where each token selects k=8 experts.

Context Tokens CUDA PyTorch (eager) vs PyTorch
decode 1 3.0 us 5.6 us 1.9x
batch 4 4 3.0 us 5.4 us 1.8x
batch 16 16 2.9 us 5.3 us 1.8x
prefill 740 5.5 us 10 us 1.9x
long 1024 10 us 15 us 1.5x

Vectorized 16-byte loads (8 bf16 at once), fully unrolled k=8 reduction. FP32 accumulation provides better numerical stability than bf16 accumulation. Note: vLLM has a similar kernel, but only supports topk=2,3,4 and falls back to PyTorch for topk=8.

rotary_embedding - Rotary Position Embedding

Applies rotary position embedding to query and key tensors (n_heads=32, head_dim=64).

Context Tokens Kestrel vLLM PyTorch (eager) vs vLLM vs PyTorch
decode 1 3.3 us 4.9 us 118 us 1.5x 36x
batch 4 4 3.1 us 4.5 us 117 us 1.5x 38x
batch 16 16 3.1 us 4.7 us 117 us 1.5x 38x
prefill 740 5.0 us 8.0 us 119 us 1.6x 24x

Vectorized bfloat162 pair processing, shared memory caching of cos/sin values, FP32 math for numerical stability. Split-head kernel for decode increases SM utilization on small batch sizes.

fp8_quant - FP8 Quantization

Converts BF16 tensors to FP8 (e4m3fn) with per-row dynamic scale computation. Used for quantizing MoE activations before FP8 GEMM.

Context Rows CUDA PyTorch (eager) vs PyTorch
decode 8 3.1 us 53 us 17x
batch 4 32 3.1 us 52 us 17x
batch 16 128 3.1 us 52 us 17x
prefill 5920 6.6 us 67 us 10x

Two kernel variants: warp-per-row for large batches (better SM utilization), block-per-row for small batches. Vectorized 16-byte loads/stores, fused absmax reduction.

tau_tail - TAU Attention Scaling

Applies per-head TAU scaling to Q and V in packed QKV. Computes scale = tanh(tok_linear) + tau_pos_table[position] then scales each head: Q *= scale_q, V *= scale_v.

Context Tokens CUDA PyTorch (eager) vs PyTorch
decode 1 4.6 us 45 us 10x
batch 4 4 4.4 us 46 us 10x
batch 16 16 9.0 us 88 us 10x
prefill 740 6.5 us 63 us 10x

CuTe DSL Kernels (precompiled for wheel distribution)

These kernels are written in NVIDIA CuTe DSL (Python) and precompiled to .so files during wheel build. The kernel source templates are excluded from wheel distribution.

Current runtime status:

  • Production runtime for these kernels still uses the CuTe-generated AOT shared library path, loaded through the existing tvm_ffi wrapper.
  • We now have a DLPack-based direct-cubin topk path in the source tree that does not use cutlass, libcute_dsl_runtime, or tvm_ffi in the migrated hot path.
  • That path builds the kernel on Linux, ships the emitted cubin plus manifest, and launches it through _pybridge using the DLPack C exchange API for tensor and stream interop.
  • On B200 (sm100), the preallocated topk direct-cubin path is now at parity or better than the current production-style precompiled path:
    • batch 257: 6.77 us direct cubin vs 7.24 us existing precompiled path
    • topk_fwd, batch 257: 8.95 us direct cubin vs 9.79 us existing precompiled path
  • On the Windows L4 dev host, the same Linux-built sm89 cubin ran successfully through the rebuilt _pybridge path with correct results and correct non-default stream behavior.
  • The long-term runtime direction is now: Linux-only CuTe builders, bundled cubin artifacts, _pybridge launchers, and torch-c-dlpack-ext as the dependency that guarantees the DLPack C exchange API is available for runtime interop.

Design notes for the ongoing refactor live in docs/CUTE_RUNTIME_REFACTOR_DESIGN.md.

topk - Bitonic Top-K Selection

GPU top-k selection using bitonic sort network with optional fused softmax.

Context Tokens Kestrel Quack PyTorch (eager) vs Quack vs PyTorch
decode 1 23 us 29 us 17 us 1.3x 0.8x
batch 16 16 22 us 27 us 17 us 1.2x 0.8x
prefill 740 22 us 28 us 17 us 1.2x 0.7x

Note: Currently slower than PyTorch for N=64, k=8. PyTorch uses radix-based QuickSelect which is more efficient for small N. Algorithm should be revisited.

An experimental direct-cubin runtime also exists for topk in the source tree. It demonstrates that this CuTe kernel can be built on Linux and run through our own native launcher on both Linux and Windows without a runtime dependency on cutlass or tvm_ffi.

Python API:

from kestrel_kernels.topk import topk_fwd

values, indices = topk_fwd(scores, k=8, softmax=True)

sampling - Top-p Token Sampling

CuTe DSL rejection-based top-p sampler for probability tensors.

Runtime dispatch uses the CuTe kernel path by default on CUDA, with fallback retained for unsupported cases and runtime errors.

Benchmarks below are H100 (sm90) dispatch-like timings (uniform generation + kernel launch), measured with heavy warmup and interleaved randomized runs:

Shape (batch, vocab) Kestrel CuTe FlashInfer vs FlashInfer
(1, 51200) 17.37 us 20.78 us 1.20x
(4, 51200) 21.17 us 21.84 us 1.03x
(128, 51200) 38.96 us 42.44 us 1.09x
(32, 1024) 15.25 us 20.50 us 1.34x

Python API:

from kestrel_kernels.sampling import top_p_sampling_from_probs

sampled_ids = top_p_sampling_from_probs(probs, top_p, generator=generator)

cute_moe - MoE Matrix Multiplications

Grouped GEMM kernels for Mixture-of-Experts layers, written in CuTe DSL for H100 (SM90). Supports BF16 and FP8 (W8A8) precision with both warp-level and WGMMA variants, automatically selected based on batch size.

FP8 W8A8 Full MoE Layer (up + activation + down + sum, E=64, k=8, with CUDA Graphs):

Context Tokens Kestrel vLLM (Triton) vs vLLM
decode 1 29 us 51 us 1.72x
batch 4 4 79 us 103 us 1.30x
batch 16 16 146 us 169 us 1.16x
prefill 740 245 us 481 us 1.96x

Python API:

from kestrel_kernels import (
    invoke_cute_moe_up,
    invoke_cute_moe_down,
    invoke_cute_moe_up_fp8,
    invoke_cute_moe_down_fp8,
)

# BF16 up projection
out_up = invoke_cute_moe_up(
    hidden_states, w1, w2,
    topk_weights, topk_ids,
    sorted_token_ids, expert_ids, num_tokens_post_pad,
)

# BF16 down projection
out_down = invoke_cute_moe_down(
    moe_out, w3,
    topk_weights, topk_ids,
    sorted_token_ids, expert_ids, num_tokens_post_pad,
)

moe_align - MoE Token Alignment

Prepares sorted token indices for block-sparse MoE operations. Given topk_ids, outputs sorted token IDs grouped by expert for block-sparse matmul.

Context Tokens Kestrel vLLM vs vLLM
decode 1 6.7 us 9.8 us 1.5x
batch 4 4 6.5 us 9.8 us 1.5x
batch 16 16 7.0 us 10 us 1.4x
prefill 740 12 us 9.2 us 0.8x
long 1024 12 us 9.5 us 0.8x

Uses optimized single-CTA shared-memory histogram for decode (numel < 1024). Prefill path needs optimization.

Python API:

from kestrel_kernels.moe_align import moe_align_block_size

moe_align_block_size(
    topk_ids, num_experts, block_size,
    sorted_token_ids, expert_ids, num_tokens_post_pad,
    expert_map,  # optional for expert parallelism
)

gelu_residual - GELU Residual Activation (CuTe DSL)

CuTe DSL implementation of GELU residual activation for BF16. Computes GELU(h) * (g + 1) fused gated activation used in MoE expert layers. Uses vectorized memory access and streaming stores.

Context Rows CuTe CUDA PyTorch vs CUDA vs PyTorch
decode 8 2.3 us 2.5 us 7.5 us 1.10x 3.3x
batch 4 32 2.4 us 3.0 us 8.6 us 1.24x 3.6x
batch 16 128 2.6 us 2.9 us 8.9 us 1.09x 3.4x
prefill 5920 9.9 us 11.2 us 55.9 us 1.14x 5.6x

fp8_quant_cute - FP8 Quantization (CuTe DSL)

CuTe DSL implementation of FP8 row-wise quantization. Converts BF16 tensors to FP8 (e4m3fn) with per-row dynamic scaling.

hidden=1024 (MoE down projection input):

Context Rows CuTe CUDA vs CUDA
decode 8 2.5 us 2.7 us 1.09x
batch 4 32 2.8 us 3.0 us 1.07x
batch 16 128 2.8 us 3.0 us 1.08x
prefill 5920 5.3 us 6.6 us 1.23x

hidden=2048 (MoE up projection input):

Context Rows CuTe CUDA vs CUDA
decode 8 2.6 us 2.7 us 1.02x
batch 4 32 2.9 us 3.0 us 1.04x
batch 16 128 2.9 us 3.0 us 1.04x
prefill 5920 8.2 us 10.7 us 1.31x

flash_attn - Flash Attention (Prefill & Decode)

Flash Attention kernels written in CuTe DSL, with a dedicated decode path optimized for paged FP8 KV cache. 1.3-2.5x faster than FlashInfer on typical Moondream workloads.

  • FP8 KV cache with per-tensor scaling
  • Paged KV (page_size=1) for fine-grained memory management
  • CUDA graph compatible
  • Causal and prefix-LM masking, variable-length sequences, GQA/MQA

FP8 KV Paged Decode (with CUDA Graphs):

Batch KV Len Kestrel FlashInfer vs FlashInfer
1 740 9.6 us 12.9 us 1.34x
1 1024 8.7 us 13.1 us 1.50x
4 740 17.1 us 23.9 us 1.40x
8 512 10.0 us 25.2 us 2.51x
16 256 9.6 us 17.6 us 1.83x
32 128 11.8 us 26.5 us 2.24x

FP8 KV Paged Prefill:

Seq Len Kestrel FlashInfer vs FlashInfer
740 19.9 us 47.6 us 2.40x
1024 27.3 us 58.9 us 2.16x

Python API:

kestrel-kernels is shipped as an inference-only backend for Moondream/kestrel; flash_attn has a single forward entry point. Pass fixed-length tensors with seqlen_q / seqlen_k implicit in the shape, or paged/varlen tensors with page_table / seqused_k / cu_seqlens_*.

from kestrel_kernels.flash_attn.cute.interface import _flash_attn_fwd

# Fixed-length attention
out, _ = _flash_attn_fwd(q, k, v, causal=True)

# Paged / variable-length (one call handles both — pass whichever kwargs apply)
out, _ = _flash_attn_fwd(
    q, k, v,
    page_table=page_table,
    seqused_k=seqused_k,
    causal=True,
)

Autograd wrappers (flash_attn_func / flash_attn_varlen_func) and the backward pass were deleted — this package no longer supports training.

Metadata

Release files for kestrel-kernels 0.7.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for kestrel-kernels 0.7.4
File
kestrel_kernels-0.7.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ x86-64, Linux glibc 2.35+ x86-64 Details
kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.35+ ARM64, Linux glibc 2.34+ ARM64 Details
kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.31+ x86-64 Details
kestrel_kernels-0.7.4-cp314-cp314-macosx_13_0_arm64.whl CPython 3.14 CPython 3.14 macOS 13.0+ ARM64 Details
kestrel_kernels-0.7.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ x86-64, Linux glibc 2.34+ x86-64 Details
kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ ARM64, Linux glibc 2.34+ ARM64 Details
kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.31+ x86-64, Linux glibc 2.24+ x86-64 Details
kestrel_kernels-0.7.4-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details
kestrel_kernels-0.7.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64, Linux glibc 2.35+ x86-64 Details
kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ ARM64, Linux glibc 2.34+ ARM64 Details
kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.31+ x86-64 Details
kestrel_kernels-0.7.4-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
kestrel_kernels-0.7.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ x86-64, Linux glibc 2.34+ x86-64 Details
kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64, Linux glibc 2.35+ ARM64 Details
kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.31+ x86-64, Linux glibc 2.24+ x86-64 Details
kestrel_kernels-0.7.4-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details
kestrel_kernels-0.7.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64, Linux glibc 2.35+ x86-64 Details
kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.35+ ARM64, Linux glibc 2.34+ ARM64 Details
kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.31+ x86-64, Linux glibc 2.24+ x86-64 Details
kestrel_kernels-0.7.4-cp310-cp310-macosx_13_0_arm64.whl CPython 3.10 CPython 3.10 macOS 13.0+ ARM64 Details

Total release size: 107.9 MB

Release files / kestrel_kernels-0.7.4-cp314-cp314-win_amd64.whl

Download URL kestrel_kernels-0.7.4-cp314-cp314-win_amd64.whl
Size 4.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
bb669d6a8fa82833af23dea2b0ef3810681482c34c8880ae60e22492dfc469cd
BLAKE2b-256 checksum
How to use checksums
3cdf49041f2aa736e626b2d8c4395b446bbe6c2431ad4fd05c3d598edc7e7977
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.5 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
cf802041962e7ea3750c8bb379cb4339d89c606fedc1b0b9281627a68046831a
BLAKE2b-256 checksum
How to use checksums
fbbce4a4ffeb2c2cd3fe815269e9c949253c798b263928c3aefa61d895241e80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 4.0 MB
Tags CPython 3.14 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
40c7a1c51e4b67915aea1ca261cbcafa0827c7473c2ac72e755fc55d2ed50f23
BLAKE2b-256 checksum
How to use checksums
cccd58cf3be2824a98661269ad0efc34b43ee87af465f6c81b4f46a039569d9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.3 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
2a4ea87dabce2271d5639f65ac8d835d40d2153ca3066e34a5e89dea963da582
BLAKE2b-256 checksum
How to use checksums
62c0bbc870c5d7931ea1634238bbc8d7b1c2386152d5d3c35b06e3fd9508500f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp314-cp314-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.7.4-cp314-cp314-macosx_13_0_arm64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
ec0af8b7cd005c7a532cc26cc0f0531df88dab7f89f4960cf759fe256e6dc9a1
BLAKE2b-256 checksum
How to use checksums
6c2fe0e45a6461d5b5fe0311cf87f34962074c58f7aaf56a92191a85c9d9ea95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp313-cp313-win_amd64.whl

Download URL kestrel_kernels-0.7.4-cp313-cp313-win_amd64.whl
Size 4.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
042aa19e79239c79621d151f82aa2e4dedc341a17aaaac0a41bcc3aeaa9f693c
BLAKE2b-256 checksum
How to use checksums
6a0cd964cd0d270bb12f9fcda3a377a7fd36b356e526b86905eb26cac0d35430
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.5 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
51e4ee27fe48a779ad3634496a5831ccf9c21c14101467b9c3411b5aaba29aed
BLAKE2b-256 checksum
How to use checksums
a8875524bb48b94fec04152a92eacd35c400f57563c8f39a3a2d3d96ef9f096d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
696de064f38c745a4c3ea4c8b284bed7a2f44f8bbc8bf6122e8e2e7dc0212a3d
BLAKE2b-256 checksum
How to use checksums
0452c484a885928bf75ef77a5e81a6c957cab1a846e497d5492a763661b2228a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.3 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
a38261e2438223ee85a25a81d6236510a5ed0fab918a8e2edad6bebd145d622e
BLAKE2b-256 checksum
How to use checksums
a7379ba1f591e787ed24f8bd24ed2796ae8d57531e14f494da02e3228a73750b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp313-cp313-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.7.4-cp313-cp313-macosx_13_0_arm64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
6c2bacbf7adfd36ad81b770f37f350ca2ab71ff6da95c5d633131e271c023181
BLAKE2b-256 checksum
How to use checksums
de8d31c6503d2f11ea700b3186e38cb923fa06e5e2b8965bd16df6c3402a95de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp312-cp312-win_amd64.whl

Download URL kestrel_kernels-0.7.4-cp312-cp312-win_amd64.whl
Size 4.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
5f938d8e57a381fd5a34036252c5c9b0d736d156e6e330ff0626748af786494c
BLAKE2b-256 checksum
How to use checksums
34c78a6f9647f22d615de1d7ac05d90cbc79f601765f66865942bd983beebd26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.5 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
50a8b4bea28675db48920e58df0fa0911bb5667e42f83b153e99f3cac367e6a3
BLAKE2b-256 checksum
How to use checksums
e73bd23e62a4091d74e518ac9ce0ca00f4ebdba35d9afc52b8998309f284cbb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
d6304ba011a996a17e4ef34f47d6653eeca330ff3a43d607d536e0a4a82114e9
BLAKE2b-256 checksum
How to use checksums
660a443917cbd5a6ef5f5feb2da09298d068ce70f5d90567d7b92f7d56d26318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.3 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
759c8db277635c7aae25095699020806e565521423759e2b575193a6f84897fc
BLAKE2b-256 checksum
How to use checksums
92780ac96708ca3282613b0c824a7eb12f1fff3d6f13d4868379f218fe940bf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp312-cp312-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.7.4-cp312-cp312-macosx_13_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
1f0e3ac8920529efc19eed366c3eba807fcb7fa0b2b3b71bb7dbfd35229d0b22
BLAKE2b-256 checksum
How to use checksums
7ad3c4de681c3844a7c6fb485cf941328ea408291724ebd8b89c42888df1e334
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp311-cp311-win_amd64.whl

Download URL kestrel_kernels-0.7.4-cp311-cp311-win_amd64.whl
Size 4.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
afccaf2d3b32950839415a440249835c90d8fb75d30566ea8b238b89d744a75c
BLAKE2b-256 checksum
How to use checksums
a1450541f83165791e719f7788f2d1797c642c7a119f1d365696b050e3678aa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.5 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
2bfebe8939c450b72772cf5ff364eb9c58b1cc97cbdb7f27f2e4379a0c802295
BLAKE2b-256 checksum
How to use checksums
249455328aea5c91364110714262d158733e2d7b2ba2233e814ce2a8d2b22709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
b10bdc83860f73a5ab6c6c693327a02a6688a27c3824752362a062ea7d4d0ae1
BLAKE2b-256 checksum
How to use checksums
094d0817c31f684fb10944dc021a9f41f0f83f64875139c4240075de2cc07dbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.3 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
ac45724d1faa300af5994078ef6209322c7c53c8f3c68179761ee126497ef771
BLAKE2b-256 checksum
How to use checksums
bf8d58fcdd2d6fa636a37ce114f5334d0825c0a98d78ac8b3459f38a08158a6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp311-cp311-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.7.4-cp311-cp311-macosx_13_0_arm64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
b5ed831e7350e65b0ae5328c605c4e676fcc024725512a3e1d8430b5bf4dc919
BLAKE2b-256 checksum
How to use checksums
5ad1639bfcb7a6b48c224a73ed730f6c28930ac4194e5240e4d4d16994a14ec6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp310-cp310-win_amd64.whl

Download URL kestrel_kernels-0.7.4-cp310-cp310-win_amd64.whl
Size 4.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e1faf6977c5839c0c9b620748b179c6eb0bcc65d991e58a701600337a24d4245
BLAKE2b-256 checksum
How to use checksums
44907c77273aecaebf337872f47d9d737a2e2be7ccd621938570ef19bca88a78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.5 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
34e1e4e106c5d44f0c2cbf2742e3d4cb6fae89b782dccd71a407ece9c7304c71
BLAKE2b-256 checksum
How to use checksums
e180b40e01d8cf0c353ea6effe03ab6c735f28e70f82346cca296d76f54d51d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
eaa5735a2a49d30279ac0be34810f727e6b3920a1fa1b7cf2f55c2f996fa7f79
BLAKE2b-256 checksum
How to use checksums
646a1a7b9d7872806217bbe3b380bfa056c0915a1370c86f7fa7a4c68910f245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.7.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.3 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
9f7e8364555c21abcc68c90e15b195bb1d78f46a5930fd4e8740add38647bb4c
BLAKE2b-256 checksum
How to use checksums
e27adaf14f227af43aefda4efef74d187ba97d9a75fbd7887cf2ea8bd641f44c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release files / kestrel_kernels-0.7.4-cp310-cp310-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.7.4-cp310-cp310-macosx_13_0_arm64.whl
Size 1.4 MB
Tags CPython 3.10 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
9585e36e661d43fc1078910d9e02639797e02918b10e14e09aba4eabab93a551
BLAKE2b-256 checksum
How to use checksums
5dbf610d1839b8e8fd650e5b7b94fcf152df643f16ea2c80b314d328ceac464a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.8

Release history Release notifications | RSS feed

0.7.5

25 release files

This release

0.7.4 This release

25 release files

0.7.3

25 release files

0.7.2

25 release files

0.7.1

25 release files

0.7.0

25 release files

0.6.2

25 release files

0.5.0

25 release files

0.4.8

20 release files

0.4.4

15 release files

0.4.3

20 release files

0.4.2

20 release files

0.4.1

20 release files

0.4.0

20 release files

0.2.1

8 release files

0.2.0

4 release files

0.1.3

4 release files

0.1.2

4 release files

0.1.1

4 release files

0.1.0

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page