@@ -83,16 +83,22 @@ def setup(self):
83
83
self .built = True
84
84
85
85
def additionalMetadata (self ) -> dict [str , BenchmarkMetadata ]:
86
+ # TODO: group metadata should be automatically generated based on the benchmarks...
87
+ submit_kernel_metadata = BenchmarkMetadata (
88
+ type = "group" ,
89
+ description = "Measures CPU time overhead of submitting kernels through different APIs." ,
90
+ notes = "Each layer builds on top of the previous layer, adding functionality and overhead.\n "
91
+ "The first layer is the Level Zero API, the second is the Unified Runtime API, and the third is the SYCL API.\n "
92
+ "The UR v2 adapter noticeably reduces UR layer overhead, also improving SYCL performance.\n "
93
+ "Work is ongoing to reduce the overhead of the SYCL API\n " ,
94
+ tags = ["submit" , "micro" , "SYCL" , "UR" , "L0" ],
95
+ )
96
+
86
97
return {
87
- "SubmitKernel" : BenchmarkMetadata (
88
- type = "group" ,
89
- description = "Measures CPU time overhead of submitting kernels through different APIs." ,
90
- notes = "Each layer builds on top of the previous layer, adding functionality and overhead.\n "
91
- "The first layer is the Level Zero API, the second is the Unified Runtime API, and the third is the SYCL API.\n "
92
- "The UR v2 adapter noticeably reduces UR layer overhead, also improving SYCL performance.\n "
93
- "Work is ongoing to reduce the overhead of the SYCL API\n " ,
94
- tags = ["submit" , "micro" , "SYCL" , "UR" , "L0" ],
95
- ),
98
+ "SubmitKernel In Order" : submit_kernel_metadata ,
99
+ "SubmitKernel Out Of Order" : submit_kernel_metadata ,
100
+ "SubmitKernel In Order With Completion" : submit_kernel_metadata ,
101
+ "SubmitKernel Out Of Order With Completion" : submit_kernel_metadata ,
96
102
"SinKernelGraph" : BenchmarkMetadata (
97
103
type = "group" ,
98
104
unstable = "This benchmark combines both eager and graph execution, and may not be representative of real use cases." ,
@@ -294,11 +300,9 @@ def name(self):
294
300
return f"api_overhead_benchmark_{ self .runtime .value } SubmitKernel { order } { completion_str } "
295
301
296
302
def explicit_group (self ):
297
- return (
298
- "SubmitKernel"
299
- if self .measure_completion == 0
300
- else "SubmitKernel With Completion"
301
- )
303
+ order = "In Order" if self .ioq else "Out Of Order"
304
+ completion_str = " With Completion" if self .measure_completion else ""
305
+ return f"SubmitKernel { order } { completion_str } "
302
306
303
307
def description (self ) -> str :
304
308
order = "in-order" if self .ioq else "out-of-order"
0 commit comments