Skip to content

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