Commit Graph

419 Commits

Author SHA1 Message Date
a2ee85d03f stim: remove the unused Stimulus impl for Shifted 2022-08-24 15:42:37 -07:00
7f089bad45 stim: break apart into smaller modules 2022-08-24 15:27:40 -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
488d0fe62a sim: spirv: remove apply_stimulus test-only function 2022-08-24 01:51:32 -07:00
dd6f598e44 spirv tests: reorganize 2022-08-24 01:42:10 -07:00
c008fb963e app: multi-core-inverter: explore more of the space 2022-08-24 01:24:16 -07:00
4168b9e4c6 spirv: uncomment some old tests
one of them fails, but it fails 600+ steps into the test.
not sure how problematic this really is, yet.
2022-08-24 00:16:26 -07:00
e94dc49d0f spirv test: mb_ferromagnet tests both e and h fields
we have to lessen the bounds a little bit.
no surprise: *not testing h* caused them to differ substantially.
i'd like to test more strenuously, but that would likely require
enabling R64 on the gpu side.
2022-08-24 00:04:20 -07:00
cdb0c3eaaa leave a TODO: enumerated: make use of List abstractions 2022-08-23 23:51:03 -07:00
ab6496d5f6 backfill Vec2::rotate tests 2022-08-23 23:49:43 -07:00
b16316b75b Driver: remove the unecessary Boxing of RenderedStimulus
no obvious perf diff one way or the other, yet
2022-08-23 23:33:22 -07:00
4525bbde56 remove unused lazy_static dependency 2022-08-23 23:29:47 -07:00
a51c3a1d14 sim: remove the unused StaticSim type alias 2022-08-23 23:25:08 -07:00
8e48414d68 SimMeta: make the fields private 2022-08-23 23:23:49 -07:00
17446cdc6b sim: remove unused AbstractSim::to_static method 2022-08-23 23:13:15 -07:00
2af754bf29 sim/legacy: remove
that crazy tangle of legacy code evolved over 2+
years into the beast it is today.
but it has no relevance in the GPU-enabled world of today,
particularly one with more rigid Material abstractions.

good things come to an end. i'll try not to be too sentimental.
2022-08-23 23:01:29 -07:00
1891a72df3 spirv tests: no longer test against the legacy simulation:
test the CPU impl against the GPU impl.

it's a different class of test. but it provides some value yet and most
importantly, allows us to strip out the legacy simulation code without
losing *too much* test coverage.
2022-08-23 20:05:30 -07:00
e7ed46bb89 spirv tests: clean up the code layout a bit 2022-08-23 19:23:02 -07:00
c8735ce164 legacy: mark port status of remaining tests 2022-08-23 19:15:44 -07:00
397eaa5a24 sim: port conductor-related legacy tests to spirv 2022-08-23 19:09:32 -07:00
4024ee3316 sim: port legacy test to spirv: sane_boundary_conditions 2022-08-23 16:56:35 -07:00
5c7ce8437a sim: port legacy energy_conservation_over_time test to spirv
the original had a suspect dimension (it was apparently applying a
stimulus *outside* the simulation). i've rectified that, but left a note
to ensure this doesn't happen again...
2022-08-23 16:38:24 -07:00
dcd7079c5f meas: Energy: allow non-meas code to query a simulation's energy
this is especially useful in test
2022-08-23 16:37:31 -07:00
f47c713e0e stimulus: add a structure to sum together two stimuli of different types
this may resemble the original List stuff. only it's more specialized,
for only summing two of a thing.
2022-08-23 16:35:29 -07:00
3326acd125 Driver: update TODOs 2022-08-23 01:27:03 -07:00
3c30ac33aa Driver: replace the other ThreadPool with a JobPool
as a bonus we can remove the threadpool dep :-)
2022-08-23 00:03:58 -07:00
7586bc8ff2 JobPool: implement buffering
this does give a little perf bump
2022-08-22 23:38:23 -07:00
a15af4d3a3 JobPool: remove outdated TODO 2022-08-22 20:13:35 -07:00
31726abb99 Driver: stimulus: use our own JobPool abstraction
this one leverages crossbeam.
it does appear to schedule jobs faster than the rust-threadpool.
curiously, the `recv` impl seems to be slower.
maybe that's because of the (inadvertent, unecessary) switch from mpsc
to mppc. worth trying to just insert a buffer.
2022-08-22 20:09:59 -07:00
eb95367fa5 JobPool: don't parameterize the type over its Worker
the Worker is often hard to specify concretely at the use site.
2022-08-22 20:05:41 -07:00
284b7368ef add a JobPool type to better abstract over repeat asynchronous work 2022-08-22 19:30:07 -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
7bce17f56b driver: more precisely measure stimuli "prep"
i'm beginning to think the `threadpool` library is actually just kinda
slow.
2022-08-22 02:32:58 -07:00
4df6e19abe Driver: slightly better instrumentation 2022-08-22 02:17:59 -07:00
532dd26e22 driver: optimization: don't memcopy the RenderedStimulus across threads 2022-08-22 01:49:35 -07:00
8268215441 app: multi-core-inverter: fix non-terminating drive signal 2022-08-22 01:41:20 -07:00
232e0fdafb Stimulus: replace Gated with a type alias 2022-08-22 01:36:47 -07:00
b0bedd1efa Driver: fix a bug where we might step more than the user wanted 2022-08-22 01:23:41 -07:00
82af4b100d driver: optimize the step_multiple step count calculation
this was using a stupid amount of compute.
we still have about 7% time unaccounted for. down from 12-15%.
2022-08-22 01:07:27 -07:00
e5c8bcff95 Driver: remove dead add_classical_boundary_explicit function 2022-08-22 00:51:53 -07:00
ff13a1e96c driver: address a TODO 2022-08-22 00:43:07 -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
e32d500f8c real: add sin, cos and ln2 functions 2022-08-22 00:37:19 -07:00
f0fc324188 Stimulus: remove unused eval_into trait method 2022-08-21 21:41:27 -07:00
c02e5427d4 spirv tests: port to R32
this gives better debug info
2022-08-21 20:46:57 -07:00
29e78c74fe real: implement std::iter::Sum 2022-08-21 20:46:43 -07:00
527e2746ed driver: TODO about optimization 2022-08-21 19:25:20 -07:00
75a5041ed6 diagnostics: nicer formatting 2022-08-21 19:18:42 -07:00