diff options
| author | Tanner Robison <[email protected]> | 2026-06-22 14:26:09 -0700 |
|---|---|---|
| committer | Tanner Robison <[email protected]> | 2026-06-23 20:31:09 -0700 |
| commit | c53c13b873ea1e69ed260844268f11708d4b4a5b (patch) | |
| tree | 1b9f4d6ae9bccff1c52cf8bfe7c1f953056eaecf /custom_benchmark | |
| parent | 30dc9553e8a7a7d603077a80238782298d0b9349 (diff) | |
Removed Neurobench because of incompatibility problems
Diffstat (limited to 'custom_benchmark')
| -rw-r--r-- | custom_benchmark/README.md | 5 | ||||
| -rw-r--r-- | custom_benchmark/memTorch_SNN.py | 28 | ||||
| -rw-r--r-- | custom_benchmark/memristor_benchmark.cpp | 2 |
3 files changed, 35 insertions, 0 deletions
diff --git a/custom_benchmark/README.md b/custom_benchmark/README.md new file mode 100644 index 0000000..7513f7f --- /dev/null +++ b/custom_benchmark/README.md @@ -0,0 +1,5 @@ +# custom benchmark for memTorch simulations + +## metrics + +## tasks diff --git a/custom_benchmark/memTorch_SNN.py b/custom_benchmark/memTorch_SNN.py new file mode 100644 index 0000000..67e9cb6 --- /dev/null +++ b/custom_benchmark/memTorch_SNN.py @@ -0,0 +1,28 @@ +import torch +import memtorch + +# 1. Standard memTorch setup (Static crossbar weights) +ann_layer = torch.nn.Linear(100, 10) +patched_layer = memtorch.mn.Module.patch_model(ann_layer, memristor_model) + +# 2. Your custom SNN wrapper loop +def forward_snn(input_spikes_over_time): + # input_spikes_over_time shape: (time_steps, batch_size, input_dim) + time_steps = input_spikes_over_time.shape[0] + v_mem = torch.zeros(batch_size, 10) # Hidden neuron membrane potentials + output_spikes = [] + + for t in range(time_steps): + # Pass binary spikes through memTorch's physical crossbar simulation + current_in = patched_layer(input_spikes_over_time[t]) + + # Leaky Integrate-and-Fire (LIF) logic (Written by you!) + v_mem = 0.9 * v_mem + current_in # Leak & Integrate + + # Fire threshold + spike = (v_mem >= 1.0).float() + v_mem[v_mem >= 1.0] = 0.0 # Reset + + output_spikes.append(spike) + + return torch.stack(output_spikes) diff --git a/custom_benchmark/memristor_benchmark.cpp b/custom_benchmark/memristor_benchmark.cpp new file mode 100644 index 0000000..91e7eb6 --- /dev/null +++ b/custom_benchmark/memristor_benchmark.cpp @@ -0,0 +1,2 @@ +#include <iostream> +#include <torch/extension.h> |
