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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kestrel_kernels-0.6.0-cp314-cp314-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.14Windows x86-64

kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.31+ x86-64

kestrel_kernels-0.6.0-cp314-cp314-macosx_13_0_arm64.whl (985.0 kB view details)

Uploaded CPython 3.14macOS 13.0+ ARM64

kestrel_kernels-0.6.0-cp313-cp313-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.13Windows x86-64

kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.31+ x86-64

kestrel_kernels-0.6.0-cp313-cp313-macosx_13_0_arm64.whl (984.7 kB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

kestrel_kernels-0.6.0-cp312-cp312-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.12Windows x86-64

kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.31+ x86-64

kestrel_kernels-0.6.0-cp312-cp312-macosx_13_0_arm64.whl (984.5 kB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

kestrel_kernels-0.6.0-cp311-cp311-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.11Windows x86-64

kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.31+ x86-64

kestrel_kernels-0.6.0-cp311-cp311-macosx_13_0_arm64.whl (983.7 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

kestrel_kernels-0.6.0-cp310-cp310-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.10Windows x86-64

kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64manylinux: glibc 2.35+ x86-64

kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.31+ x86-64

kestrel_kernels-0.6.0-cp310-cp310-macosx_13_0_arm64.whl (982.5 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file kestrel_kernels-0.6.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 dae07da38902735b116b476415670256bb2b0ce3de1b817741c1c6430d4f41f3
MD5 417940d8b83c6c8eb1f978292f816417
BLAKE2b-256 0d2344a6f6f3be708c3a12d48332b73f4cb51f0c58fa3453fea5560a334775bd

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 da3f06d355547da1f3e4ec4372940c49637690b83d7d3f636532d7d8df90e141
MD5 187963a0fcce726b129353a4b0ec80a3
BLAKE2b-256 245598b439698b73f90bd64da28448bc4f51d9f495711b7e283e4221a142ba96

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 b6d3128f67ac1e728a4dd15aa427f274d43b83aad25709074a96839ab2dc1e2a
MD5 675df8d5c42d0686d83edcf86def25b5
BLAKE2b-256 9641a9769fbd4dbadef8f8b9d8f84d07a4ecedd6c47c8699575140164d8146d5

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 1dc518a00e95e4af84951e8a1f6d5f2cc4b21d5f4b16dbda3d5b9e1827b05ce1
MD5 bec12e037908f1dcda9a82a53cbab090
BLAKE2b-256 c3cab8f1a66d6f102fc8f801e5df70dd7a0d1e82086b2a37b87851f989a5fe31

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp314-cp314-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp314-cp314-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 41614a7799708bdc3a1713730a7745b8e6cbdffc939b255d994702afbe618c6d
MD5 94d3cb7250e324f013d0c3614479e90a
BLAKE2b-256 da5469ea5613bf10b82b98512c66e3ef0eae11a7abcbaafd8296b34ee498f5c0

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2c9b53d2333d6ebc86b0590eb580207fc97e39aba4486b83385d8054e227b9fe
MD5 ed5c10aad4f4c0602780df8b14dc1b35
BLAKE2b-256 9ac78d27b222c3009c9ba21853155cc25ad2511ee2e34d057dd84396a162e0e5

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b1341c90e03ef904a85ffcc203d6774aa8a953d638b70ec1a99b50290c9a713f
MD5 819573b7cd47cd4078840c515cbbba34
BLAKE2b-256 fce65a854a0dad8a5167932bfc64209d3946bf98c2ee2a0eb2eb627fe3503be0

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 228c2a7a1ead8627e6659576027f01a23b5bc871eddc4bf26c52e8653f064d0c
MD5 303cffe3ec3123b6bbf5e26503c8cdb1
BLAKE2b-256 7ecde3fa685d216e64222b5d5c965d482059f1df4c6ecfdcb64997272adf9a91

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 0e08a266f4e6bbb5f5836ae22060c354ebf68044b53f09dfd22232ab865d835b
MD5 7269150faa724212543e9d892ddd128b
BLAKE2b-256 b17aa732cbbd400eca61873f531d44938b6223bc0edbabb4b75633e33936f4fc

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0b3c5f8c1cdd5867ac68d071c2570814dd684c84f5c16db8e58aad99988d3c7a
MD5 9a8139ed6d842367dc848e2d353cb580
BLAKE2b-256 bbbdb3f4781d3f39a6f5b8e2939ae98653151af89dc2920c17d1d1b790963abe

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6b1875dc8dc79689272513159a9f390d87feedb84a4fd6af22d905af20426569
MD5 2ccfca27a270ec566efbed5d2a20ced3
BLAKE2b-256 92f777143cdee10fea021d3b1ce0424a56b95e5a171b0bb6f4d3fbfcc309be14

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f354eeec9a76e7e2cd44a7a8d4b8b5f060ec03624fae9441bfade2cdda9a32d0
MD5 caea52bdfab76bb1eb6e5932dabe1ada
BLAKE2b-256 d301be91c3c37f4f6c993dbe32085186e2f613a531484327c5de04d740182454

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 6a20e05b9e55c1bfbbfc8f46564156ab85b160e42e61aa4ce68608cbba179c84
MD5 3806959444169962673bbf2b73455a6e
BLAKE2b-256 4e66779d3bd28af9b8e3c2de99030cef3e53f04674c9a33e11f7e492d7113708

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 ebc771bc75936a7cc4aa3c3dc11297cf65e213be1f80e932d29482216d770071
MD5 9c38e3e25ddfe1a312f51eb09b81aff8
BLAKE2b-256 38f3fd910712074d5dd6598dc527e2b064b1d5a7f6e276037ace5645803a38f6

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 2bf869a8166f5c28901989feb07695c33b495451fc6d4c444f5064eb8cd9c6cf
MD5 76e47b1f3889d52ca11db998fb5a6957
BLAKE2b-256 b4d0080c3d57b15df8302cf1e5458d94c64ec4b942639b563ae5492c6832dc39

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4c2173929e96372e04b1dea13984df3fb93d3645a01677c22cb2152632067941
MD5 a2d29a88fdd5204fafeca76fa345f3e4
BLAKE2b-256 1dd904c2643ae582032ce79ea71399245fe57c4e0618e9bad30acbb89d14a41f

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f25a053a3327615fbd54dee866656d26d69872d96bdde730402dda710ab6452f
MD5 f5afc114a9c723bdce7a4db3cfb3eb9b
BLAKE2b-256 8c78672773fa5617d33305fc0faf7910afc5de7a151d0bab5c6ec21b1d8f876b

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 075b376ab904e22270ac720840468f0a44387150153f5560bf1c8597d08ac1f4
MD5 7e7bda779e34d727cc77f84f67ba6aa7
BLAKE2b-256 4e73f7c60dbb19334c3be90acfc082267aecef9d450eeb92096d7ecd28deff6d

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 04b267b1a3bfc9921b38123c6eaa6f8e227ebd06e44ad3019f84d960ea016fa3
MD5 c44ed8b0a2cf5c2191edc3391843b622
BLAKE2b-256 e0e4eb22615e83b15eed8d30be26826086f8451cc1a262ccc1f1744f93bc367c

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 588f4d55ed02c24716fa1c1ec99d299395bf809e605b653ccd489727500601f0
MD5 b6931e30014cc72015ac355769065ba5
BLAKE2b-256 4134b323c85191296de5ac9dcd93ea4dd97b3e42a17c692466008487c167c4c1

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d7dd1d0418e44fd7e4b04fea7a0601cfe85457cfcbb0929f5eb47195a6202692
MD5 3dfd8ab8006dc5c7c1f2004bb9196dda
BLAKE2b-256 c396d4e5060af905d3e4bd60758ebc40a94e221a30f8e2652af663f1c9bd7bc9

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 7f886ca038acee5538db134962ba59e0bab53afc6ad81eab89b8c363b028157a
MD5 9cbebea8bbb4d907b905a6051c9d3963
BLAKE2b-256 25c79362f2ed24aad83ab6c232645c04f44d3093d6845919f7374f41040c67bc

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 53590a92f83d78c3c0298e872b6906e8639c04d8fa4e0619a44173afbda93c74
MD5 a40c628304b216fd82f2d44438c3d090
BLAKE2b-256 2d0bc18462e46249096e412ffe8dd56d918defa66998db62eb0fdcd7c5a2c9de

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 7fe7ef8352c72a24d2d9f59e5537c4ba27081670ea9a4cd159bf86f5da358b11
MD5 ebfe1c4e47910df3e377d10c6c44dbbb
BLAKE2b-256 e6037c1e765cd91a2caaabe033a0735b180370fb0af4bc8ee7b590e955becdc3

See more details on using hashes here.

File details

Details for the file kestrel_kernels-0.6.0-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for kestrel_kernels-0.6.0-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 580721617cc691f2b6d467ee17ff7f371f57c44ac45697fdf0212002313943b9
MD5 40759b13dc1c17f63c539fcd9c3875e3
BLAKE2b-256 aaaf21e1671204f9ec6bd3b13e7139a2ee4870ef4b69126f1b2917636fab6063

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.6.0 This release

25 files

0.5.0

25 files

0.4.9

25 files

0.4.8

20 files

0.4.7

20 files

0.4.6

20 files

0.4.5

20 files

0.4.4

15 files

0.4.3

20 files

0.4.2

20 files

0.4.1

20 files

0.4.0

20 files

0.3.2

20 files

0.3.1

13 files

0.3.0

13 files

0.2.1

8 files

0.2.0

4 files

0.1.3

4 files

0.1.2

4 files

0.1.1

4 files

0.1.0

4 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