summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanner Robison <[email protected]>2026-06-16 10:38:54 -0700
committerTanner Robison <[email protected]>2026-06-16 10:38:54 -0700
commit190b63c9e25770a52f9b93f4a6267c2bc21c3cfc (patch)
treeb2ccd2b12054cf58ff5a031df42688405288845a
parent6a5028e536a26c6a4556f4f1ed76550eb281d427 (diff)
some more notes
-rw-r--r--.gitignore1
-rw-r--r--Learning_notes/Memristor & Memcapacitor in Neural networks.md12
-rw-r--r--Learning_notes/NeuroBench/algorithm track.md (renamed from neurobench_notes/algorithm track.md)0
-rw-r--r--Learning_notes/NeuroBench/neuroBench_notes.md (renamed from neurobench_notes/neuroBench_notes.md)1
-rw-r--r--Learning_notes/NeuroBench/system track.md (renamed from neurobench_notes/system track.md)0
5 files changed, 13 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..dd33554
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.obsidian
diff --git a/Learning_notes/Memristor & Memcapacitor in Neural networks.md b/Learning_notes/Memristor & Memcapacitor in Neural networks.md
new file mode 100644
index 0000000..bd1cc20
--- /dev/null
+++ b/Learning_notes/Memristor & Memcapacitor in Neural networks.md
@@ -0,0 +1,12 @@
+Just some quick notes on memory components in crossbar arrays for Neural Networks
+## Von Neumann Bottleneck
+The architecture strictly seperates the processing unit from the memory unit. Everytime a calculation is done in a neural network the processor has to fetch the "weights" from memory, do the calculation and then send it back. Modern neural networks can require billions or trillions of weights, so up to 90% of the energy and time spent are just moving data back and forth. memristor & memcapacanges depending on the history of the voltage and current that have previously paitive circuits eliminate this by doing in memory computing (IMC).
+
+## memristors
+A memristor's resistance changes depending on the history of the voltage and current that have previously passed through it. So it has non volatile memory. By applying specific voltage pulses you can tune the resistance to a high resistance state or a low resistance state, essentially giving it on and off states.
+
+Neural networks use Vector Matrix multiplication (VMM). Where a set of inputs is multiplied by a matrix of weights to determine how strongly a set of neurons should fire. Instead of having to calculate "line by line" in CMOS NN's memristor networks arrange thousands of memristors into a crossbar array (basically a grid) and can solve VMM instantly and in parallel. It does this using ohm's law and kirchoff's current law. When you apply an input voltage, it passes through a memristor that has a certain conductance, and the resulting electrical current is the multiplication of the input (V x G) then when all the currents meet in a single column they add together and that is the weighted sum.
+
+## memcapacitors
+Have practically zero static power dissipation. These are great for reservoir computing, a type of Recurrent Neural Network (RNN) used to process time-series data, things like speech recognition, heartbeat monitoring, or epilepsy detection. Also you can read the resovoir state without needing an extra read pulse so they are faster and more efficient.
+Because a memcapacitor dynamically changes how it accumulates charge based on its past stimulation it perfectly replicates short-term and long-term plasticity just like cell membranes for memory. We can arrange these in a crossbar array but instead of measuring the output current we have to measure the displacement charge. So the NN can still perform VMM but with a much smaller thermal footprint. It does have some difficulties though, Reading the displacement charge is technically more difficult than just an output current, and actually making memcapacitors is more difficult than resistive RAM (RRAM). \ No newline at end of file
diff --git a/neurobench_notes/algorithm track.md b/Learning_notes/NeuroBench/algorithm track.md
index aaaedc8..aaaedc8 100644
--- a/neurobench_notes/algorithm track.md
+++ b/Learning_notes/NeuroBench/algorithm track.md
diff --git a/neurobench_notes/neuroBench_notes.md b/Learning_notes/NeuroBench/neuroBench_notes.md
index 9e707ad..783d32c 100644
--- a/neurobench_notes/neuroBench_notes.md
+++ b/Learning_notes/NeuroBench/neuroBench_notes.md
@@ -6,4 +6,3 @@ trying to replicate the biophysics of the brain in hardware, or "porting primita
(left incomplete)
## Algorithm/System tracks
There are 2 different benchmark tracks aiming for faster optimization. The [[algorithm track]] is meant to evaluate in a system independant manner, meaning I don't need to worry about the implementation platform. The [[system track]] is there so I can then optimize the algorithm for the specific platform.
-
diff --git a/neurobench_notes/system track.md b/Learning_notes/NeuroBench/system track.md
index 5aa7dad..5aa7dad 100644
--- a/neurobench_notes/system track.md
+++ b/Learning_notes/NeuroBench/system track.md