Skip to main content

rapido-whisper

rapido-whisper is a Whisper-only inference engine for NVIDIA GPUs, derived from CTranslate2 4.8.3 (MIT). It keeps the CTranslate2 Python API for Whisper (import ctranslate2), so faster-whisper and CrisperWhisper run on it unchanged.

Its rule is bit-identical outputs. Every change keeps tokens, scores, no-speech probabilities and word timestamps equal to the original CTranslate2 on the same GPU and cuBLAS version. Speedups that change floating point rounding are opt-in or left out.

What it contains

  • Whisper only: encoder, decoder, generate, align, detect_language, and the Transformers Whisper converter (ct2-transformers-converter).
  • CUDA only, native code for Ada (sm_89: RTX 40xx, L4, L40) and Blackwell (sm_120: RTX 50xx).
  • Compute types float16, bfloat16 and float32. auto resolves to float16.
  • CUDA graphs for decoder steps (CT2_CUDA_GRAPHS=1). Each step is captured once and replayed in later calls, for example in every window of streaming ASR. The graphs run the same kernels as the regular path. Measured on an RTX 5080 with large-v3: generate is about 20% faster (5.9 → 4.6 ms/token greedy, 719 → 611 ms beam 5 on a 15 s window).
  • The CrisperWhisper decoding APIs from nyrahealth/CTranslate2: prefill, forward_step, forward_batch, *_with_attention, generate_greedy_with_attention, generate_dual_greedy and generate_speculative.

Removed from CTranslate2: every model except Whisper (translators, generators, encoders, Wav2Vec2), the CLI, CPU backends (MKL, oneDNN, Ruy, OpenBLAS, Accelerate, OpenMP), AMD HIP, tensor parallelism, FlashAttention, AWQ, int8/int16 quantization, and LLM-only layer features (rotary, ALiBi, RMSNorm, GQA/MQA, sliding windows, T5 relative positions, Gemma norms). A model that needs any of them is rejected at load time with an explicit error.

Build

Requirements: CUDA 12.8+ (sm_120 needs it), CMake ≥ 3.18 and GCC. The release flags below match the wheels; -DWITH_CUDNN=ON runs the encoder's conv1d through cuDNN instead, which changes its rounding.

git submodule update --init --recursive
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_CUDA=ON -DWITH_CUDNN=OFF -DCUDA_DYNAMIC_LOADING=ON \
  -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.8 \
  "-DCUDA_ARCH_FLAGS_OVERRIDE=-gencode;arch=compute_89,code=sm_89;-gencode;arch=compute_120,code=sm_120;-gencode;arch=compute_120,code=compute_120" \
  -DCMAKE_INSTALL_PREFIX=$PWD/../install
make -j$(nproc) install

cd ../python
CTRANSLATE2_ROOT=$PWD/../install pip install --no-build-isolation .

CUDA_ARCH_FLAGS_OVERRIDE passes the -gencode flags directly, because older CMake FindCUDA cannot parse two-digit architectures such as 12.0. Set LD_LIBRARY_PATH to install/lib at runtime.

Install

pip install "CTranslate2-rapid-whisper[cuda]"

The wheels are built like the upstream ctranslate2 wheels: without cuDNN and with CUDA loaded at runtime, so they produce the same outputs as the upstream wheel with the same cuBLAS. The cuBLAS version decides the exact floating point results; import ctranslate2 loads cuBLAS 12 from, in this order: a libcublas.so.12 in LD_LIBRARY_PATH, the nvidia-cublas-cu12 wheel (the cuda extra, also pulled by torch's CUDA 12 builds), the system CUDA. Pin nvidia-cublas-cu12 (e.g. ==12.8.4.1) to get the same results everywhere.

The distribution installs the ctranslate2 module, so it replaces the upstream ctranslate2 package and cannot be installed next to it. faster-whisper declares a ctranslate2 dependency; install it with --no-deps, otherwise pip installs the upstream package over this one:

pip uninstall -y ctranslate2
pip install "CTranslate2-rapid-whisper[cuda]"
pip install --no-deps faster-whisper
pip install "av>=11,<16" tokenizers onnxruntime huggingface_hub tqdm

Versions: ctranslate2.__version__ stays at the API-compatible 4.8.3, and ctranslate2.rapido_version gives the engine version.

Runtime options

Variable Default Effect
CT2_CUDA_GRAPHS 0 Run decoder steps as CUDA graphs. Outputs are bit-identical.
CT2_CUDA_GRAPHS_MAX_STEPS 128 Last decoding step run as a graph, and capacity of the persistent self-attention caches. Longer decodes continue on the regular path.
CT2_CUDA_GRAPHS_MAX_BUFFER_SETS 2 Buffer sets kept, one per decoding shape (batch × beams, encoder output).
CT2_CUDA_GRAPHS_MEMLOG 0 Log the graphs' device memory (info level, e.g. with CT2_VERBOSE=1).
CT2_CUDA_GRAPHS_DEVICE_GREEDY 1 Greedy token selection inside the graph (no-timestamp greedy only).
CT2_CUDA_GRAPHS_QUEUE 2 Greedy steps queued before reading their results.
CT2_WHISPER_FOLD_PREFIX 0 Forward a text prefix in one pass. Not bit-identical: scores differ in the last fp16 bits.

Memory: every captured step graph holds ~8 MB of device memory (the launch parameters of its ~1000 kernels), and each decoding shape keeps persistent buffers: the self-attention caches at full capacity (twice, ping-pong) and the cross-attention keys/values. Random sampling (the temperature fallback) and batches that shrink during a call are decoded without graphs. Measured on an RTX 4090 with large-v3 float16, 82 interview windows of 30 s, beam 3 with temperature fallback:

peak device memory time
upstream ctranslate2 4.8.1 wheel 5.5 GB 92 s
rapido, CT2_CUDA_GRAPHS_MAX_STEPS=128 (default) 6.7 GB 83 s
rapido, CT2_CUDA_GRAPHS_MAX_STEPS=448 7.9 GB 83 s
rapido, CT2_CUDA_GRAPHS_MAX_STEPS=96 6.4 GB 87 s

Verification

The equivalence tooling lives outside the library: compare_ct2.py (1340 outputs covering greedy, beam, n-best, batches, prefixes, timestamps and faster-whisper transcribe with word timestamps), fork_check.py (long-form interviews and streaming with LocalAgreement) and stream_la.py. Against CTranslate2 4.8.3, with and without CUDA graphs, they report 0 differing tokens and 0 differing scores, no-speech probabilities and word times, and identical streaming rounds.

License

MIT, as CTranslate2. The CrisperWhisper APIs come from nyrahealth/CTranslate2 (MIT). The CrisperWhisper model weights have their own non-commercial license.

Metadata

Release files for CTranslate2-rapid-whisper 0.1.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 CTranslate2-rapid-whisper 0.1.0
File Actions
ctranslate2_rapid_whisper-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for ctranslate2_rapid_whisper-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
ctranslate2_rapid_whisper-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for ctranslate2_rapid_whisper-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
ctranslate2_rapid_whisper-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for ctranslate2_rapid_whisper-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
ctranslate2_rapid_whisper-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for ctranslate2_rapid_whisper-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
ctranslate2_rapid_whisper-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for ctranslate2_rapid_whisper-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
ctranslate2_rapid_whisper-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for ctranslate2_rapid_whisper-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Total release size: 66.0 MB

Release files / ctranslate2_rapid_whisper-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctranslate2_rapid_whisper-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.0 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
41bad66b542baded7c8d0232c9edabb9beb507840b6afb7c4bea1cb310313f96
BLAKE2b-256 checksum
How to use checksums
57957f642dfd54416d2051b27dd6387dec12950a1d9e91c3cda539106123a8d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / ctranslate2_rapid_whisper-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctranslate2_rapid_whisper-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.1 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
94b8af7ea6306f8d47e4e6c6e1b217e48a7fc705af8b1710736124e3764a6445
BLAKE2b-256 checksum
How to use checksums
c4655b2852d990ff278856dc19e26322a96e2266185754924d6b8d6b0e38fe96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / ctranslate2_rapid_whisper-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctranslate2_rapid_whisper-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.0 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ff2bbe2ecc69b8cd078942edf52f1fb680bdf4ed5d0af3cc2b9ff799dfad13b0
BLAKE2b-256 checksum
How to use checksums
059a41878cb4eedbaad4ed7e8678211e8db720d0077f8ac474ab10b16bfe5669
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / ctranslate2_rapid_whisper-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctranslate2_rapid_whisper-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.0 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
124e2ba7a117a39c2c809fa7b1efd119ecc1d44a5cef4282e6c5ff2d4bcec8ac
BLAKE2b-256 checksum
How to use checksums
8e2c22ac23d5cfa88594e12b59d2d36b0bf1e50ac984679bedd90d3180534080
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / ctranslate2_rapid_whisper-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctranslate2_rapid_whisper-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 11.0 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d368ac3b18cf234b49dc0eef297da28f599481afa5693cac6522d5a98a0f3c40
BLAKE2b-256 checksum
How to use checksums
f31c04e10da95818165aa95dc5d7040a604e8c0edb4b428e62dd8cdc86cf937f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / ctranslate2_rapid_whisper-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ctranslate2_rapid_whisper-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 10.9 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4744efde9acdea2d456bfc8bc50545206861cc30b7c92952a0fc65064ae7094b
BLAKE2b-256 checksum
How to use checksums
ae53a6c863e990e170e03d4c95206e14695f86c4181386a997483c16c6e2d8da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Security for CTranslate2-rapid-whisper 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for ctranslate2_rapid_whisper-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

6 release files Full provenance

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