a6fe05a993
app: multi-core-inverter: add more sims
2022-08-31 01:40:29 -07:00
c050b0406f
app: multi-core-inverter: add some more simulations
2022-08-30 01:10:39 -07:00
a811561f14
app: multi-core-inverter: more simulations
2022-08-28 02:01:51 -07:00
19f08fce9f
app: multi-core-inverter: tune drive current and conductivity
2022-08-27 03:14:41 -07:00
529ad943ac
app: multi-core-inverter: explore a few more simulations
2022-08-27 01:37:23 -07:00
532055e045
app: multi-core-inverter: define a few more sims
...
trying to strike the right balance between coupling conductivity and
decay time.
2022-08-26 18:13:50 -07:00
5b66c2bc26
app: multi-core-inverter: parameterize a few more cases
...
exploring how low control conductivity can go
2022-08-26 04:17:01 -07:00
7f40b3ccd5
app: multi-core-inverter: more experiments with varied conductivities
2022-08-25 19:38:12 -07:00
bf3f79dd50
app: multi-core-inverter: implement some sims which specify conductivities separately
2022-08-25 15:43:13 -07:00
f80b2e22a4
app: multi-core-inverter: allow setting coupling and drive conductivities separately
2022-08-25 15:37:06 -07:00
6afa65c3e4
app: multi-core-inverter: design a few new experiments which vary the conductivity
2022-08-25 15:32:37 -07:00
2c68a53668
rename StimExt
to TimeVaryingExt
2022-08-24 15:44:12 -07:00
9301734fcf
app: multi-core-inverter: parameterize the wire conductivity
2022-08-24 15:06:41 -07:00
6d717fdda4
app: multi-core-inverter: explore multiple parameterizations in one run
2022-08-24 02:08:06 -07:00
c008fb963e
app: multi-core-inverter: explore more of the space
2022-08-24 01:24:16 -07:00
5fff872890
app: multi-core-inverter: implement 2-core inverter
...
this is a simpler test-bed to explore things like clock duration
2022-08-22 18:14:28 -07:00
8268215441
app: multi-core-inverter: fix non-terminating drive signal
2022-08-22 01:41:20 -07:00
e5c8bcff95
Driver: remove dead add_classical_boundary_explicit
function
2022-08-22 00:51:53 -07:00
24b82037b4
Stimulus: parameterize over R.
...
this saves us from a `mem::transmute` in the sim code to get
`Fields<R>`.
2022-08-22 00:37:34 -07:00
6c9a6e1ffa
driver: all the user to configure the number of steps to go between stimulus application
2022-08-21 18:22:11 -07:00
ad5f064584
stim: Simplify the Exp implementation. it's no longer a Stimulus
2022-08-19 04:14:33 -07:00
77124fcdaf
driver: implement an optimized stimulus adapter over ModulatedVectorField
...
this boosts perf from 520fps -> 632fps.
it does some uneccessary clones.
but it looks like the bulk of the inefficiency resides inside
the sim/spirv/ code though.
it might be that this is nearly memory-bottlenecked.
if so, backgrounding it might be sensible.
2022-08-19 03:54:43 -07:00
35dbdffda7
driver: lay some scaffolding to allow us to optimize the stimulus in future
2022-08-18 22:19:50 -07:00
ffda00b796
stim: convert CurlStimulus to a CurlVectorField and use ModulatedVectorField
...
this opens the door to caching the vector field stuff.
2022-08-18 20:47:36 -07:00
478db86b75
multi-core-inverter: remove the List shenanigans
2022-08-18 20:02:09 -07:00
570f058ee1
rename AbstractStimulus
-> Stimulus
2022-08-18 15:27:18 -07:00
6e7ae48d86
stim: remove the extra norm
call in CurlStimulus application
...
we call `with_mag` after, making it redundant.
2022-08-18 14:28:33 -07:00
fb9d982545
multi-core-inverter: test an alternate Vec-based stimulus
...
it's about 0.5% slower. not much.
2022-08-18 04:12:57 -07:00
ffa13ccd79
app: multi-core-inverter: clean this up by using map/flatten operations
2022-08-17 02:53:14 -07:00
107a28e7fd
app: multi_core_inverter: replace these into_list
s with a map operation
2022-08-16 16:53:22 -07:00
7bb3740ce2
app: multi_core_inverter: convert to List primitives
...
goal will be to replace this with enumerate/map/flatten ops
2022-08-16 16:40:39 -07:00
1e994a4feb
app: multi_core_inverter: more experiments (clock decay length, drive current, clock length)
2022-08-14 16:24:58 -07:00
f1143ec365
app: multi_core_inverter: don't save meas.csv
...
this boosts perf by like 5x
2022-08-13 16:20:24 -07:00
ee93c22f4a
app: multi_core_inverter: perf: move the stimulus Gating to outside the CurlStimulus
...
the region.contains() logic is much more expensive than the time bounds
check.
this gets an easy 50% perf boost to the ENTIRE simulation
2022-08-13 15:00:56 -07:00
434dc2cbd5
app: multi_core_inverter: de-virtualize the stimuli
...
this gets like a 5% perf gain.
there are obviously cleaner ways to do it (e.g. use a ListVisitor),
but this is only a proof of concept.
given the low perf difference, i'll likely revert this or explore other
options.
2022-08-13 03:51:52 -07:00
31fd83eb34
apps: multi_core_inverter: setup for 4ns clock phases
...
double what they were before. gives more time for things to settle.
2022-08-12 14:42:17 -07:00
d379a7b0ee
app: multi_core_inverter: try a related experiment where S0 is initialized to logic low
2022-08-11 22:24:19 -07:00
831cbfa76c
app: multi_core_inverter: tune the state serializations
...
less frequent (for less disk space), and also save state
in a recoverable manner
2022-08-11 18:22:55 -07:00
c83a44299f
app: multi-core-inverter: fix S4 drive signal specification
...
there was a spuriuous high -> low transition
2022-08-11 15:24:26 -07:00
e23ab9efd7
app: multi_core_inverter: try a 5-stage inverter (each stage inverts)
...
we're diverging from the blog pretty far now.
but it turns out that, because of the inversion in Maxwell's
$\nabla x E = -dB/dT$ equation, the trivial wiring actually leads to
natural inverters.
2022-08-11 03:01:08 -07:00
652621e47a
app: multi_core_inverter: more precise clock management
...
try to control the edges when the clock is release to prevent ringing.
2022-08-10 16:39:56 -07:00
59a4419130
app: multi_core_inverter: more detailed drive cycle
2022-08-10 15:47:28 -07:00
46a53a4dde
app: multi_core_inverter: fix up the drive sequence
...
see the code comment for explanation.
2022-08-10 01:43:36 -07:00
3998d72d02
app: multi_core_inverter: drive all four cores for four clock cycles
2022-08-10 01:35:42 -07:00
1771973c6d
CurlStimulus: take axis
and center
directly from the Region
...
by taking more from the region, we'll be able to reuse common code
and also make this more testable
2022-08-09 22:10:16 -07:00
6f0e35ea35
multi_core_inverter: add some stimuli and measurements
2022-07-29 23:53:44 -07:00
26efc12c21
multi_core_inverter: abstractions to allow swapping out float impl and backend
2022-07-28 13:20:26 -07:00
fe47eb09f8
driver: rename new_with_state
-> new
2022-07-28 01:59:11 -07:00
7a6bbf06a5
driver: remove new_spirv
method
2022-07-28 01:52:09 -07:00
47e11474d2
parameterize SpirvSim over R: Real
2022-07-25 14:49:32 -07:00