gbgpu: GPU/CPU Galactic Binary Waveforms
GBGPU is a GPU-accelerated version of the FastGB waveform which has been developed by Neil Cornish, Tyson Littenberg, Travis Robson, and Stas Babak. It computes gravitational waveforms for Galactic binary systems observable by LISA using a fast/slow-type decomposition. For more details on the original construction of FastGB see arXiv:0704.1808.
The current version of the code is very closely related to the implementation of FastGB in the LISA Data Challenges' Python code package. The waveform code is entirely Python-based. It is about 1/2 the speed of the full C version, but much simpler in Python for right now. There are also many additional functions including fast likelihood computations for individual Galactic binaries, as well as fast C-based methods to combine waveforms into global fitting templates.
The code is CPU/GPU agnostic. CUDA and NVIDIA GPUs are required to run these codes for GPUs.
See the documentation for more details. This code was designed for arXiv:2205.03461. If you use any part of this code, please cite arXiv:2205.03461, its Zenodo page, arXiv:0704.1808, and arXiv:1806.00500.
Getting Started
- Run pip install. This works only for CPU currently. For GPU, see below for installing from source.
pip install gbgpu
- To import gbgpu:
from gbgpu.gbgpu import GBGPU
Prerequisites
To install this software for CPU usage, you need Python >3.4, and NumPy. We generally recommend installing everything, including gcc and g++ compilers, in the conda environment as is shown in the examples here. This generally helps avoid compilation and linking issues. If you use your own chosen compiler, you may need to add information to the setup.py file.
To install this software for use with NVIDIA GPUs (compute capability >5.0), you need the CUDA toolkit and CuPy. The CUDA toolkit must have cuda version >8.0. Be sure to properly install CuPy within the correct CUDA toolkit version. Make sure the nvcc binary is on $PATH or set it as the CUDAHOME environment variable.
Installing
To pip install (only for CPU currently):
pip install gbgpu
To install from source:
-
Install Anaconda if you do not have it.
-
Create a virtual environment. Note: There is no available
condacompiler for Windows. If you want to install for Windows, you will probably need to add libraries and include paths to thesetup.pyfile.
conda create -n gbgpu_env -c conda-forge gcc_linux-64 gxx_linux-64 gsl numpy Cython scipy jupyter ipython h5py matplotlib python=3.12 cmake
conda activate gbgpu_env
If on MACOSX, substitute `gcc_linux-64` and `gxx_linus-64` with `clang_osx-64` and `clangxx_osx-64`.
- If using GPUs, use pip to install cupy. If you have cuda version 9.2, for example:
pip install cupy-cuda92
- Clone the repository.
git clone https://github.com/mikekatz04/GBGPU.git
cd GBGPU
- Run install. Make sure CUDA is on your PATH.
pip install -v -e .
Running the Tests
Change to the testing directory:
cd gbgpu/tests
Run in the terminal:
python -m unittest discover
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Current Version: 1.2.2
Authors
- Michael Katz
- Travis Robson
- Neil Cornish
- Tyson Littenberg
- Stas Babak
Contributors
- Mathieu Dubois
- Maxime Pigou
License
This project is licensed under the Apache License - see the LICENSE file for details.
Metadata
Release files for gbgpu 1.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 12.2 MB
Release files / gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 74.7 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
0f0ba2e316d110cad9bd62114959aa50144df16437e696035dbeb5f36be074ce
|
|
BLAKE2b-256 checksum How to use checksums |
92ac9393cabc750d09bb9f18d9a9d2f74f2e7b976575c17eeb485ca3931a635d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 77.6 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
49791fc364c70cf15e433988ead4facf505a53a51695e7169b767d75f79c451e
|
|
BLAKE2b-256 checksum How to use checksums |
c48d4ac7fc4c9f432c1f3287eb075030b99d49c2dfbf9edc20c5df4be52584ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl
| Download URL | gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.13 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
45a0e1aac1ca68afa947c32dd4fed05266fb7755820b1049f837a2279b1dacda
|
|
BLAKE2b-256 checksum How to use checksums |
b74f3a359c4b0b1193d3ffd5599b002de07d8c01edf310f4cd8fbee039c36da8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl
| Download URL | gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.13 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
2340081f567ea70840d2e8743a7ac06b7597894dc398ab5f819c08a2fd391274
|
|
BLAKE2b-256 checksum How to use checksums |
5b1d9dee4e60c187df852834ce7dc7304252ae929c4f5c8b55013b55977f0af6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 75.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
2d5c25c5e0368138a5abf831bf115422158a5e22b1facf75de08a82fad45f2a2
|
|
BLAKE2b-256 checksum How to use checksums |
b13d03405efda4b0b42d7c1fe0ad06768ff3ec9b8b13eaddff588bd6a28b2a91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 77.9 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
015890d08b48e67a55e06178eae82c2bd2cb7a4b31d8217cef337b7ebb47525f
|
|
BLAKE2b-256 checksum How to use checksums |
8bf4297ea28fa4f4a998dfab3b7aa7bc62b478e3b2735df8986c4f859fe79aa2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl
| Download URL | gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8a4ce8df149a569d882d1f7f628986aefa797e3213d069da833d2c736084873b
|
|
BLAKE2b-256 checksum How to use checksums |
1ba120d8cffd33118ab54861f163c3e42bd963b09a6b58ac4c32178cd135253e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl
| Download URL | gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.12 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
368ce1c72cc46f4697c25288adb0e6ba2c3f705f992db630c07c40f9b2620876
|
|
BLAKE2b-256 checksum How to use checksums |
e4b029fc4b854c70648fee10fbe4f0d28f1b5fcca81d01cdb3fbbc277bcb67fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 76.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
4705abe1e4b6ba2d1cf69f428be85313c3db6bb43723590c0630ee7f3dabf81e
|
|
BLAKE2b-256 checksum How to use checksums |
26aa3e1521c85d4cc333af79b2a64430eb8db00ca82829d9beb3826df10ea5c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 77.7 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
6b3dc02534f7580e799c53ae07d508d0e533643bc456bf1948d334a780087093
|
|
BLAKE2b-256 checksum How to use checksums |
ec9fb8f4f1b50e9a687cbb879d7f6dc23e2c26fcdb3d72866a26b0b593d6c0c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl
| Download URL | gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e382a648b9348e19690ccea039eaab6d6e5b8668319a1bc5cb4e7f484b074a0d
|
|
BLAKE2b-256 checksum How to use checksums |
d8b502dffc5703da91d9ee2d1b6ec42d8332cadca513e425bcc946b61618a559
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl
| Download URL | gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.11 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
343bd9e386543895646803326536e7e3f2778fc7abb65364d9d44543bdb63fd6
|
|
BLAKE2b-256 checksum How to use checksums |
bd01a473a0f0b566f54edcf1b9717aa67d0416d05a3d8f9f19624f7babc64a10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 75.2 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9825baf767b1ef0e6a1e80d8faef7fc64307e27c939c331e7da3c6b4d72ef405
|
|
BLAKE2b-256 checksum How to use checksums |
f800f4bec6e2e062d8e1302846ab1a5f0f445179e3d5a3a2495afb9b230d1184
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 77.1 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
c86b0b46e2fc670c7eea1ba0b318e64f9064b6c43535a957d8943bdd2a4569fd
|
|
BLAKE2b-256 checksum How to use checksums |
a4cf4e883e57927c6678748ad557532d213cac2eaca4be363a35b9361b9a4bf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl
| Download URL | gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.10 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e24625c4739deff4e5dd4300b05314311f296318cbeab7f6c410782dd424278d
|
|
BLAKE2b-256 checksum How to use checksums |
0fb19d75663dee68bbd806093c1d915b2d8279669abd7a77aa156a98738925ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl
| Download URL | gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.10 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
389dc6fd64b59df3b300c5d3615c9b2f41d112615a8efffca026665b89f5e465
|
|
BLAKE2b-256 checksum How to use checksums |
c21f0443e7d5efdd764cb7b670ad9418ae5582334e4a9a386db8516f8826b475
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 77.1 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
50707a995b221ecd831e3050b922c0e1b90dbd477895d785cbaef2b82c2936a0
|
|
BLAKE2b-256 checksum How to use checksums |
77a2767fafadb97e8330ae42ab484cf69420bacb175ebb3380eb3e7ee7fd5200
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl
| Download URL | gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.9 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
178900812f4c3f9f67eb6a0637ed14921541858fcbb113d1508be14d571fef0c
|
|
BLAKE2b-256 checksum How to use checksums |
565c78d237ce7024c8a1f964847a2249624da58d73e3533a03bf0536b04985fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl
| Download URL | gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.9 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
cc19f8460108256da6b0801e7d5f8e59e407e36fb510f2b780049d4a368e7861
|
|
BLAKE2b-256 checksum How to use checksums |
f5e84a13a05a8372a313e692e7dab0de6d244af362842f39a3cdb301dbdce168
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Security for gbgpu 1.2.4
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.