april-tools / cirkit

a python framework to build, learn and reason about probabilistic circuits and tensor networks
https://cirkit-docs.readthedocs.io/en/latest/
GNU General Public License v3.0
71 stars 1 forks source link

Benchmark ProbabilisticCircuits.jl #5

Closed loreloc closed 1 year ago

loreloc commented 1 year ago

Added script for running benchmarks of the models implemented in the Julia library ProbabilisticCircuits.jl, i.e., only RAT-SPNs and HCLTs at the moment.

The implementation of the RAT-SPNs is the same as the one in other repos: https://github.com/cambridge-mlg/RAT-SPN https://github.com/SPFlow/SPFlow There is however a discrepancy relative to the number of product units and number of parameters of the networks between the different implementations of RAT-SPNs and the one in ProbabilisticCircuits.jl. This is explained by (i) the fully factorisation of multi-variate input distributions is implemented introducing additional product units, and (ii) the fully factorisation is balanced by alternating dummy sum units and product units (to speedup their CUDA kernel perhaps?).

The benchmarks measure time and peak GPU memory required to perform EVI and MPE (with 50% missing features) inference on the training split of CIFAR10, but this could change in the future. The results are saved in JSON files.

Closes #1 .

arranger1044 commented 1 year ago

most amazing!