utils
DaCeProgress
Rough timer & log for major operations of DaCe build stack.
kernel_theoretical_timing(sdfg, *, backend, hardware_bw_in_GB_s=None)
Compute a lower timing bound for kernels with the following hypothesis:
- Performance is memory bound, e.g. arithmetic intensity isn't counted
- Hardware bandwidth comes from a GT4Py/DaCe test rather than a spec sheet for for higher accuracy. Best is to run a copy_stencil on a full domain
- Memory pressure is mostly in read/write from global memory, inner scalar & shared memory is not counted towards memory movement.
kernel_theoretical_timing_from_path(sdfg_path, backend, hardware_bw_in_GB_s=None, output_format=None)
Load an SDFG and report the theoretical kernel timings
memory_static_analysis(sdfg)
Analysis an SDFG for memory pressure.
The results split memory by type (dace.StorageType) and account for allocated, unreferenced and top level (e.g. top-most SDFG) memory
memory_static_analysis_from_path(sdfg_path, detail_report=False)
Open a SDFG and report the memory analysis
report_kernel_theoretical_timing(timings, human_readable=True, out_format=None)
Produce a human readable or CSV of the kernel timings
report_memory_static_analysis(sdfg, allocations, detail_report=False)
Create a human readable report form the memory analysis results