Skip to content

A flexible data structure for low-rank (≤ 5), sparse tensors supporting slices by any dimension and Einstein summation (einsum).

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

dice-group/hypertrie

Repository files navigation

hypertrie

A flexible data structure for low-rank, sparse tensors supporting slices by any dimension and einstein summation (einsum).

For details on the data structure refer to https://tentris.dice-research.org/

build

prerequisites

install conan, cmake and a C++20 compiler. The steps below are tested for gcc 10, clang 10 and clang 11.

Add dice-hash remote to conan

conan remote add dice-group https://conan.dice-research.org/artifactory/api/conan/tentris

and create a conan profile

conan profile new --detect default
conan profile update settings.compiler.libcxx=libstdc++11 default

build

mkdir build
cd build
conan install .. --build=missing
cmake ..

running tests

To enable test, set hypertrie_BUILD_TESTS in cmake:

cmake -Dhypertrie_BUILD_TESTS=ON ..
make -j tests
tests/tests

Some tests are using pytorch which is not provided with the code. Those tests are disabled by default. To enable them, provide the path to the pytorch library via cmake variable hypertrie_LIBTORCH_PATH. Prebuild binaries may be download via https://pytorch.org/get-started/locally/ (works at least with Stable|Linux|LibTorch|C++|None).

cmake -Dhypertrie_BUILD_TESTS=ON -Dhypertrie_LIBTORCH_PATH=/path/to/libtorch ..