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

Total release size: 105.4 MB

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

Download URL kestrel_kernels-0.7.2-cp314-cp314-win_amd64.whl
Size 4.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ac9ebdf76e144bd910b2e9edcfe6c746ee931ef9cb10664ac83bf4b3b2b49003
BLAKE2b-256 checksum
How to use checksums
bcce0508b7bdb9b03d5e81099a6d19f1a0975d4937f1f0e4704a68a4bd88d589
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.3 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
5cc38b38d1e5f57bd81ded361fb85db61abc72dbfce1b40746e1dc0fdfcd0754
BLAKE2b-256 checksum
How to use checksums
9e06701bf60a18e052c7ef9bc0da9a371f8807152ebf0a325b67bbe3f78af01c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

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

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

Download URL kestrel_kernels-0.7.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.2 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
6683d91b7aa2dcb3dfdc2e842085a927f17b92c9759b2bf986af6ba8c3785408
BLAKE2b-256 checksum
How to use checksums
22c16deba6eb64d9458ccde7f0a3a59725db36fde3d40195ee329c8336f25e71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-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
604f839bab7a6ba1925d7fce6fcda5bc208074695108d1110cf73531c999267b
BLAKE2b-256 checksum
How to use checksums
7813869bdd7a4578cafbdf5ff4ec6621332a1d91a4ecd06ec99f7ef58a1b529c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp313-cp313-win_amd64.whl
Size 4.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
077f2c40bb138eab4f1c0af75591f00f3b3bd6a032d36f0aa4f7a107c5f2e824
BLAKE2b-256 checksum
How to use checksums
6dec05d2dd1dd505e413ef5e64de44770d9d0f5eaae56dd1dd87b7eeb08416a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

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

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

Download URL kestrel_kernels-0.7.2-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.9 MB
Tags CPython 3.13 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
0763ed7160643ebb212d450a3bc9a73bd3bd5a9d779bde6330b3108c3c1fc49d
BLAKE2b-256 checksum
How to use checksums
677fd72110e167ccde8f7a1696dc084de873940a839ce9e376163f89b8be6a44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

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

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

Download URL kestrel_kernels-0.7.2-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
38663a3061102cba5fcce159b55e6a4eb67563e21c0afc6283d2ea944a3e99a4
BLAKE2b-256 checksum
How to use checksums
d15aa8a045e37f752d326876c40fef161c9ba7ece364d0969be94e3a6888392a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp312-cp312-win_amd64.whl
Size 4.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e7a3cad95313e3cdfc693ca2a13e75631f8ef08cb24eb28efed26f7fc17cb81e
BLAKE2b-256 checksum
How to use checksums
0ebb99406b91ce172e1868695ceec5fb81231940c5b8a3cbc6e75c270f18aef2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.3 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
14491cbf2ddb80dbcc2eddc568eb5e2a0dac3742e23c809d4837ca866d1172df
BLAKE2b-256 checksum
How to use checksums
5f1a7c852c4435118089071a0da0b8cd4ab563b9b3cfb79c5e805fc662fb090d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.9 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
3e3eef3e875d2cbf2eb1d04df12cf4060c3a5adfceb17e87905663c49fcaf7e1
BLAKE2b-256 checksum
How to use checksums
bae6dba0b347c852a2ae73ff838efc9a1d23cc392e8f8102657a67aac6cd996a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.2 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
5b7bbcfbdfe7510d7b347d198b2a9a6d336139c76a4fdb2996977c43d0a8601f
BLAKE2b-256 checksum
How to use checksums
8d35be42b6d7ef481467ce866c32dfac632e3db7302eb8bb32b0cd4ddbaf91a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-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
27b7703b8d3185c7caadce4b8bc949cbb14998e11d3b4062b16a9bf6323acc85
BLAKE2b-256 checksum
How to use checksums
744883392a19551a8213ae71d303fab384dcbb0998c027f9f1bbaa21cdfbbafd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp311-cp311-win_amd64.whl
Size 4.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e552f19a21262b402fb7d5db549283914b4b61df3fb72f6b1baf1c7dd9995972
BLAKE2b-256 checksum
How to use checksums
8927f482d54b6393a858dc67fa6543892d8626f74b9161a550a116e594da3976
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.3 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
c3b0fcb022104e556e4ff00e377b2b12795cc0e000e15516bd67140c6030ad8b
BLAKE2b-256 checksum
How to use checksums
d339703d5c3b9adef518e69a1ef18e785ffc14b546f0d326256ef76eecb50932
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.9 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
40a2eb859551a727714ecb773b580d4d02867deae6fa991df3c5f6052240ec01
BLAKE2b-256 checksum
How to use checksums
9569545480657c198973fb7f6d79ffbcff947e1cf7cb744ab31951ff1c245602
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

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

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

Download URL kestrel_kernels-0.7.2-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
10b0267c8f128c00f4893abebb5f08a183513230a3278e346f82ba5b480b2d78
BLAKE2b-256 checksum
How to use checksums
7573877fd052f9b99dd85d7a1bd4980d21a5f2b4bbaefdeba30ffef031fd483a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp310-cp310-win_amd64.whl
Size 4.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
cea31888c777bedf7715eb9b72bc5634c38335290cf0e2b72e9a232b15634a32
BLAKE2b-256 checksum
How to use checksums
89d16cebc81aef836b05372df556c0991cfc13478838aea6ae3f187288a788e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Size 7.3 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
66032f24fefe8d61b7675e48562381e0652e7e8054a2a021a2776a09384af95b
BLAKE2b-256 checksum
How to use checksums
09030d5a141fd8cc17e6f20ea004818a83718aa4f59a331388090fdee344f4cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Size 3.9 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
2017f6d5a4ceb5df060ebfa9fb6d3701c7417d02683e022911725de929972090
BLAKE2b-256 checksum
How to use checksums
d57cdb6f818021539c36721a2c14caa90c90b32ed371cbc647d00d1ee2f9b2c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Size 4.2 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
53487a4c0ba4f2bba0f913e2c8917221c2951d90bf92bcbf3f084e5bc1c6d228
BLAKE2b-256 checksum
How to use checksums
ee8a073abac30274d3509d2be490a45b4a04ea5276a230bf05108f558f1c638f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

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

Download URL kestrel_kernels-0.7.2-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
49cbda19ea990e2b06f76be13750d23aa3079734682d170d3a667588d96d1930
BLAKE2b-256 checksum
How to use checksums
6994fed8a1b36d595fc63ed1daf9534ebb5a4a1a737044d66438819c5052b10e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.8

Release history Release notifications | RSS feed

0.7.3

25 release files

This release

0.7.2 This release

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