hxtorch

BrainScaleS-2 via PyTorch

https://github.com/electronicvisions/hxtorch

Science Score: 52.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization electronicvisions has institutional domain (www.kip.uni-heidelberg.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary
Last synced: 8 months ago · JSON representation ·

Repository

BrainScaleS-2 via PyTorch

Basic Info
  • Host: GitHub
  • Owner: electronicvisions
  • License: lgpl-2.1
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.2 MB
Statistics
  • Stars: 9
  • Watchers: 5
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 6 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

hxtorch: PyTorch for BrainScaleS-2

The software in this repository has been developed by staff and students of Heidelberg University as part of the research carried out by the Electronic Vision(s) group at the Kirchhoff-Institute for Physics. The research is funded by Heidelberg University, the State of Baden-Württemberg, the European Union Sixth Framework Programme no. 15879 (FACETS), the Seventh Framework Programme under grant agreements no 604102 (HBP), 269921 (BrainScaleS), 243914 (Brain-i-Nets), the Horizon 2020 Framework Programme under grant agreement 720270, 785907, 945539 (HBP) as well as from the Manfred Stärk Foundation.

This repository contains

  • hxtorch -- a PyTorch extension for BrainScaleS-2

How to build

Build- and runtime dependencies

All build- and runtime dependencies are encapsulated in a Singularity Container. If you want to build this project outside the Electronic Vision(s) cluster, please start by downloading the most recent version from here.

For all following steps, we assume that the most recent Singularity container is located at /containers/stable/latest – you are free to choose any other path.

Github-based build

To build this project from public resources, adhere to the following guide:

```shell

1) Most of the following steps will be executed within a singularity container

To keep the steps clutter-free, we start by defining an alias

shopt -s expand_aliases alias c="singularity exec --app dls /containers/stable/latest"

2) Prepare a fresh workspace and change directory into it

mkdir workspace && cd workspace

3) Fetch a current copy of the symwaf2ic build tool

git clone https://github.com/electronicvisions/waf -b symwaf2ic symwaf2ic

4) Build symwaf2ic

c make -C symwaf2ic ln -s symwaf2ic/waf

5) Setup your workspace and clone all dependencies (--clone-depth=1 to skip history)

c ./waf setup --repo-db-url=https://github.com/electronicvisions/projects --project=hxtorch

6) Load PPU cross-compiler toolchain (or build https://github.com/electronicvisions/oppulance)

module load ppu-toolchain

7) Build the project

Adjust -j1 to your own needs, beware that high parallelism will increase memory consumption!

c ./waf configure c ./waf build -j1

8) Install the project to ./bin and ./lib

c ./waf install

9) If you run programs outside waf, you'll need to add ./lib and ./bin to your path specifications

export SINGULARITYENVPREPENDPATH=pwd/bin:$SINGULARITYENVPREPENDPATH export SINGULARITYENVLDLIBRARYPATH=pwd/lib:$SINGULARITYENVLDLIBRARYPATH export PYTHONPATH=pwd/lib:$PYTHONPATH ```

On the Electronic Vision(s) Cluster

  • Work on the frontend machine, helvetica. You should have received instructions how to connect to it.
  • Follow aforementioned instructions with the following simplifications
    • Replace steps 3) and 4) by module load waf
    • Make sure to run step 7) within a respective slurm allocation: Prefix srun -p compile -c8; depending on your shell, you might need to roll out the c-alias.
    • Replace step 8) by module load localdir.

First steps

Check out our examples and/or the unit tests!

License

``` hxtorch: PyTorch for BrainScaleS-2 ('hxtorch') Copyright (C) 2019–2021 Electronic Vision(s) Group Kirchhoff-Institute for Physics Ruprecht-Karls-Universität Heidelberg 69120 Heidelberg Germany

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ```

Owner

  • Name: Electronic Vision(s) Group — BrainScaleS Neuromorphic Hardware
  • Login: electronicvisions
  • Kind: organization
  • Location: Heidelberg, Germany

Kirchhoff-Institute for Physics, Ruprecht-Karls-Universität Heidelberg

Citation (CITATION.md)

# Citation

To cite hxtorch in publications, please use:

    Spilger P., Müller E., Emmel A., Leibfried A., Mauch C., Pehle C., Weis J., Breitwieser O., Billaudelle S., Schmitt S., Wunderlich T. C., Stradmann Y., Schemmel J. (2020)
    hxtorch: PyTorch for BrainScaleS-2 -- Perceptrons on Analog Neuromorphic Hardware
    ITEM 2020: Workshop on IoT, Edge, and Mobile for Embedded Machine Learning (ITEM)/ECML-PKDD 2020

A BibTex/Biber entry for LaTeX users is:

    @INPROCEEDINGS{spilger2020hxtorch,
        author = {Spilger, Philipp and M{\"u}ller, Eric and Emmel, Arne and Leibfried, Aron and Mauch, Christian and Pehle, Christian and Weis, Johannes and Breitwieser, Oliver and Billaudelle, Sebastian and Schmitt, Sebastian and Wunderlich, Timo C. and Stradmann, Yannik and Schemmel, Johannes},
        title = {hxtorch: PyTorch for BrainScaleS-2 --- Perceptrons on Analog Neuromorphic Hardware},
        year = 2020,
        month = jun,
        booktitle = {Proceedings of the Workshop on IoT, Edge, and Mobile for Embedded Machine Learning (ITEM)/ECML-PKDD 2020 (accepted)},
        eprint={2006.13138},
        archivePrefix={arXiv},
        primaryClass={cs.NE}
    }

GitHub Events

Total
  • Watch event: 3
  • Push event: 21
  • Create event: 2
Last Year
  • Watch event: 3
  • Push event: 21
  • Create event: 2