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 storage type and lifetime, including arrays nested inside nested SDFGs. Referenced, pooled, and top-level values are reported as separate breakdowns of those allocations.
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 from the memory analysis results.
upload_to_device(host_data)
Make sure any ndarrays gets uploaded to the device
This will raise an assertion if cupy is not installed.