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.

Release files for kestrel-kernels 0.6.2

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.6.2
File
kestrel_kernels-0.6.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
kestrel_kernels-0.6.2-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.6.2-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ ARM64, Linux glibc 2.35+ ARM64 Details
kestrel_kernels-0.6.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.31+ x86-64, Linux glibc 2.24+ x86-64 Details
kestrel_kernels-0.6.2-cp314-cp314-macosx_13_0_arm64.whl CPython 3.14 CPython 3.14 macOS 13.0+ ARM64 Details
kestrel_kernels-0.6.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
kestrel_kernels-0.6.2-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.6.2-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.6.2-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.6.2-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details
kestrel_kernels-0.6.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
kestrel_kernels-0.6.2-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ x86-64, Linux glibc 2.34+ x86-64 Details
kestrel_kernels-0.6.2-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.6.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.31+ x86-64, Linux glibc 2.24+ x86-64 Details
kestrel_kernels-0.6.2-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
kestrel_kernels-0.6.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
kestrel_kernels-0.6.2-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64, Linux glibc 2.35+ x86-64 Details
kestrel_kernels-0.6.2-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ ARM64, Linux glibc 2.34+ ARM64 Details
kestrel_kernels-0.6.2-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.6.2-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details
kestrel_kernels-0.6.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
kestrel_kernels-0.6.2-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.35+ x86-64, Linux glibc 2.34+ x86-64 Details
kestrel_kernels-0.6.2-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ ARM64, Linux glibc 2.35+ ARM64 Details
kestrel_kernels-0.6.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.31+ x86-64 Details
kestrel_kernels-0.6.2-cp310-cp310-macosx_13_0_arm64.whl CPython 3.10 CPython 3.10 macOS 13.0+ ARM64 Details

Total release size: 99.8 MB

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

Download URL kestrel_kernels-0.6.2-cp314-cp314-win_amd64.whl
Size 4.1 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
5d68e33f710548cf4852cab394a7f5a14f0e8bb981faf593fa956a9134c9ee5c
BLAKE2b-256 checksum
How to use checksums
6155633584dd9624a9a4e352f5fae082de0eeb5f3917408f4634356342395d45
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.6.2-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.0 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
1e6a13bae1df29da935dce86df73ee8257e4f2a49f1fa3645d08f9bd7a63c486
BLAKE2b-256 checksum
How to use checksums
bf22f267958b616fb9b97284bc731c6cb9d991842d9b6f0978661cb27f1042c1
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.6.2-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.6.2-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.7 MB
Tags CPython 3.14 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
851204727810b7dc10fb76229eac49fd0f78523ab18f31bdc7c50cdd5e68944c
BLAKE2b-256 checksum
How to use checksums
968dcc526276c00942b84262a39b1c02de3b15fbcff7e13c31cf79a5ad5e1aa0
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.6.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.0 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
2bc8baa68dfd938f0a172a5e8688f4111ca977025b2e7a97eadcf2b3362eabf3
BLAKE2b-256 checksum
How to use checksums
d22700a119a666b69d9379e0a3d0672ab277933ca838235b4c9e044ded695cd8
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.6.2-cp314-cp314-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.6.2-cp314-cp314-macosx_13_0_arm64.whl
Size 1.2 MB
Tags CPython 3.14 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
1679217d88fddecc29ae7deb421a7db8070adadcd0c5b10bffa32f8fe3ec6e06
BLAKE2b-256 checksum
How to use checksums
8463baa397122b10d9e86944d975dbe91ada2c67ecb7b332fa99e17517282cd3
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.6.2-cp313-cp313-win_amd64.whl

Download URL kestrel_kernels-0.6.2-cp313-cp313-win_amd64.whl
Size 4.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
aa645ec7e179f098ccd6d7f133f2dde0bd5ef0f2d38292ff4585d951319baae4
BLAKE2b-256 checksum
How to use checksums
e29fa3f8875c562d1a3eac42a8fc80017b348a99e0e41ab0a0549bc4f1d13fe5
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.6.2-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.0 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
8c3d3d4e347c50f01fc40654115575f0bb53489871f020f20a3b99bff3ed9fd5
BLAKE2b-256 checksum
How to use checksums
7a6e027aa0d7cdf161a2bfa96977cb89ccb22f7163ebd860206d9d73b7548aaf
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.6.2-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.6.2-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.7 MB
Tags CPython 3.13 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
b989a17a21bfd403e57032f435a3dd2e2643bec21f99ca44ed2ab3db282449a0
BLAKE2b-256 checksum
How to use checksums
5f8b00cc9dff73a747b54e2c2145ee0912347987f69cb350cc8ac688c22e845c
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.6.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.0 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
ff63c43ad51a81f7ba34ad22b068487beb54511a7d7de142d216834a73258e2f
BLAKE2b-256 checksum
How to use checksums
dec683a3f91e97549c20d10954f3b438c03a026037b9b659d8094d657efcdb96
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.6.2-cp313-cp313-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.6.2-cp313-cp313-macosx_13_0_arm64.whl
Size 1.2 MB
Tags CPython 3.13 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
1fa4892f0003427666ea1a6a3e88a6c2bcfc8ba2346a891307bafb33fb140311
BLAKE2b-256 checksum
How to use checksums
d83a06fcfc989c843a62740bb8bd5c1d7b045f860f586522273a030a88a34b6d
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.6.2-cp312-cp312-win_amd64.whl

Download URL kestrel_kernels-0.6.2-cp312-cp312-win_amd64.whl
Size 4.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
558ab4e73d4c0a190c3dcd23abb937aeebbab2f4f50eaf73cf5428f014a8e453
BLAKE2b-256 checksum
How to use checksums
4c2ffc593ad07e76ac7c2bf6cc1701f0dd78c17c5de92d603b197ec3c41c1b35
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.6.2-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.0 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
1be44c7d37f552f0164065f94031f8d41473ecb6b31f15458a7e1b1ffb189fa4
BLAKE2b-256 checksum
How to use checksums
730ccd6565f96d7e59cff45c3960004145a71b71fee0d268bb783e689183dc28
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.6.2-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.6.2-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.7 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
9f4ccd3b48de80177caa07379879d98fb15aed549fb1aaf00400a55166829d86
BLAKE2b-256 checksum
How to use checksums
c07586be7a4d339d4f67a507ce4b395814953d0e6ab314a772d61066f2b55ac9
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.6.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
4133a7857d9ad2d8d29a80b14bfa61f27f2262f651b7934ab9c293380622aa26
BLAKE2b-256 checksum
How to use checksums
eada93554c0792e4d1c59a0383b0c4b22ae140be44357d31b2f6fcd00084be5b
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.6.2-cp312-cp312-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.6.2-cp312-cp312-macosx_13_0_arm64.whl
Size 1.2 MB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
231629a1d053b2890547325e3135ec1f0d8e64a59b72a460c9ef4770bbdcd24e
BLAKE2b-256 checksum
How to use checksums
b5f5b3de8c46a63af004b9f0917010bd44331a859f4dfc68b4bb3f0d2fd14fdb
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.6.2-cp311-cp311-win_amd64.whl

Download URL kestrel_kernels-0.6.2-cp311-cp311-win_amd64.whl
Size 4.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cb13d4f651c4ffd521fe9b8780a4f494d397db4b4eaa51791f7a4a8fc076a17e
BLAKE2b-256 checksum
How to use checksums
82ff4a6c8fe0d6a049e39c72e3392b48427b356b79cab74f170908b8ba22f08d
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.6.2-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.0 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
ab4b675e77c0763533d7a4e9b58cac171a5fbdf2bd9bc0ec0747a887068cbb38
BLAKE2b-256 checksum
How to use checksums
640dbb86774817465ab2445160c297389ab160c8e47214b1798500427b281de3
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.6.2-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.6.2-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.7 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
8992c309b6566a69e2b6a97be4da18b229174b601f0341e546d2be576b737e1a
BLAKE2b-256 checksum
How to use checksums
570b94be90945a248c7997144e4c086a088f06d80d398ff1b948cca2591bf4ee
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.6.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
3c56d5c5401033a4f8168509d9961e7eb281c39dd17e65a879672848ec575558
BLAKE2b-256 checksum
How to use checksums
ffaeb86781dabdad59aae0b1ddd3e2b9dffcc9c8f1ebd10d3edaa973133ca4f8
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.6.2-cp311-cp311-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.6.2-cp311-cp311-macosx_13_0_arm64.whl
Size 1.2 MB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
25aa9c6e02fcca0fac5a0d373e6cdcda6bdb588ca5377e785d5a32f39063a646
BLAKE2b-256 checksum
How to use checksums
b26552539dc546bfe696213bbde64aea4aa437fe8fbe89c339e82bfad0e789aa
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.6.2-cp310-cp310-win_amd64.whl

Download URL kestrel_kernels-0.6.2-cp310-cp310-win_amd64.whl
Size 4.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
221ab233eaad68d4e2f605e7cf5a7607344160a7a2acd5afa3ebfb48cc513eda
BLAKE2b-256 checksum
How to use checksums
3ca698f1961480649510c9e031152541fda78761f729929c4c39961ced94ad13
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.6.2-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.0 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
de6aed0256dd688c4f829604144bbc424fbb6f594919a53b304ae40980a36244
BLAKE2b-256 checksum
How to use checksums
8397099815149c10d5f6e3bc81e6189497e93992285b7e5f7a4bbd6888b4c6f6
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.6.2-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl

Download URL kestrel_kernels-0.6.2-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.7 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
9c275d1d8bf209e9402a5cba56dd7fe6fab28666091adfe4242527355d4c4398
BLAKE2b-256 checksum
How to use checksums
d870d1f9cb6eb3bce8dab6b7847be471cc404dc504a171aa281dec1a92b27edb
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.6.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl

Download URL kestrel_kernels-0.6.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
9cc8cc8ef41bf6411a1c0a1aff60c22e3c66adcb58ea2fe95588d9eaf58c1e20
BLAKE2b-256 checksum
How to use checksums
88179e715f612b1d39123eb3a9b1ff989da3d794c60e1e8fe5da9cb9a2d98412
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.6.2-cp310-cp310-macosx_13_0_arm64.whl

Download URL kestrel_kernels-0.6.2-cp310-cp310-macosx_13_0_arm64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
0c06cf1917ad07eab758bb12877421c94854d620b0c4372c43bdd772582f5047
BLAKE2b-256 checksum
How to use checksums
2a6320655240dc145e2aae9dfcadec131aadb89c18df78bf2713e83e8f09f1eb
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.3

25 release files

0.7.2

25 release files

0.7.1

25 release files

0.7.0

25 release files

This release

0.6.2 This release

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