dice-group / hypertrie

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

Home Page:https://tentris.dice-research.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 ..

About

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

https://tentris.dice-research.org/

License:Apache License 2.0


Languages

Language:C++ 96.6%Language:CMake 2.8%Language:Python 0.6%