Installation¶
Python package (including PyTorch and JAX)¶
The Python package can be installed with pip by simply running
pip install sphericart
This basic package makes use of NumPy. A PyTorch-based implementation can be installed with
pip install sphericart[torch]
This pre-built version available on PyPI sacrifices some performance to ensure it can run on all systems, and it does not include GPU support. If you need an extra 5-10% of performance, you want to evaluate the spherical harmonics on GPUs, and/or you want to use it in JAX, you should build the code from source:
git clone https://github.com/lab-cosmo/sphericart
pip install .
# if you also want the torch bindings (CPU and GPU)
pip install .[torch]
# if you also want the jax bindings
pip install .[jax]
# torch bindings (CPU-only)
pip install --extra-index-url https://download.pytorch.org/whl/cpu .[torch]
Before installing the JAX version of sphericart
, make sure you already have the JAX
library installed according to the official JAX installation instructions.
In addition, if you want to use the CUDA functionalities of sphericart (either with torch
or JAX), make sure you have installed the CUDA toolkit and set up the environment variables
CUDA_HOME
, LD_LIBRARY_FLAGS
, and PATH
accordingly.
Julia package¶
The native Julia package can be installed by opening a REPL,
switching to the package manager by typing ]
and then executing
the command add SpheriCart
.
C/C++/CUDA library¶
First, you should clone the repository with
git clone https://github.com/lab-cosmo/sphericart
After that, you can install the C/C++ library as
cd sphericart/
mkdir build
cd build/
cmake .. # possibly include cmake configuration options here
make install
(A C++17 compiler is required.)
The following cmake configuration options are available:
-DSPHERICART_BUILD_TORCH=ON/OFF
: build the torch bindings in addition to the main library (OFF by default)-DSPHERICART_BUILD_TESTS=ON/OFF
: build C++ unit tests (OFF by default)-DSPHERICART_BUILD_EXAMPLES=ON/OFF
: build C++ examples and benchmarks (OFF by default)-DSPHERICART_OPENMP=ON/OFF
: enable OpenMP parallelism (ON by default)-DSPHERICART_CUDA=ON/OFF
: build the CUDA library (ON by default)-DCMAKE_INSTALL_PREFIX=where/you/want/to/install
: set the root path for installation (/usr/local
by default)
Without specifying any options, the commands above will attempt to install
a static library inside the /usr/local/lib/
folder, which might cause a
permission error. In that case you can change the destination folder. For example,
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local
will be appropriate in the majority of cases.