This page collects all available pieces of software related to the HD/VSA. First, it points to the avialalbe packages and libraries related to HD/VSA.
Next, it points to external collections of HD/VSA projects.
Finally, it provides links to the code for individual studies,which are sorted in the chronoglical order.
Please let us know if some other code or package should be included in this list.
Software packages
Description: Torchhd is a Python library for HD/VSA. Torchhd makes it painless to develop a wide range of HD/VSA applications and algorithms. For someone new to the field, it provides Pythonic abstractions and examples to get one started fast. For the experienced researchers, the library is made modular by design, giving the endless flexibility to prototype new ideas in no-time. The library is build on top of the high-performance PyTorch library, resulting in optimized tensor execution without the headaches. Moreover, PyTorch makes it effortless to accelerate the code on a GPU.
Implemented in: Python
Description: hdlib is a Python library for designing HD/VSA. It is distributed under the MIT license as a Python package through PyPI and Conda on the conda-forge channel.
Implemented in: Python
Description: A rich research framework for HD/VSA on large boolean vectors supporting program transformation and multiple backends for computation (plain Python, C++, NumPy, PyTorch). Many metrics and utility functions aim to aid the intuitive understanding of this new paradigm, and there are multiple levels of functionality available from the data marshalling and the basic (XOR, MAJ, PERMUTE)-algebra to cryptography support. All vector operations are implemented in C(++) and make use of bit-packing and SIMD, subprograms can be optimized and compiled to these operations in Python or C, and parallelization and pipelining are planned.
Implemented in: Python, C++
Description: Work-in-progress repository for research into HD/VSA models such as Multiply-Add-Permute and Binary Spatter Codes. Can be used dependency-free.
Implemented in: Python and C
Description: The OpenHD framework enables the GPU-based execution of HD/VSA using JIT-like compliation written in Python fo high efficiency.
Implemented in: Python, C++
Description: HDTorch is PyTorch-based HD/VSA computing library for learning tasks. It includes custom CUDA extensions for speeding up hypervector operations, namely, bit-(un)packing and bit-array summation in the horizontal/vertical dimensions.
Description: SemanticVectors creates semantic WordSpace models from free natural language text. Such models are designed to represent words and documents in terms of underlying concepts. They can be used for many semantic (concept-aware) matching tasks such as automatic thesaurus generation, knowledge representation, and concept matching.
Implemented in: Java, Python
Description: NengoSPA is an implementation of the Semantic Pointer Architecture for Nengo. The Semantic Pointer Architecture provides an approach to building cognitive models implemented with large-scale spiking neural networks. With respect to HD/VSA, NengoSPA has primitives for Holographic Reduced Representations model.
Implemented in: Python
hdlib [ETH, Zurich]
Description: CPU/GPU Library for Binary Spatter Codes.
Implemented in: Python, C, Cuda, and Shell
Collections of projects
Collection of Hyperdimensional Computing Projects
Description: The resource aims at providing a comprehensive collection of projects using HD/VSA.
Implemented in: Python, MATLAB, C, C++
Code for individual studies
Authors: D. Kleyko, M. Davies, E. P. Frady, P. Kanerva, S. Kent, B. A. Olshausen, J. M. Rabaey, E. Osipov, D. A. Rachkovskij, A. Rahimi, F. T. Sommer
Venue: Proceedings of the IEEE, vol. 110, no. 10, pp. 1538-1571, 2022
Implemented in: Python
Authors: D. Kleyko, A. Rahimi, R. W. Gayler, E. Osipov
Venue: Neural Computing and Applications, vol. 32, pp. 3675-3684, 2020
Implemented in: MATLAB
Authors: M. Schmuck, L. Benini, A. Rahimi
Venue: ACM Journal on Emerging Technologies in Computing, vol. 15, no. 4, pp. 1-25, 2019
Implemented in: VHDL (RTL)
Authors: P. Neubert, S. Schubert, P. Protzel
Venue: KI - Künstliche Intelligenz, vol. 33, pp. 319-330, 2019
Implemented in: Matlab
Authors: A. Mitrokhin, P. Sutor, C. Fermuller, Y. Aloimonos
Venue: Science Robotics, vol. 4, no. 30, pp. 1-10, 2019
Implemented in: Python
Authors: E. Chang, A. Rahimi, L. Benini, A. Wu
Venue: IEEE International Conference on Artificial Intelligence Circuits and Systems (AICAS), pp. 137-141, 2019
Implemented in: Matlab
Authors: A. Burrello, L. Cavigelli, K. Schindler, L. Benini, A. Rahimi
Venue: Design, Automation Test in Europe Conference Exhibition (DATE), pp. 752-757, 2019
Implemented in: Python, OpenMP, Verilog
Authors: D. Kleyko, A. Rahimi, D. A. Rachkovskij, E. Osipov, J. M. Rabaey
Venue: IEEE Transactions on Neural Networks and Learning Systems, vol. 29, no. 12, pp. 5880-5898, 2018
Implemented in: MATLAB
Authors: A. Burrello, K. Schindler, L. Benini, A. Rahimi
Venue: IEEE Biomedical Circuits and Systems Conference (BioCAS), pp. 1-4, 2018
Implemented in: Matlab and Python
Authors: F. Montagna, A. Rahimi, S. Benatti, D. Rossi, L. Benini
Venue: IEEE/ACM Design Automation Conference (DAC), pp. 1-6, 2018
Implemented in: C (for ARM Cortex M4 processors) and OpenMP (for multi-core processors)
Authors: A. Moin, A. Zhou, A. Rahimi, S. Benatti, A. Menon, S, Tamakloe, J. Ting, N. Yamamoto, Y. Khan, F. Burghardt, L. Benini, A. C. Arias, J. M. Rabaey
Venue: IEEE International Symposium on Circuits and Systems (ISCAS), pp. 1-5, 2018
Implemented in: Matlab and C
Authors: A. Rahimi, A. Tchouprina, P. Kanerva, J. Millan, J. M. Rabaey
Venue: Mobile Networks and Applications, pp. 1-12, 2017
Implemented in: Matlab
Authors: A. Rahimi, P. Kanerva, J. M. Rabaey
Venue: IEEE/ACM International Symposium on Low Power Electronics and Design (ISLPED), pp. 64-69, 2016
Implemented in: Matlab and SystemVerilog (RTL)
Authors: A. Rahimi, S. Benatti, P. Kanerva, L. Benini, J. M. Rabaey
Venue: IEEE International Conference on Rebooting Computing (ICRC), pp. 1-8 2016
Implemented in: Matlab
Authors: S. D. Levy, C. W. Lowney II, W. Meroney, R. W. Gayler
Venue: Artificial General Intelligence (AGI) LNCS, vol. 8598, pp. 73-84, 2014
Implemented in: Matlab
Authors: S. Levy, S. Bajracharya, R. W. Gayler
Venue: AAAI Conference on Artificial Intelligence (AAAI), pp. 1-4, 2014
Implemented in: C++
Authors: R. W. Gayler, S. D. Levy
Venue: International Conference on the Analogy (ANALOGY), pp. 165-174, 2009
Implemented in: Matlab