Skip to main content

GPU/CPU Galactic Binary Waveforms

Project description

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

  1. Run pip install. This works only for CPU currently. For GPU, see below for installing from source.
pip install gbgpu
  1. 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:

  1. Install Anaconda if you do not have it.

  2. Create a virtual environment. Note: There is no available conda compiler for Windows. If you want to install for Windows, you will probably need to add libraries and include paths to the setup.py file.

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`.
  1. If using GPUs, use pip to install cupy. If you have cuda version 9.2, for example:
pip install cupy-cuda92
  1. Clone the repository.
git clone https://github.com/mikekatz04/GBGPU.git
cd GBGPU
  1. 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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl (74.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl (75.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl (76.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl (75.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (77.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

Details for the file gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f0ba2e316d110cad9bd62114959aa50144df16437e696035dbeb5f36be074ce
MD5 c5a6d41e444323d63a4a42f53a7ca8e0
BLAKE2b-256 92ac9393cabc750d09bb9f18d9a9d2f74f2e7b976575c17eeb485ca3931a635d

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49791fc364c70cf15e433988ead4facf505a53a51695e7169b767d75f79c451e
MD5 051ca1b59cf073e7c461bd3633adfd30
BLAKE2b-256 c48d4ac7fc4c9f432c1f3287eb075030b99d49c2dfbf9edc20c5df4be52584ae

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 45a0e1aac1ca68afa947c32dd4fed05266fb7755820b1049f837a2279b1dacda
MD5 cabb3fce1fb41e1f8e4f63ba79022f4e
BLAKE2b-256 b74f3a359c4b0b1193d3ffd5599b002de07d8c01edf310f4cd8fbee039c36da8

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2340081f567ea70840d2e8743a7ac06b7597894dc398ab5f819c08a2fd391274
MD5 f46349e37983463d02c719f13f0ecc5c
BLAKE2b-256 5b1d9dee4e60c187df852834ce7dc7304252ae929c4f5c8b55013b55977f0af6

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2d5c25c5e0368138a5abf831bf115422158a5e22b1facf75de08a82fad45f2a2
MD5 cfb80ef74f4bc8cd5fa002fa3e90a76f
BLAKE2b-256 b13d03405efda4b0b42d7c1fe0ad06768ff3ec9b8b13eaddff588bd6a28b2a91

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 015890d08b48e67a55e06178eae82c2bd2cb7a4b31d8217cef337b7ebb47525f
MD5 406e17d12c27df1c974b65f8cc5c10da
BLAKE2b-256 8bf4297ea28fa4f4a998dfab3b7aa7bc62b478e3b2735df8986c4f859fe79aa2

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8a4ce8df149a569d882d1f7f628986aefa797e3213d069da833d2c736084873b
MD5 2e0475883cd9b2f42103ae8d7ce2ef3d
BLAKE2b-256 1ba120d8cffd33118ab54861f163c3e42bd963b09a6b58ac4c32178cd135253e

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 368ce1c72cc46f4697c25288adb0e6ba2c3f705f992db630c07c40f9b2620876
MD5 0d1e52d2de3e7128516acfd804f70f27
BLAKE2b-256 e4b029fc4b854c70648fee10fbe4f0d28f1b5fcca81d01cdb3fbbc277bcb67fd

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4705abe1e4b6ba2d1cf69f428be85313c3db6bb43723590c0630ee7f3dabf81e
MD5 d15a884d00cabc3fbcd1a7ca90efd296
BLAKE2b-256 26aa3e1521c85d4cc333af79b2a64430eb8db00ca82829d9beb3826df10ea5c0

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b3dc02534f7580e799c53ae07d508d0e533643bc456bf1948d334a780087093
MD5 3f9c0b79e3512b74b7f9d23c5c4c853c
BLAKE2b-256 ec9fb8f4f1b50e9a687cbb879d7f6dc23e2c26fcdb3d72866a26b0b593d6c0c7

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e382a648b9348e19690ccea039eaab6d6e5b8668319a1bc5cb4e7f484b074a0d
MD5 8c2cfecd5ee40b7dedd30f07859e5f07
BLAKE2b-256 d8b502dffc5703da91d9ee2d1b6ec42d8332cadca513e425bcc946b61618a559

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 343bd9e386543895646803326536e7e3f2778fc7abb65364d9d44543bdb63fd6
MD5 9a0267cb22fd8b8dff2baa74c208d5bc
BLAKE2b-256 bd01a473a0f0b566f54edcf1b9717aa67d0416d05a3d8f9f19624f7babc64a10

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9825baf767b1ef0e6a1e80d8faef7fc64307e27c939c331e7da3c6b4d72ef405
MD5 a964be62ce3b153e55db404248ad4555
BLAKE2b-256 f800f4bec6e2e062d8e1302846ab1a5f0f445179e3d5a3a2495afb9b230d1184

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c86b0b46e2fc670c7eea1ba0b318e64f9064b6c43535a957d8943bdd2a4569fd
MD5 fb202a6aeaa22932a873eea85179bf9f
BLAKE2b-256 a4cf4e883e57927c6678748ad557532d213cac2eaca4be363a35b9361b9a4bf2

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e24625c4739deff4e5dd4300b05314311f296318cbeab7f6c410782dd424278d
MD5 692986ed81a44f4d7a2e52acceab104b
BLAKE2b-256 0fb19d75663dee68bbd806093c1d915b2d8279669abd7a77aa156a98738925ef

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 389dc6fd64b59df3b300c5d3615c9b2f41d112615a8efffca026665b89f5e465
MD5 387e48c6825c80ea7ad5d8ee84f87806
BLAKE2b-256 c21f0443e7d5efdd764cb7b670ad9418ae5582334e4a9a386db8516f8826b475

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50707a995b221ecd831e3050b922c0e1b90dbd477895d785cbaef2b82c2936a0
MD5 b49032969558dfff489de8d3da50c92b
BLAKE2b-256 77a2767fafadb97e8330ae42ab484cf69420bacb175ebb3380eb3e7ee7fd5200

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 178900812f4c3f9f67eb6a0637ed14921541858fcbb113d1508be14d571fef0c
MD5 71feadbde75cf246272d3eaddcd3cea2
BLAKE2b-256 565c78d237ce7024c8a1f964847a2249624da58d73e3533a03bf0536b04985fc

See more details on using hashes here.

File details

Details for the file gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 cc19f8460108256da6b0801e7d5f8e59e407e36fb510f2b780049d4a368e7861
MD5 23df2495ef4714c5952c990e25fab5a9
BLAKE2b-256 f5e84a13a05a8372a313e692e7dab0de6d244af362842f39a3cdb301dbdce168

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page