diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index afedd863..b2c6df3c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,7 +2,7 @@ name: Deploy Hugo site to Pages on: push: - branches: ["main", "student-talk"] + branches: ["main"] permissions: contents: read diff --git a/content/neuromorphic-computing/software/data-tools/nestml/index.md b/content/neuromorphic-computing/software/data-tools/nestml/index.md new file mode 100644 index 00000000..54876105 --- /dev/null +++ b/content/neuromorphic-computing/software/data-tools/nestml/index.md @@ -0,0 +1,23 @@ +--- +title: "NESTML" +type: neuromorphic-software +description: A domain-specific language and code generation toolchain for neuron and synapse models in spiking neural network simulation +logo: nestml.png +website: https://nestml.readthedocs.org/ +dependencies: Python, Jinja2, Lark, SymPy +field_of_application: Neuroscience +source_code: https://github.com/nest/nestml +pypi_id: nestml +license: GPL-2.0 +supports_hardware: True +supports_NIR: False +language: Python +maintainer: Charl Linssen +draft: false +software_tags: ["nest", 'genn'] +hardware_tags: ["spinnaker-2-university-of-dresden"] +--- + + +## Overview +NESTML is a domain-specific language for neuron and synapse models. These dynamical models can be used in simulations of brain activity on several platforms, in particular the [NEST Simulator](https://nest-simulator.readthedocs.org/). NESTML combines an easy to understand, yet powerful syntax; a flexible processing toolchain, written in Python; and good simulation performance by means of code generation (C++ for NEST Simulator). diff --git a/content/neuromorphic-computing/software/data-tools/nestml/nestml.png b/content/neuromorphic-computing/software/data-tools/nestml/nestml.png new file mode 100644 index 00000000..17aa23c6 Binary files /dev/null and b/content/neuromorphic-computing/software/data-tools/nestml/nestml.png differ diff --git a/content/neuromorphic-computing/software/data-tools/neuromorphic-intermediate-representation/index.md b/content/neuromorphic-computing/software/data-tools/neuromorphic-intermediate-representation/index.md new file mode 100644 index 00000000..52c3b353 --- /dev/null +++ b/content/neuromorphic-computing/software/data-tools/neuromorphic-intermediate-representation/index.md @@ -0,0 +1,45 @@ +--- +title: "Neuromorphic Intermediate Representation (NIR)" +type: "neuromorphic-software" +description: "A graph-based intermediate representation for computational graphs of spiking neural networks, enabling interoperability across different simulators and hardware." +logo: "nir-logo.png" +website: "https://neuromorphs.github.io/nir/" +dependencies: "Numpy" +field_of_application: "Interoperability / SNN Model Exchange" +source_code: "https://github.com/neuromorphs/NIR" +pypi_id: "nir" +license: "MIT" +supports_hardware: True +supports_NIR: True +language: "Python" +maintainer: + - "Jens E. Pedersen" + - "Felix Bauer" + - "Jason Eshraghian" + - "Bernhard Vogginger" +draft: false +software_tags: + - "lava" + - "nengo" + - "norse" + - "rockpool" + - "sinabs" + - "snntorch" + - "spyx" +hardware_tags: + - "loihi-2-intel" + - "spinnaker-2-university-of-dresden" + - "speck-synsense" + - "xylo-synsense" +--- + +## Overview + +By defining a common set of computational primitives (like Leaky-Integrate-and-Fire neurons and convolutions), NIR allows researchers and developers to define a model once and then translate it to run on different backends without having to rewrite the model from scratch for each platform. This decouples the model definition from the hardware or software-specific implementation details. + +NIR is designed to be extensible and currently supports a range of popular SNN frameworks and hardware, including: +- **Simulators:** [Lava-DL](/neuromorphic-computing/software/snn-frameworks/lava/), [Nengo](/neuromorphic-computing/software/snn-frameworks/nengo/), [Norse](/neuromorphic-computing/software/snn-frameworks/norse/), [Rockpool](/neuromorphic-computing/software/snn-frameworks/rockpool/), [Sinabs](/neuromorphic-computing/software/snn-frameworks/sinabs/), [snnTorch](/neuromorphic-computing/software/snn-frameworks/snntorch/), [Spyx](/neuromorphic-computing/software/snn-frameworks/spyx/) +- **Hardware:** [Intel Loihi 2](/neuromorphic-computing/hardware/loihi-2-intel/), [SpiNNaker 2](/neuromorphic-computing/hardware/spinnaker-2-university-of-dresden/), [SynSense Speck](/neuromorphic-computing/hardware/speck-synsense/), [SynSense Xylo](/neuromorphic-computing/hardware/xylo-synsense/). + +More information can be found in the [NIR documentation](https://neuroir.org/docs/) and the [Nature Communications paper](https://www.nature.com/articles/s41467-024-52259-9). +It is actively being developed on [GitHub](https://github.com/neuromorphs/nir) with additional tools for [PyTorch integrations](https://github.com/neuromorphs/nirtorch). diff --git a/content/neuromorphic-computing/software/data-tools/neuromorphic-intermediate-representation/nir-logo.png b/content/neuromorphic-computing/software/data-tools/neuromorphic-intermediate-representation/nir-logo.png new file mode 100644 index 00000000..0be0eb0d Binary files /dev/null and b/content/neuromorphic-computing/software/data-tools/neuromorphic-intermediate-representation/nir-logo.png differ diff --git a/content/neuromorphic-computing/software/snn-frameworks/knp/index.md b/content/neuromorphic-computing/software/snn-frameworks/knp/index.md new file mode 100644 index 00000000..0afc2dcf --- /dev/null +++ b/content/neuromorphic-computing/software/snn-frameworks/knp/index.md @@ -0,0 +1,27 @@ +--- +title: "Kaspersky Neuromorphic Platform" +type: "neuromorphic-software" +description: "A platform for creating and training Spiking Neural Networks (SNNs), supporting various data types and neuromorphic processors." +logo: "knp-logo.png" +website: "https://github.com/KasperskyLab/knp" +dependencies: "Python, C++, Boost, CMake, NumPy, TensorFlow, Keras" +field_of_application: "Machine Learning" +source_code: "https://github.com/KasperskyLab/knp" +license: "Apache-2.0" +supports_hardware: True +version_badge_url_override: "https://img.shields.io/github/v/tag/KasperskyLab/knp" +supports_NIR: False +language: "Python, C++" +maintainer: "Kaspersky" +draft: false +--- + +## Overview +The Kaspersky Neuromorphic Platform (KNP) is a software platform for developing, training, and executing Spiking Neural Networks (SNNs). It is designed to work with various types of input data, including telemetry, events, images, 3D data, audio, and tactile data. KNP allows users to create and train SNNs, convert Artificial Neural Networks (ANNs) into SNNs, and optimize network structures. +The platform supports application development in both C++ and Python and can be deployed on standard CPUs as well as the AltAI-1 neuromorphic processor. This makes it suitable for a range of applications, from research into new neural network topologies and learning rules to implementing solutions for robotics, IoT, and other low-power devices. +Key features include: +Creation and training of SNNs. +Conversion of ANNs to SNNs. +Development of new neuron models and synaptic plasticity rules. +Support for both CPU and neuromorphic hardware (AltAI-1). +Aimed at applications in robotics, IoT, unmanned systems, and wearable devices. diff --git a/content/workshops/neuromorphic-intermediate-representation/index.md b/content/workshops/neuromorphic-intermediate-representation/index.md index 8849181a..008e4fd7 100644 --- a/content/workshops/neuromorphic-intermediate-representation/index.md +++ b/content/workshops/neuromorphic-intermediate-representation/index.md @@ -15,7 +15,7 @@ speaker_code: "https://github.com/neuromorphs/nir" time_zone: CET image: neuromorphic-intermediate-representation.png description: "We show how to use the Neuromorphic Intermediate Representation to migrate your spiking model onto neuromorphic hardware." -software_tags: ["norse", "snntorch", "spyx"] +software_tags: ["norse", "snntorch", "spyx", "neuromorphic-intermediate-representation"] --- Have you wondered how to use neuromorphic hardware platforms? diff --git a/layouts/partials/shared/related-content.html b/layouts/partials/shared/related-content.html index 11bc6fc6..e540c31e 100644 --- a/layouts/partials/shared/related-content.html +++ b/layouts/partials/shared/related-content.html @@ -6,11 +6,8 @@ {{ if $page_context.File }} {{ $current_slug = path.Base $page_context.File.Dir }} {{ end }} -{{ $current_title := $page_context.Title }} - - -{{/* --- Part 1: Find related content (blog, events) that tag this page --- */}} +{{/* --- Part 1: Find INCOMING links from other content (blog, events, etc.) --- */}} {{ $tag_param_key := "" }} {{ if eq $current_type "neuromorphic-hardware" }} {{ $tag_param_key = ".Params.hardware_tags" }} @@ -25,15 +22,14 @@ {{ end }} {{ end }} +{{/* --- Part 2: Find OUTGOING links to other hardware/software --- */}} -{{/* --- Part 2: Find related hardware/software (bidirectional linking) --- */}} - -{{ if eq $current_type "neuromorphic-hardware" }} - {{/* I am a hardware page. Find software I support using my `software_tags` */}} - {{ with .Params.software_tags }} - {{ $software_slugs_to_find := . }} - {{ $all_software_pages := where site.RegularPages "Type" "neuromorphic-software" }} - {{ range $software_page := $all_software_pages }} +{{/* Find software this page links to */}} +{{ with .Params.software_tags }} + {{ $software_slugs_to_find := . }} + {{ $all_software_pages := where site.RegularPages "Type" "neuromorphic-software" }} + {{ range $software_page := $all_software_pages }} + {{ if ne $software_page.Permalink $page_context.Permalink }} {{ $software_slug := "" }} {{ if $software_page.File }}{{ $software_slug = path.Base $software_page.File.Dir }}{{ end }} {{ if and (ne $software_slug "") (in $software_slugs_to_find $software_slug) }} @@ -41,17 +37,25 @@ {{ end }} {{ end }} {{ end }} +{{ end }} -{{ else if and (eq $current_type "neuromorphic-software") (ne $current_slug "") }} - {{/* I am a software page. Find hardware that supports me. */}} - {{ $hardware_pages := where site.RegularPages "Type" "neuromorphic-hardware" }} - {{ range where $hardware_pages ".Params.software_tags" "intersect" (slice $current_slug) }} - {{ $related_items = $related_items | append . }} +{{/* Find hardware this page links to */}} +{{ with .Params.hardware_tags }} + {{ $hardware_slugs_to_find := . }} + {{ $all_hardware_pages := where site.RegularPages "Type" "neuromorphic-hardware" }} + {{ range $hardware_page := $all_hardware_pages }} + {{ if ne $hardware_page.Permalink $page_context.Permalink }} + {{ $hardware_slug := "" }} + {{ if $hardware_page.File }}{{ $hardware_slug = path.Base $hardware_page.File.Dir }}{{ end }} + {{ if and (ne $hardware_slug "") (in $hardware_slugs_to_find $hardware_slug) }} + {{ $related_items = $related_items | append $hardware_page }} + {{ end }} + {{ end }} {{ end }} {{ end }} + {{/* --- Finalize and Render --- */}} -{{/* Deduplicate */}} {{ $unique_related_items := slice }} {{ $seen_permalinks := slice }} {{ range $related_items }} @@ -72,7 +76,6 @@