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_cuda11x-1.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (322.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

gbgpu_cuda11x-1.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (322.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

gbgpu_cuda11x-1.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (322.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

gbgpu_cuda11x-1.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (321.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

gbgpu_cuda11x-1.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (321.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file gbgpu_cuda11x-1.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu_cuda11x-1.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bfb119a1b493ee60ab7aef13917f59c95478084d5f678ac1635a988d47e0dbb9
MD5 55409dd7f725364412d334eaea08f321
BLAKE2b-256 ba34321d596b36880b5bb8df2cfe378cf570d58536555843a956eb31a26d93e6

See more details on using hashes here.

File details

Details for the file gbgpu_cuda11x-1.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu_cuda11x-1.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9581c7f1a4be32f434df60f75df02681842ad73b6c8a993991c74a4ad6075ca
MD5 696b50947260d2483f986618d2c518ab
BLAKE2b-256 3a9defc59fe6768310f1df67b472b4c420296fd78d4cd2f23fed13cadaa5d50f

See more details on using hashes here.

File details

Details for the file gbgpu_cuda11x-1.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu_cuda11x-1.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a64c0ac6eef601d09686456bd84f8c9bfe6c35aa1789dd6f0504121eeb0cc040
MD5 e44c173a1518a237a1df236503c6a46a
BLAKE2b-256 a1a81fa3b0d4f05d7a0543d362f9f2efeac5a4408e045a0f43f4aea1a15f9eae

See more details on using hashes here.

File details

Details for the file gbgpu_cuda11x-1.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu_cuda11x-1.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af2b27ffa121a71906f2af04426638978e25627a288cc864e8aaabcfff6baffa
MD5 7c8b4cb4802ceccd91d9e94f2450419a
BLAKE2b-256 f37d38d7d4b75c41a2363ddb8525c9ac8cd72aca6d425564ba05f160a95dfeaa

See more details on using hashes here.

File details

Details for the file gbgpu_cuda11x-1.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gbgpu_cuda11x-1.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a3a793727037e137c0ec4e57b2bbb9791e4fc38cdb039c4b563c8bf35cbe0d9
MD5 8ca96d26a0a677a9aa0148623601e8b6
BLAKE2b-256 be7d16ae67a4931cb44b30db31d8604dcfaaf8be757879a01aa6c52d60f41240

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