verilator/include
Geza Lore b51f887567
Perform VCD tracing in parallel when using --threads (#3449)
VCD tracing is now parallelized using the same thread pool as the model.
We achieve this by breaking the top level trace functions into multiple
top level functions (as many as --threads), and after emitting the time
stamp to the VCD file on the main thread, we execute the tracing
functions in parallel on the same thread pool as the model (which we
pass to the trace file during registration), tracing into a secondary
per thread buffer. The main thread will then stitch (memcpy) the buffers
together into the output file.

This makes the `--trace-threads` option redundant with `--trace`, which
now only affects `--trace-fst`. FST tracing uses the previous offloading
scheme.

This obviously helps a lot in VCD tracing performance, and I have seen
better than Amdahl speedup, namely I get 3.9x on XiangShan 4T (2.7x on
OpenTitan 4T).
2022-05-29 19:08:39 +01:00
..
gtkwave
vltstd
.gitignore
verilated_config.h.in
verilated_cov_key.h
verilated_cov.cpp Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_cov.h
verilated_dpi.cpp
verilated_dpi.h
verilated_fst_c.cpp Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_fst_c.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_fst_sc.cpp
verilated_fst_sc.h
verilated_funcs.h
verilated_heavy.h
verilated_imp.h Internals: Use mutable for mutexes. No functional change. 2022-05-13 07:21:39 -04:00
verilated_intrinsics.h
verilated_profiler.cpp Make local function 'static' in verilated_profiler.h 2022-05-28 12:17:39 +01:00
verilated_profiler.h Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_save.cpp
verilated_save.h
verilated_sc.h
verilated_sym_props.h
verilated_syms.h
verilated_threads.cpp
verilated_threads.h Internals: Use mutable for mutexes. No functional change. 2022-05-13 07:21:39 -04:00
verilated_trace_defs.h
verilated_trace_imp.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_trace.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_types.h Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_vcd_c.cpp Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_vcd_c.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_vcd_sc.cpp
verilated_vcd_sc.h
verilated_vpi.cpp Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_vpi.h
verilated.cpp Add assert when VerilatedContext is mis-deleted (#3121). 2022-05-15 10:51:03 -04:00
verilated.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated.mk.in Add -DVM_TRACE_VCD in model builds with Make with --trace 2022-05-20 16:44:38 +01:00
verilated.v
verilatedos.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00