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.4.8-cp314-cp314-win_amd64.whl (60.2 MB view details)

Uploaded CPython 3.14Windows x86-64

kestrel_kernels-0.4.8-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (66.6 MB view details)

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

kestrel_kernels-0.4.8-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (17.7 MB view details)

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

kestrel_kernels-0.4.8-cp314-cp314-macosx_13_0_arm64.whl (858.2 kB view details)

Uploaded CPython 3.14macOS 13.0+ ARM64

kestrel_kernels-0.4.8-cp313-cp313-win_amd64.whl (60.2 MB view details)

Uploaded CPython 3.13Windows x86-64

kestrel_kernels-0.4.8-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (66.6 MB view details)

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

kestrel_kernels-0.4.8-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (17.7 MB view details)

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

kestrel_kernels-0.4.8-cp313-cp313-macosx_13_0_arm64.whl (857.9 kB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

kestrel_kernels-0.4.8-cp312-cp312-win_amd64.whl (60.2 MB view details)

Uploaded CPython 3.12Windows x86-64

kestrel_kernels-0.4.8-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (66.6 MB view details)

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

kestrel_kernels-0.4.8-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (17.7 MB view details)

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

kestrel_kernels-0.4.8-cp312-cp312-macosx_13_0_arm64.whl (857.8 kB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

kestrel_kernels-0.4.8-cp311-cp311-win_amd64.whl (60.2 MB view details)

Uploaded CPython 3.11Windows x86-64

kestrel_kernels-0.4.8-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (66.6 MB view details)

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

kestrel_kernels-0.4.8-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (17.7 MB view details)

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

kestrel_kernels-0.4.8-cp311-cp311-macosx_13_0_arm64.whl (856.9 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

kestrel_kernels-0.4.8-cp310-cp310-win_amd64.whl (60.2 MB view details)

Uploaded CPython 3.10Windows x86-64

kestrel_kernels-0.4.8-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl (66.6 MB view details)

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

kestrel_kernels-0.4.8-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (17.7 MB view details)

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

kestrel_kernels-0.4.8-cp310-cp310-macosx_13_0_arm64.whl (855.7 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c5c59349436e904b6e68045c3fd2562b2d8fa45dde7ef63bdf4a491770dfe11e
MD5 c5cf8304a32322539faba271f4b88a59
BLAKE2b-256 27d39185235f72daa63891886b994d841442ee927903f49855a40b87693db235

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp314-cp314-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 e7d02c730ae35b27a7ab2a6fd9a135f7a4343f034363708697ea2b76a0b10121
MD5 a64b79392a381f15e447755aed0fca53
BLAKE2b-256 a71083cdcb6b289fc201936ebff5e53fa83875c92dc7b26d716bb20552dc35ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp314-cp314-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 f92e220166ca03c32e060bbc564055f9b09c5f9c11f06ef8ed7b9d0f3f243b37
MD5 434bb26f083356549b2c2d3125d75f4d
BLAKE2b-256 12baf316760d767c73b87f699efbde55519777f0f0d61908d2b1816b42e948b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp314-cp314-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 23283633d0af45dc526b082801e74cf11fa4a2faeb8d96cc50c653afd9401bd0
MD5 971433972ee07f2026f1955331712f50
BLAKE2b-256 eb6c02a4887288d1ce93a520d2fb24e069a8a47f2389ccf586c5fded149ffc79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 03090771f3798822aa408f3760f22e6ec829cfe56079116caac95fe8f35819d1
MD5 95a0d6d058587f4ae76f2ae61309e218
BLAKE2b-256 f54085693a8dd13d545ccb644235c16f51c4ec6a1aec3b4a0ab9a2fb9572ec01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp313-cp313-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 3a9d70fc8dd46b2d742593d07a6e27752b3a9221dda78c8b93d38716482d91f1
MD5 9148530e54111353f949ca5ce711f96d
BLAKE2b-256 7f7752bca5b396c1f4752bf8cfc56f2b990b5137a96e2b33112cd25092a5839a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 ae90fd0bae279ad6f9059a0902fbc6867ea4e69d8b2439394ddb1117f625064a
MD5 248b3a959f62708b0e45fba97058e18e
BLAKE2b-256 f185f68ed7be2f4650982a7cde0e84380957dc99c07ba71131576d9f9c06b487

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d542314a910d9ae54258ac947f2f0e30cc3872f2ca28f6a02a7346ab985d5641
MD5 b911521b2007bd63ebe97d5d755d283b
BLAKE2b-256 89226a1df5ea53fc673522b0d9c31caa0602b5aa21c98ca4ce5542c6fc880f7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a4329decf4d45b730ec2ca0ca7e0baf2419db923620988f98910ba2d5a2083bc
MD5 080e55af08c626e52071d8157b71892a
BLAKE2b-256 cfdfbfc4cb1ff919bd4ed0459d4129408ca068074162770f4833eff46a67cedd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp312-cp312-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 4f8031cb075c3d5e3eaf652e75f9d1bbf0c4ef4f6955b6a20b78d7331a961a3d
MD5 2bd199cf5ea5afb6f7f5bc5668d2e1fc
BLAKE2b-256 e22d67249332ced3b3c2304b64e52815594d4278dad9535c36846338066e03fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 72dd3a529cce3ba104fc89bcdf9c227eef140ff41e28166cf2bd39c3f821cc5f
MD5 9b36bae364d33c6d0f9c58efe46526d1
BLAKE2b-256 fe3df1263959e43b28dced1fc96fecde87c948d2be4aebccff2eae62faabf190

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 826ae34c6d2c4ce9092ae0577ca786a34a265a9fd8d94cd84d6c187e6b764c09
MD5 1dbee341b0da9297a657f8eb039c335d
BLAKE2b-256 c3e60fbde4c4dc84c71723fd8ac8ce5de5e506f5ee1a291df04d398e2ef6d52b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3ca4e65907f73a882e5f734a937062f9363a6f6e46587944aed8cd0985f2be8e
MD5 3c17ef92c70853d35673dd8d5476d031
BLAKE2b-256 5ac5bc49c9c67c07700ba658be31ed232ac19dee92dc2993ad2767523946be10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp311-cp311-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1526a467ea1dcef7f28c8cfa1240270bc7bc46c806b23d4bb1715d8ea897d3dc
MD5 454f99b1d49bb5b2338ed595057bf409
BLAKE2b-256 5ba977e63042e59c08bbb119142e6774580e8ddcfd6a3c08e9dc98539c66e6e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 252fbfdbf264f0efd21ecbabd63ecf0ad2df09e962a16171118da016c6640f2a
MD5 e0c971178f637fba8a584e3266b06185
BLAKE2b-256 adce31eabb20f24a6aae9cf62e4eac7bc2707eeff0b2a8020834c9d898cf4fee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d6a54d385759fd3263eba586df20e9cdb72868940becf2bf05afb5e5bfe0c638
MD5 8e649b0a33973de3a674e4f12419c4db
BLAKE2b-256 adab18a3a0475dd5feba874b4f1bb29f8f5cce8680b8d138aac66cfa2967066b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d882fc04762ed42f1025466db69d9a09e9e98b4bf5a1172be5d8ab8be7fa9285
MD5 3ccdc682914c6c7e8ebbe78b4041cae1
BLAKE2b-256 f689f82480def98530501a7b11170d0737dbb90dfecdea08f93ee87da1d6199f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp310-cp310-manylinux_2_34_x86_64.manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d170590e133469dc6da13fa4f1916ad691f30291923b6f95ede3f13922b0108a
MD5 f49521b1c45bde83374d6dc2c11bc4be
BLAKE2b-256 a3670fe910b57b3c727ddff1fb1a1f6677e52bdf8896e31ac6c0d88ba5c07afb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp310-cp310-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 1e0e9a8cbcc38de5b02495dc4ecba9c747099ad8b5c37188bc7d0c996f7053f6
MD5 c4a42db7cf179f0db5389b30135375a8
BLAKE2b-256 57064f457e13b85d9fdaa1c0857bdf3c1c8346ab058caae91239fc3256aa3097

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kestrel_kernels-0.4.8-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 88535bfccfae32bb4bf3b02c26a2c125f419c3fb101c3fadf87feeeae452bd13
MD5 5bc9eb425d09af2b682538f14858ef3d
BLAKE2b-256 f1f6149f18c7ad856697af86c589d887142dbafea22a35a2bb5668a57fec3d75

See more details on using hashes here.

Release history Release notifications | RSS feed

0.6.0

25 files

0.5.0

25 files

0.4.9

25 files

This release

0.4.8 This release

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