2044397047
app: stacked_cores: prototype
...
the long term goal of this demo is to see if:
(a) we can get stronger coupling between two cores than with multi-core-inverter.
(b) we can get amplification by using a charge-pump like concept.
(c) we can construct a *working* multi-core-inverter from this.
2022-09-01 18:41:49 -07:00
19ff08ada8
app: buffer_proto5: increase fps by setting steps_per_stim
...
the bottleneck seems mostly to be transferring data CPU <-> GPU.
boosting to 200 steps per stim gets us like 50 fps, but causes serious
CPU-side lag.
2022-09-01 17:41:13 -07:00
482f07520c
app: buffer_proto5: fix so DiskCache::get_or_insert flushes
2022-08-31 03:03:13 -07:00
0a1452cb5c
buffer_proto5: parallelize a bit more
2022-08-31 02:55:40 -07:00
184997a701
app: buffer_proto5: parallelize the geometry searches
2022-08-31 02:40:47 -07:00
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
538db399a9
Stimulus: Sinusoid: remove the amp
component
2022-08-28 02:01:33 -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
b160823a81
fix broken cargo build --all
2022-08-22 14:17:51 -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
9461cc7781
stim: introduce a VectorField trait which we'll use to build a more structured approach to Stimulus
2022-08-18 17:08:44 -07:00
6750feef8d
stim: remove TimeVarying3
...
`TimeVarying`(1) is enough for what we want.
2022-08-18 15:51:54 -07:00
570f058ee1
rename AbstractStimulus
-> Stimulus
2022-08-18 15:27:18 -07:00
60e44d6d4d
rename Stimulus
-> RegionGated
2022-08-18 15:22:28 -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
e141047bec
Driver: simplify the StimuliAdapter
...
it was basically dead code.
2022-08-12 14:42:56 -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
084c5bc342
Region: remove Clone
from the trait, and also parameterize everything
...
i didn't necessarily *want* to parameterize it all,
but it turned out to be easier to do that than to force all users to
workaround the lack of Clone.
2022-08-12 01:42:19 -07:00
d5fbb4e9b2
Region: remove the Serialization requirement
2022-08-12 00:57:01 -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