HN user

jegp

40 karma

Researching neuromorphic computing

https://jepedersen.dk

Posts7
Comments27
View on HN
Hyprland Premium 1 year ago

Great. If they can make some money out of this, why not?

I wonder what happens if they lock down some features as premium-only. The competition is tight in this space and there are tons of alternatives to Hyprland, like Sway, River, etc. Monetizing open-source code sounds like a dangerous path...

That's a great point. I thought about something similar, but I also realized the arXiv numbers are growing like crazy, so I wonder how long it'll take for the (hardcoded) numbers to be deprecated. One could of course add some kind of cronjob to update the numbers, but that sounds like a lot of work...

Conflicting motivations sounds like a very reasonable thing in large populations, in fact. But I have a hard time believing why workers wouldn't unanimously want better pay, better conditions, and more power. I would be curious to see any counter examples!

As an outsider, I'm astounded why workers aren't unionizing to a much higher degree. It's been proven to work [1] against the misinformation, discord, and wealth inequality that companies will, inevitably, cause. Despite the small union fee, the individual clearly stands to benefit[1]. Is it because people are cheap? Or not familiar with history? You'd think that tech workers were quite informed.

[1] https://nordics.info/show/artikel/trade-unions-in-the-nordic...

Hey HackerNews community,

I wanted to share my excitement around our work on a "Neuromorphic Intermediate Representation" (NIR), published in Nature Communications: "NIR defines a set of computational and composable model primitives as hybrid systems combining continuous-time dynamics and discrete events. ... NIR decouples the development of neuromorphic hardware and software, enabling interoperability between platforms and improving accessibility to multiple neuromorphic technologies."

Why This Matters:

Neuromorphic computing, inspired by the architecture and processes of biological nervous systems, has long held promise for achieving more efficient, scalable, and intelligent systems. But so far, there hasn't been any unifying computational model, which has (1) scattered the scientific efforts and (2) hindered reproducibility.

Enter NIR, which acts as a kind of neural assembly language — a common ground where diverse architectures of neuromorphic systems can communicate seamlessly. NIR models are directly interpretable by neuromorphic platforms, much like the earliest compilers that bridged the gap between assembly languages and digital processors.

Key Highlights:

    Seamless Translation Between Computational Realms: The NIR creates a natural mapping between continuous-time neural dynamics and discrete computational models, allowing for unprecedented interoperability between neuromorphic and conventional hardware.

    Enhanced Efficiency and Scalability: By utilizing principles from both analog and digital realms, this approach optimizes data processing, reducing power consumption while maintaining speed and accuracy. This could pave the way for more efficient AI models that run on edge devices and within IoT ecosystems.

    Inspired by Biology, Refined for Technology: NIR embraces the adaptive, decentralized nature of biological neural networks, bringing us closer to hardware that can support general intelligence rather than narrowly focused algorithms.
Why Now is the Time to Pay Attention:

This isn't just another incremental step in AI or computing. NIR could be the catalyst that helps us unlock the next generation of intelligent systems — ones that don't just mimic intelligence but are built to understand, learn, and grow from the complexity of the world around them. This is a chance for developers, researchers, and innovators to join a movement that takes computing closer to the elegance of the human brain.

I'm curious to hear your opinions and feedback!

Disclaimer: I'm the first author.

It's still possible to train a network that's aware of the physics and then transfer that to physical devices. One approach to this from the neuromorphic community (that's been working on this for a long time) is called the Neuromorphic Intermediate Representation (NIR) and already lets you transfer models to several hardware platforms [1]. This is pretty cool because we can use the same model across systems, similar to a digital instruction set. Ofc, this doesn't fix the problem of sensitivity. But biology fixed that with plasticity, so we can probably learn to circumvent that.

[1] https://github.com/neuromorphs/nir (disclaimer: I'm one of the authors)

Thank you for your seriously thoughtful insights. You're saying we should have reproducibility, communication, and exploration. I fully agree with that, but I would like to push back on your point that novelty is destructive. Can't redundancy be similarly destructive? Given finite resources, shouldn't the authors have some responsibility to check their findings against previous insights? Otherwise, in the worst case, Goodhart can forget about his law because we'll never agree on any metrics in the first place.

To clarify, this is orthogonal to the point about the paper. I'm still not convinced it's entirely different, but I agree that the value of the paper doesn't purely depend on that. It's a nice exposition irregardless.

Is this novel? Spatial codes have been known for long and neuron (populations) are known to code for time [1]. That reference also states that "Neurons that respond selectively to the temporal and spatio-temporal structure of sensory stimuli have also been identified in the auditory system of birds and mammals". Doesn't that pre-empt the conclusion that "Thus, the brain can represent time and space as overlapping but dissociable dimensions".

[1] https://royalsocietypublishing.org/doi/10.1098/rstb.2012.046...

A friend of mine built this course on real-time coding for GPUs with Rust, and I'm seriously impressed. The scope is great, the content, and questions are spot-on, and it's crammed with humorous comments and memes. If you're into fast programs on modern hardware, this is a great start!

Spiking neural networks and neuromorphic hardware platforms that emulate neural dynamics are slowly gaining momentum and entering main-stream usage. Despite a well-established mathematical foundation for neural dynamics, the implementation details vary greatly across different platforms. Correspondingly, there are a plethora of software and hardware implementations with their own unique technology stacks. Consequently, neuromorphic systems typically diverge from the expected computational model, which challenges the reproducibility and reliability across platforms. Additionally, most neuromorphic hardware is limited by its access via a single software frameworks with a limited set of training procedures. Here, we establish a common reference-frame for computations in neuromorphic systems, dubbed the Neuromorphic Intermediate Representation (NIR). NIR defines a set of computational primitives as idealized continuous-time hybrid systems that can be composed into graphs and mapped to and from various neuromorphic technology stacks. By abstracting away assumptions around discretization and hardware constraints, NIR faithfully captures the fundamental computation, while simultaneously exposing the exact differences between the evaluated implementation and the idealized mathematical formalism. We reproduce three NIR graphs across 7 neuromorphic simulators and 4 hardware platforms, demonstrating support for an unprecedented number of neuromorphic systems. With NIR, we decouple the evolution of neuromorphic hardware and software, ultimately increasing the interoperability between platforms and improving accessibility to neuromorphic technologies. We believe that NIR is an important step towards the continued study of brain-inspired hardware and bottom-up approaches aimed at an improved understanding of the computational underpinnings of nervous systems. NIR is available at https://github.com/neuromorphs/nir

If we think about spikes as discretized transfer functions, I would say it's totally viable to "hack" them to represent numerical approximations. In fact, a recent paper demonstrates that exact mappings between ANNs and SNNs exist: https://arxiv.org/abs/2212.12522 There are some pitfalls here, though, and I'm biased against these kinds of methods because they don't use the temporal traces of the neuron integration.

Regarding RWKV, someone actually trained a "SpikeGPT": https://arxiv.org/abs/2302.13939 That's a neat insight, which will be great for porting these models onto energy-efficient devices. But the learning problem is still the most interesting open question to me. If we crack that, we can scale down GPT-like models by several orders of magnitude since we can "re-learn" subproblems instead of "hardcode" a silly number of permutations, like the present models do. Neuromorphic hardware (brains included) lend themselves incredibly well to learning. We just don't know how to exploit that yet.

Regarding the optical layers, are you referring to optical chips like this one https://www.nature.com/articles/s41467-020-20719-7 ? That would be an example of using optics to implement your stateful transfer functions (https://en.wikipedia.org/wiki/Optical_neural_network), but there are several of other incredibly promising technologies such as memristors (https://en.wikipedia.org/wiki/Memristor), quantum materials (https://arxiv.org/abs/2204.01832) and even biologically based chips (https://en.wikipedia.org/wiki/Wetware_computer). My take on this is that these technologies exploit different principles of physics to "compute" in some way. But I like to think that our computational theories and principles are independent of the implementation substrates.

There's still a long way to go, but practically speaking, I'm convinced this kind of hardware will have profound consequences for the way that we compute today. We're talking at least 3 orders of magnitude in compute. Imagine ChatGPT running 1000 times as fast. It's ridiculous.

I'm a PhD student working with neuromorphic computing. I like to think about SNNs as RNNs with discretized outputs. The neurons themselves may have some complicated nonlinear dynamic (currents integrating into the membrane voltage somehow etc.) but they are essentially just stateful transfer functions. The notion of spikes is a crippling simplification, but it's power efficient and you can argue for numerical stability in the limit. So I tend to consider spikes as an annoying engineering constraint in some neuromorphic systems. Brains function perfectly well without them, although in smaller scales (C. elegans).

The true genius of neuromorphics in my view, is that you can build analog components that performs neutron integration for free. Imagine a small circuit that "acts" like the stateful transfer function, with physical counterparts to the state variables (membrane voltage, synaptic current, etc.). In such a circuit you don't need transistors to inefficiently approximate your function. Physics is doing the computation for you! This gives you a ludicrous advantage over current neural net accelerators. Specifically 3-5 orders of magnitude in energy and time, as demonstrated in the BranScaleS system https://www.humanbrainproject.eu/en/science-development/focu...

Unfortunately, that doesn't solve the problem of learning. Just because you can build efficient neuromorphic systems doesn't mean that we know how to train them. Briefly put, the problem is that a physical system has physical constraints. You can't just read the global state in NWN and use gradient descent as we would in deep learning. Rather, we have to somehow use local signals to approximate local behaviour that's helpful on a global scale. That's why they use Hebbian learning in the paper (what fires together, wires together), but it's tricky to get right and I haven't personally seen examples that scale to systems/problems of "interesting" sizes. This is basically the frontier of the field: we need local, but generalizable, learning rules that are stable across time and compose freely into higher-order systems.

Regarding educational material, I'm afraid I haven't seen great entries for learning about SNNs in full generality. I co-author a simulator (https://github.com/norse/norse/) based on PyTorch with a few notebook tutorials (https://github.com/norse/notebooks) that may be helpful.

I'm actually working on some open resources/course material for neuromorphic computing. So if you have any wishes/ideas, please do reach out. Like, what would a newcomer be looking for specifically?

Spotifyd 4 years ago

Exactly. And it gets even better if you pair it with a personal voice assistant, like mycroft.ai

"Hey Mycroft, play songs about better software integrations"

From personal experience, using NixOS saves me a lot of time compared to Debian based distros. The initial setup is painful, but after that you are in complete control. Don't need to update? Don't! I had desktop sessions running flawlessly for months without any interruptions. Never seen that before on other distros, really.

\tau is a common symbol for time constants which, briefly put, determines how fast something decays over time. Syn for synaptic current and mem for membrane voltage. We've written some documentation around our neuron equations in Python that explains this: https://norse.github.io/norse/auto_api/norse.torch.functiona...

See also our tutorial on neuron parameter optimization to understand how it's useful for machine learning: https://github.com/norse/notebooks#level-intermediate

There's also a great book on the topic by Gerstner available online: https://neuronaldynamics.epfl.ch/

Disclaimer: I'm a co-author of the library Norse

Regarding the target audience, it's actually not entirely clear to me. This lies in the intersection between computational neuroscience and deep learning, which isn't a huge set of people. So, I think you're question is highly relevant and we (as researchers) have a lot of work in front of us to explain why this is interesting and important.