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.0

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

Total release size: 105.0 MB

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

Download URL kestrel_kernels-0.7.0-cp314-cp314-win_amd64.whl
Size 4.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ca0e311d8e86aa6346764dc4ac6a5e227bf106c52dffca9b6db2c7e6244e50c0
BLAKE2b-256 checksum
How to use checksums
0609b4e643494433efde79c6cf82f084e3afac0dba972e0dd4770e1c4c7d7963
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
6fb93ca0c85b2989142a451b0d7dbd247307fd0692b6e7bd4f912e30f591fc95
BLAKE2b-256 checksum
How to use checksums
3a3799be54d32ce8435f95336fe0fadce175c9beb9f53db52f81e7956c7b24cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
44651a003b3e6a43f0bd09372b16f48a7f4266e50326cfa666b2270362d08748
BLAKE2b-256 checksum
How to use checksums
841c3e3d4e67ce2288a1d9eb888aa3e0422459265aff531ad45beb900ba5b2d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
597aa5891ebb795f9b4c2d95db2b7ce86f3476f7344fa2f00a2b609469a91922
BLAKE2b-256 checksum
How to use checksums
c96ccaf970e38b97a6c873a57cbca68d1c08665aca34d01ff0d955de9cdd55a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
7ed54edb9ecec3c4d0f48608e45dba550eb4271c3b75b7473261d1ed87df8c01
BLAKE2b-256 checksum
How to use checksums
0aa86a667c46cd73eea977a142f923c6e1106fbbf47975a32fb36a65ed7bb8a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-cp313-cp313-win_amd64.whl
Size 4.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e765ee6ed2390968adabc2c90508bd16e9cced4e5d440ca2b731b9ac02b6e716
BLAKE2b-256 checksum
How to use checksums
da43274f48f29a1441a40b0c3ae216cd9341d606a7e4d380f01d44b89d0c63df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
ed080d8bfcbf7f254f085e6182f94f67af6bb11fb60e785ef21a8744292ea5e7
BLAKE2b-256 checksum
How to use checksums
b67560c1a89938d78a8342a4aed447f10dadd9aa3a6d4a104f18912f1696fd66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
0e8ccb31642b2ccdf31886c4304919c59c7888d414fc73f55ef90a7c91137168
BLAKE2b-256 checksum
How to use checksums
cb9f4c987cf8f5187ad8470e5140128ce6ec5a2668ac6c817f718de6c73dec9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
357666bcb1825c3859f9b6ecbf30957237df90911a58cba98246498655c00961
BLAKE2b-256 checksum
How to use checksums
6cd4a1a7816508ddab1a3c21b364a2bf766f83ce1f6777ca8aa2b0c8adb9e584
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
e16f00656b2e4550fa713f5d6ab64f12973d47d523d5fa951d69ec605b92342b
BLAKE2b-256 checksum
How to use checksums
5715380e231b1f255067fd09f7e49ef01f86b831d36bbf102df57f69ced31217
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-cp312-cp312-win_amd64.whl
Size 4.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a06c55991693b60105ee45bd7ded86bdb783bf3add970fb6aea20bf8f5aa165d
BLAKE2b-256 checksum
How to use checksums
46839727b7526fd2658b41a8e1dc3f2444cecac8308a700edfce3e03a0f1dc29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
2f6407e6e1ebd4be711fd4dbbd4016f639f39ced0598f44fee80ae053d84ea57
BLAKE2b-256 checksum
How to use checksums
da364efdd55181c7dea86fbe8710d930ac5c0760f114bf698215ef0ec5f6982f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
b0ced662c40bdc065927a1cf913d36528af15e3c9ea10e9fdc580fd9f9e80d87
BLAKE2b-256 checksum
How to use checksums
55816f8a3a341ecd0edb5ab5965af7dd195f5f4f2335aeeced6900742b44153a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
8b1e7edbc1633c988fc8be37ca2f9f14c62076e1754bc9d80d872f941d1c8d27
BLAKE2b-256 checksum
How to use checksums
23c07777b160c3ac0a6c646b4f04f8202a917a5eec870db28d964637b6177d1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
be2616f72a1920ba047fa938575d20fcbbc2eea4b627262b9e487494ec4ab2a1
BLAKE2b-256 checksum
How to use checksums
b5dd7c1815bc66f23d9d27b105093e25cb3312a518f74d75a09a67ec5c22f213
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-cp311-cp311-win_amd64.whl
Size 4.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
7464472ba55fbba8754fb0f8f7ae5fec135aecf83751f159b621a599c7a56b1e
BLAKE2b-256 checksum
How to use checksums
5f8cc3bfed5cd387e2883389d22c7275c1316ceaf91e31f3239f36fdb80f759d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
86d9ed0ba15b97eee0d07f809250e115163f0f612ccef568ed4965a514732fd6
BLAKE2b-256 checksum
How to use checksums
5f5900d62b1c12c08eda67a5db37b3736b3819a0dde0a783b221939b22a2b438
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
3052ca28525936728e8af7f8443048ba3d964231285e329487fdbbe04d6be09a
BLAKE2b-256 checksum
How to use checksums
9203da9b2c250de50aa94e7a56ca157a5c919d7a6cb5d47fddc5362ff84044fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
fdb5fa1aa0440b23553c447c32d69fd73e6a1981e3b8c1a164402bc5b40cfc0f
BLAKE2b-256 checksum
How to use checksums
6a00107f6c1833f7fac683ef8b372e243ce5b8297c590d713e308d2a8b465fa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
d8fd8d095ed865db49f41ffc355696942f85bf038b84a887a0271dc81a40bea0
BLAKE2b-256 checksum
How to use checksums
84d106ca10b4c69f4d0b0a8835f8fd3cdfa7c9054269f4b0de74fa9f8aabacd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-cp310-cp310-win_amd64.whl
Size 4.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
53e27a07c4932308ad60b7cd94717ab9345129cf5798082a4ebfcaac65bfedd0
BLAKE2b-256 checksum
How to use checksums
22014d07066b1aab847aced70633bd9bbfac17fe1862cb3982cec63e6fe8c656
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
53d97ec42832a2c5d42b0487d793fd299a048c076980ecf9f56c3d727817a418
BLAKE2b-256 checksum
How to use checksums
2f0af08dd846340497172fd55ba13fedd2a9ef6730cd9cce36c5d51da996ecc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
95e8d1d96fca48de482ee99ab9a25dd75b49039928fd1b9f2d1d18a794b20c47
BLAKE2b-256 checksum
How to use checksums
662cfdc09655ed960b24c0e5a983f4c1c0b8cb56c2bcf500befa1cb8a675cc50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
f788fec7fd3134041e64600644f3b844fe7f6c86614e43813590858fa03163d0
BLAKE2b-256 checksum
How to use checksums
1ba027296e8cafed05a853d3f37a9f8dda670a630213ed6078fe572a0f73f6ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

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

Download URL kestrel_kernels-0.7.0-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
af0bf93b19de0ca056f84656722c2c0a8e533e79197c5057694cf0aa409c7867
BLAKE2b-256 checksum
How to use checksums
ce123ced978d0361d3aa55f821d7181f5d1ce2884080f2e8dfba7477f443a124
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

0.7.3

25 release files

0.7.2

25 release files

0.7.1

25 release files

This release

0.7.0 This release

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