Skip to main content

RI Kernels

CPU and GPU kernels for radio interferometry, exposed to JAX as FFI custom calls with full support for automatic differentiation.

Installation

The CPU kernels and all of the Python code live in ri_kernels. The GPU kernels ship as add-on packages, one per CUDA major version, selected with an extra:

pip install ri_kernels               # CPU kernels only
pip install "ri_kernels[cuda12]"     # + CUDA 12 kernels and jax[cuda12]
pip install "ri_kernels[cuda13]"     # + CUDA 13 kernels and jax[cuda13]

Building from source

Requires CMake >= 3.20, a C++20 compiler, and network access at configure time (Google Highway is fetched by CMake).

pip install .                      # CPU only
RI_KERNELS_CUDA=1 pip install .    # CPU + CUDA, needs nvcc
RI_KERNELS_ROCM=1 pip install .    # CPU + ROCm, needs hipcc

Both libraries land in the ri_kernels package directory in that case, which is also a location the loader searches. Note that pip install .[cuda12] is a different thing: the extra resolves ri_kernels_cuda12 from the index, so it needs a published release. To build the GPU kernels from the checkout, use RI_KERNELS_CUDA=1.

Other CMake options of note: RI_KERNELS_CPU (default ON), RI_KERNELS_MULTI_ARCH (dynamic SIMD dispatch, default ON — turn it off and set arch flags via CMAKE_CXX_FLAGS for a single-target build), RI_KERNELS_BUNDLED_HIGHWAY, and CMAKE_CUDA_ARCHITECTURES.

Tests

Tests can be run with

python -m pytest tests

Download files

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

Source Distribution

ri_kernels-0.2.0.tar.gz (57.8 kB view details)

Uploaded Source

Built Distributions

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

ri_kernels-0.2.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (191.1 kB view details)

Uploaded Python 3manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

ri_kernels-0.2.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (122.3 kB view details)

Uploaded Python 3manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

ri_kernels-0.2.0-py3-none-macosx_11_0_arm64.whl (87.3 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file ri_kernels-0.2.0.tar.gz.

File metadata

  • Download URL: ri_kernels-0.2.0.tar.gz
  • Upload date:
  • Size: 57.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ri_kernels-0.2.0.tar.gz
Algorithm Hash digest
SHA256 367ae12c1bf165c4c4266fee342d7a7ea5bf4f3eebc4f8116c39156ffcf3f01c
MD5 c9a31e5ae4dee70ea13b9fcdee3ddb3b
BLAKE2b-256 251b9d4baad28a1e252199c49d75b6a6474f3a073e7c317462538af166bffcc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.0.tar.gz:

Publisher: wheels.yml on epfl-radio-astro/ri-kernels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ri_kernels-0.2.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ri_kernels-0.2.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 103053267e838d8c92d0c991cebe123e94644f0d7d1d76dab0622f00d1f04b93
MD5 4b66903964ffdd9eba30b6258b404ece
BLAKE2b-256 1a1d6734de13294dd676fdf06336896e08e5250fb60aedad6ef7651dff6b16c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on epfl-radio-astro/ri-kernels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ri_kernels-0.2.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for ri_kernels-0.2.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e7dccddc75dca3040c6087ae22efd8e786830502704fcf9343fa951c8b6dfec9
MD5 6de82db48e5b2f3e9968316340f83e9e
BLAKE2b-256 6d08ecf1accfe250f8b4ef8ee03a4e7869ab376764f65c8b71185c53b47f905d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on epfl-radio-astro/ri-kernels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ri_kernels-0.2.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ri_kernels-0.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63d83ebd372351cf8ebf992df50d5b9959d8deede61d9c7c8efdc23e165fee00
MD5 a20ee1f613ddb520fa5a750781a484a5
BLAKE2b-256 a49dcb54fd03e0e359c470cfb68c5d62284cc8f42ee5ea498b8f3f3596dd1287

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.0-py3-none-macosx_11_0_arm64.whl:

Publisher: wheels.yml on epfl-radio-astro/ri-kernels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.1

4 files

This release

0.2.0 This release

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