Commit Graph

675 Commits

Author SHA1 Message Date
fd7ec71396 spirv: split out the bindings
this yields a way cleaner implementation, and particularly one that will
be more friendly to adding optimized materials
2022-01-28 02:14:32 -08:00
46fdd79350 cargo update dependencies to their latest versions
serde, libc, naga
2022-01-27 23:04:58 -08:00
98b03aeb76 spirv: put all the spirv stuff behind a submodule
future work will factor out bindings, etc
2022-01-27 23:01:08 -08:00
da9c1afe90 spirv: cleanup the cpu/gpu interface 2022-01-27 22:43:10 -08:00
5427cd3027 spirv: simplify the Material traits (no more Conductor/MagneticMaterial distinction) 2022-01-27 18:32:45 -08:00
2f7a189725 spirv: move the Material: Clone bounds out of the gpu code 2022-01-26 16:57:59 -08:00
f73874dd8e spirv: fix serde bounds 2022-01-26 16:56:33 -08:00
e358df494f spirv: plumb the Material parameter all the way up to the host SpirvSim side
not all of the sim is actually parameterized over this yet -- but that
part will come!
2022-01-26 16:49:33 -08:00
bbdb833bdb spirv: parameterize the GenericMaterial over its conductor
this will allow for more efficient isomorphic conductors, for example.
2022-01-26 15:32:57 -08:00
2885a517d6 spirv: plumb the material all the way to the gpu interface 2022-01-26 15:20:32 -08:00
e3cd39db7e spirv: hide the entire material behind a trait 2022-01-26 15:06:36 -08:00
a503e9d1f6 spirv: restrict visibility of more fns/fields 2022-01-26 14:56:46 -08:00
71c43d75cf spirv: parameterize *some* of the simulation over the material type 2022-01-26 14:52:01 -08:00
82334cfc5b buffer_proto5: explore more scenarios 2022-01-26 14:30:50 -08:00
711a7be0a1 spirv: abstract that magnetic portion of the material a bit more
this is an incremental step toward specializing the spirv simulation over the
specific material type.
2022-01-26 02:48:14 -08:00
0f8e663d8e spirv: allow simulation sizes > 1 GB 2022-01-26 01:33:05 -08:00
de003f3575 update remaining dependencies (i.e. libc) 2022-01-25 04:15:28 -08:00
d399d51895 update wgpu 0.9 => 0.12
there looks to be a 25% perf hit when running the 160x160x160 benchmark.
2022-01-25 04:11:24 -08:00
a997e01c48 update crossterm and lru dependencies 2022-01-25 03:19:01 -08:00
1e4560ce4c update rust-gpu dependencies and rustc version
also add the Cargo.lock files to version control, since the spirv stuff
is highly dependent on specific versions of dependencies.

TODO: update wgpu to 0.12
2022-01-25 03:10:29 -08:00
0c407eb3c5 Optimize the spirv MHPgram
Decreases time by about 1% (the benchmark might not actually exercise
all of that, though? -- could be largely code-size related)
2022-01-24 22:13:14 -08:00
ad655c7df6 buffer_proto5: include m2_stable over m1_peak measurement 2022-01-24 21:09:50 -08:00
ad204fb592 implement a disk cache for use by buffer_proto5
definitely could be improved (values shouldn't have to be clonable) but
it's a useful start.
2022-01-20 15:45:05 -08:00
a86f37f737 Add an exponential-decay type clock & cache some computations in buffer_proto5 2022-01-19 13:58:24 -08:00
9aa33bf479 buffer_proto5: extend search domain to also vary the clock shape (square/sine) 2022-01-17 23:01:38 -08:00
3788af6ceb buffer_proto5: explore based on wraps coverage % instead of just the absolute wraps count 2022-01-17 20:23:55 -08:00
c6dde6519c buffer_proto5: explore a larger search area, intelligently 2022-01-12 00:51:30 -08:00
ce39c1f50b buffer-proto5: auto-measure the extrema for M/H
also, introduce a `Time` abstraction and allow for more precisely
simulating just a specific time range.

the Sim-related traits still need updating to better integrate this.
2022-01-11 18:23:07 -08:00
8bda52d973 memoize the region lookups for better perf
102s => 57s
2022-01-11 16:21:05 -08:00
3cbab61aa0 optimize distance_to
2.2s => 1.6s
2022-01-11 15:30:22 -08:00
a9b1f42e0c optimize the Dilate operation
30s => 15s
2022-01-11 15:15:23 -08:00
af0e955b0f optimize the dilate operation 2022-01-11 15:11:28 -08:00
0ad013b275 optimize region distance calculations 2022-01-11 14:57:47 -08:00
fe5eab5e43 improve verification for buffer_proto5
verify that different pieces of the sim are properly connected.
2022-01-11 14:03:46 -08:00
be16f7d21c build out the 5th buffer prototype
transmission is best for the 20:16 wrap ratio, so far.
it's less than 100% transmission. there seems to be competing effects
between stronger coupling v.s. amplification as i increase the core2
wraps. so far, that's optimized at 16 wraps. i'll bump the wire wraps on
core1, but this will likely require growing the core's radius, first.
2022-01-07 18:23:04 -08:00
4315d003b2 build out the fourth buffer prototype 2022-01-03 12:48:51 -08:00
fa841b520c allow the Wrap region to have a center point 2021-12-27 21:09:30 -08:00
1dcc0e9237 implement a Wrap region, which wraps some inner thing into a circle 2021-12-24 16:23:09 -08:00
44624f4e39 implement a Spiral region
this isn't 100% what i need for my buffer, but i should be able to
create some morph that wraps this cylinder-like spiral into a torus
spiral.
2021-12-24 13:30:02 -08:00
1f6aaf91f5 Fix some compilation warnings 2021-12-24 13:09:52 -08:00
13b13acb88 split the primitives out of the toplevel region module 2021-12-24 13:05:56 -08:00
c0c9b07dc4 conclude the buffer3 example
the takeaway is that increased loops (if symmetric) only increase the
strength (consistency) of coupling, but not the coupling ratio.
2021-12-24 13:00:06 -08:00
6a42069659 new example which stacks cores vertically, for denser coupling. 2021-12-23 06:30:26 -08:00
5324516577 work the multi-coupling buffer a bit more 2021-12-23 02:50:31 -08:00
5b14abe275 extend the buffer example to support multiple coupling loops 2021-12-21 02:41:48 -08:00
84f9178948 buffer example: validate that the regions are filled AS EXPECTED 2021-12-21 00:51:12 -08:00
88a0bcd4cb add a method to test the contents of a region against some expected material 2021-12-21 00:47:24 -08:00
754e8488da fix .gitignore to ignore target/ and out/ directories 2021-12-20 23:47:42 -08:00
bb4594ee4a add old pml.rs, which should have been checked in SEVERAL months ago 2021-12-20 23:45:47 -08:00
fb3380943b add a way to measure the volume of a Region 2021-12-20 23:45:11 -08:00