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.1.0.tar.gz (55.5 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.1.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (184.6 kB view details)

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

ri_kernels-0.1.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (117.0 kB view details)

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

ri_kernels-0.1.0-py3-none-macosx_11_0_arm64.whl (82.0 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ri_kernels-0.1.0.tar.gz
  • Upload date:
  • Size: 55.5 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.1.0.tar.gz
Algorithm Hash digest
SHA256 e616fd9b7e95ee7c2a2d3b2ad6533ed2c505e816c2c22762318310f7a3a1595c
MD5 882f2b8685264a2811e5c28b68c7ff72
BLAKE2b-256 9da430449dacfe024fc0849cef981b6c794322a3d169d5134c0fa5c5877351fc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ri_kernels-0.1.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 826ab226eb53c469fbfcb3c3ddff3101d2e8816c54f40c6fe61565cef4778d77
MD5 c23bb84075703c1c10363815b22a2adc
BLAKE2b-256 a75a96942027c4c1d96050e9c965be0c6488a52ece417d7ec53b66e6b94ba3d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ri_kernels-0.1.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ca63b848254082b825c5c8f90862b796e06b9ea6677fe812e955881eb2eee93f
MD5 f5a64db1f36fc5dc925801442b0ae911
BLAKE2b-256 6da9ddca1860dd56358e6369fe1717ed4e7efdff6312ecd71224bfca6f2bd7e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ri_kernels-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d6b54eb173a5b42ed995c0ba364b28df7dffb68895351d03ce9398982c35e34
MD5 3fbfdff03af6a9b1fe659c626a0e6960
BLAKE2b-256 e959514ccc562bc6316c2ed84364a455688b5808cdad32aa40dd4cf370f93fac

See more details on using hashes here.

Provenance

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

0.2.0

4 files

This release

0.1.0 This release

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