https://github.com/electronicvisions/hxtorch
BrainScaleS-2 via PyTorch
https://github.com/electronicvisions/hxtorch
Last synced: 5 months ago
JSON representation
BrainScaleS-2 via PyTorch
- Host: GitHub
- URL: https://github.com/electronicvisions/hxtorch
- Owner: electronicvisions
- License: lgpl-2.1
- Created: 2020-03-31T14:08:48.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-12-04T16:50:49.000Z (7 months ago)
- Last Synced: 2025-12-07T21:47:58.982Z (7 months ago)
- Language: Python
- Homepage:
- Size: 1.36 MB
- Stars: 10
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.md
Awesome Lists containing this project
README
# 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](https://sylabs.io/docs/).
If you want to build this project outside the Electronic Vision(s) cluster, please start by downloading the most recent version from [here](https://openproject.bioai.eu/containers/).
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 SINGULARITYENV_PREPEND_PATH=`pwd`/bin:$SINGULARITYENV_PREPEND_PATH
export SINGULARITYENV_LD_LIBRARY_PATH=`pwd`/lib:$SINGULARITYENV_LD_LIBRARY_PATH
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](#github-based-build) 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](./src/pyhxtorch/hxtorch/examples/) and/or the [unit tests](./tests/hw/)!
## 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
```