Working with jobs
Querying Jobs
To programmatically get the list of job summaries, use get_job_summaries()
.
import qai_hub as hub
job_summaries = hub.get_job_summaries(limit=10)
print(job_summaries)
Given a specific job ID from the UI (an ID starting with j
e.g. jvgdwk7z5
), the job
can be programmatically queried using get_job()
.
job = hub.get_job("jvgdwk7z5")
print(job)
Profile Jobs
The results of a profile job can be obtained programmatically using the
ProfileJob
as follows:
profile = job.download_profile()
print(profile)
The output of the printed dictionary is as follows:
{
'estimated_inference_time': 2997,
'estimated_inference_peak_memory': 69177344,
'first_load_time': 2162619,
'first_load_peak_memory': 83742720,
'warm_load_time': 123904,
'warm_load_peak_memory': 73179136,
'compile_time': 0,
'compile_peak_memory': 0,
'compile_memory_increase_range': None,
'compile_memory_peak_range': None,
'first_load_memory_increase_range': (0, 0),
'first_load_memory_peak_range': (26226688, 31730736),
'warm_load_memory_increase_range': (0, 10580480),
'warm_load_memory_peak_range': (12865536, 37318656),
'inference_memory_increase_range': (0, 12160),
'inference_memory_peak_range': (12288, 21276192),
'all_compile_times': [],
'all_first_load_times': [2162619],
'all_warm_load_times': [123904],
'all_inference_times': [9130, .... ]
}
Memory is represented in bytes and times are represented as microseconds. To get the latency in milliseconds:
latency_ms = profile["execution_summary"]["execution_time"] / 1000