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.
This commit is contained in:
2022-09-01 17:41:13 -07:00
parent 482f07520c
commit 19ff08ada8

View File

@@ -415,7 +415,7 @@ fn run_sim(id: u32, p: Params, g: Geometries) -> Results {
let mut driver = Driver::new(SpirvSim::<f32, Mat, WgpuBackend>::new( let mut driver = Driver::new(SpirvSim::<f32, Mat, WgpuBackend>::new(
g.dim.to_index(p.geom.feat_size), p.geom.feat_size g.dim.to_index(p.geom.feat_size), p.geom.feat_size
)); ));
if !driver.add_state_file(&*format!("{}/state.bc", prefix), 16000) { if !driver.add_state_file(&*format!("{}/state.bc", prefix), 4000) {
// mu_r=881.33, starting at H=25 to H=75. // mu_r=881.33, starting at H=25 to H=75.
let ferro_mat = mat::Ferroxcube3R1MH::new(); let ferro_mat = mat::Ferroxcube3R1MH::new();
// let ferro_mat = mat::db::conductor(wire_conductivity); // let ferro_mat = mat::db::conductor(wire_conductivity);
@@ -528,6 +528,7 @@ fn run_sim(id: u32, p: Params, g: Geometries) -> Results {
driver.add_csv_renderer(&*meas_csv, 400, None); driver.add_csv_renderer(&*meas_csv, 400, None);
driver.add_csv_renderer(&*meas_sparse_csv, 8000, None); driver.add_csv_renderer(&*meas_sparse_csv, 8000, None);
driver.set_steps_per_stimulus(20);
driver.step_until(duration); driver.step_until(duration);
let (m1_peak, m1_stable) = significa(CsvRenderer::new(&*meas_sparse_csv).read_column_as_f32("M(mem1)")); let (m1_peak, m1_stable) = significa(CsvRenderer::new(&*meas_sparse_csv).read_column_as_f32("M(mem1)"));