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 Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ri_kernels_cuda13-0.1.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: ri_kernels_cuda13-0.1.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 991.4 kB
- Tags: Python 3, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
959c8fdd7cfcc04a701d588a877c5351085c5c8faa9f58852628bcd7a1e76f4c
|
|
| MD5 |
788a376a206647be415596af18f65444
|
|
| BLAKE2b-256 |
2f147a84372a84ddc90c025843dcc7ca3ff26fd457685dc340d504b0130ad6a8
|
Provenance
The following attestation bundles were made for ri_kernels_cuda13-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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ri_kernels_cuda13-0.1.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
959c8fdd7cfcc04a701d588a877c5351085c5c8faa9f58852628bcd7a1e76f4c - Sigstore transparency entry: 2406252472
- Sigstore integration time:
-
Permalink:
epfl-radio-astro/ri-kernels@a32d361814c02f5d4e33bf9a26d501d3b2cfab9a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/epfl-radio-astro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a32d361814c02f5d4e33bf9a26d501d3b2cfab9a -
Trigger Event:
release
-
Statement type:
File details
Details for the file ri_kernels_cuda13-0.1.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: ri_kernels_cuda13-0.1.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 975.7 kB
- Tags: Python 3, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36bb61dbf8d025fe2cb17b8f6141117b8ec63f820f3b9b752bdd8ef9bed5c5d7
|
|
| MD5 |
7cf0923f1a2e505ac1779b3ac3954367
|
|
| BLAKE2b-256 |
27ef713dbab3b0727d764e362d172d19cf19db0938daf0d9673d3e451bb980b8
|
Provenance
The following attestation bundles were made for ri_kernels_cuda13-0.1.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
wheels.yml on epfl-radio-astro/ri-kernels
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ri_kernels_cuda13-0.1.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
36bb61dbf8d025fe2cb17b8f6141117b8ec63f820f3b9b752bdd8ef9bed5c5d7 - Sigstore transparency entry: 2406252452
- Sigstore integration time:
-
Permalink:
epfl-radio-astro/ri-kernels@a32d361814c02f5d4e33bf9a26d501d3b2cfab9a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/epfl-radio-astro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@a32d361814c02f5d4e33bf9a26d501d3b2cfab9a -
Trigger Event:
release
-
Statement type: