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, CMAKE_CUDA_ARCHITECTURES, and RI_KERNELS_STATIC_CUDART (default ON; set it to OFF when a package manager should provide the shared CUDA runtime).

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.1.tar.gz (58.0 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.1-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.1-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (122.4 kB view details)

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

ri_kernels-0.2.1-py3-none-macosx_11_0_arm64.whl (87.4 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ri_kernels-0.2.1.tar.gz
  • Upload date:
  • Size: 58.0 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.1.tar.gz
Algorithm Hash digest
SHA256 92d4b633c454cec517fd268385d454ef6db1016cb01ead8fcc8a34edaaddb587
MD5 cc50da72f390f13505bb45fc2cbd1a2f
BLAKE2b-256 dd87126df2498f234b11ea79386d3a2ef0b07c2c07aeab506134317c893c0a46

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.1.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.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ri_kernels-0.2.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7685b4fd95e4bf467d9f39df57b840350606f541d9d9d349e596cb200193ffd
MD5 3eeb4f060c85b08d8b2d4fbf9854266a
BLAKE2b-256 3cc87d73d1305a65f1e89194139a1b945d8603cf042fd3b1802f79dd46d0202e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.1-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.1-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for ri_kernels-0.2.1-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 44e72efb51567ee76bc15af5537fc2f79dd5d623d8f46a37b5990d8b61e6275a
MD5 6a6f45a43acbef36ebb541df84311acd
BLAKE2b-256 11fcea4c9ac8e741e38ed67a3a42004bbb6e6b39aafe0558018e186c8508c620

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.1-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.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ri_kernels-0.2.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de8333b31226b49999583956c1fb584538c428abadc14456a75aaa21310ea930
MD5 ebdc5a92fae05f53b4b741f01559d90f
BLAKE2b-256 118ef8778e5065a2cf93a94e61008829636c11d55373592ebc3519699249701f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ri_kernels-0.2.1-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

This release

0.2.1 This release

4 files

0.2.0

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