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