@@ -222,6 +222,35 @@ void json_printer::do_process_bulk_data_float64(state &state,
222
222
} // end hint == sample_times
223
223
}
224
224
225
+ static void add_devices_section (nlohmann::ordered_json &root)
226
+ {
227
+ auto &devices = root[" devices" ];
228
+ for (const auto &dev_info : nvbench::device_manager::get ().get_devices ())
229
+ {
230
+ auto &device = devices.emplace_back ();
231
+ device[" id" ] = dev_info.get_id ();
232
+ device[" name" ] = dev_info.get_name ();
233
+ device[" sm_version" ] = dev_info.get_sm_version ();
234
+ device[" ptx_version" ] = dev_info.get_ptx_version ();
235
+ device[" sm_default_clock_rate" ] = dev_info.get_sm_default_clock_rate ();
236
+ device[" number_of_sms" ] = dev_info.get_number_of_sms ();
237
+ device[" max_blocks_per_sm" ] = dev_info.get_max_blocks_per_sm ();
238
+ device[" max_threads_per_sm" ] = dev_info.get_max_threads_per_sm ();
239
+ device[" max_threads_per_block" ] = dev_info.get_max_threads_per_block ();
240
+ device[" registers_per_sm" ] = dev_info.get_registers_per_sm ();
241
+ device[" registers_per_block" ] = dev_info.get_registers_per_block ();
242
+ device[" global_memory_size" ] = dev_info.get_global_memory_size ();
243
+ device[" global_memory_bus_peak_clock_rate" ] =
244
+ dev_info.get_global_memory_bus_peak_clock_rate ();
245
+ device[" global_memory_bus_width" ] = dev_info.get_global_memory_bus_width ();
246
+ device[" global_memory_bus_bandwidth" ] = dev_info.get_global_memory_bus_bandwidth ();
247
+ device[" l2_cache_size" ] = dev_info.get_l2_cache_size ();
248
+ device[" shared_memory_per_sm" ] = dev_info.get_shared_memory_per_sm ();
249
+ device[" shared_memory_per_block" ] = dev_info.get_shared_memory_per_block ();
250
+ device[" ecc_state" ] = dev_info.get_ecc_state ();
251
+ }
252
+ }
253
+
225
254
void json_printer::do_print_benchmark_results (const benchmark_vector &benches)
226
255
{
227
256
nlohmann::ordered_json root;
@@ -274,33 +303,7 @@ void json_printer::do_print_benchmark_results(const benchmark_vector &benches)
274
303
} // "version"
275
304
} // "meta"
276
305
277
- {
278
- auto &devices = root[" devices" ];
279
- for (const auto &dev_info : nvbench::device_manager::get ().get_devices ())
280
- {
281
- auto &device = devices.emplace_back ();
282
- device[" id" ] = dev_info.get_id ();
283
- device[" name" ] = dev_info.get_name ();
284
- device[" sm_version" ] = dev_info.get_sm_version ();
285
- device[" ptx_version" ] = dev_info.get_ptx_version ();
286
- device[" sm_default_clock_rate" ] = dev_info.get_sm_default_clock_rate ();
287
- device[" number_of_sms" ] = dev_info.get_number_of_sms ();
288
- device[" max_blocks_per_sm" ] = dev_info.get_max_blocks_per_sm ();
289
- device[" max_threads_per_sm" ] = dev_info.get_max_threads_per_sm ();
290
- device[" max_threads_per_block" ] = dev_info.get_max_threads_per_block ();
291
- device[" registers_per_sm" ] = dev_info.get_registers_per_sm ();
292
- device[" registers_per_block" ] = dev_info.get_registers_per_block ();
293
- device[" global_memory_size" ] = dev_info.get_global_memory_size ();
294
- device[" global_memory_bus_peak_clock_rate" ] =
295
- dev_info.get_global_memory_bus_peak_clock_rate ();
296
- device[" global_memory_bus_width" ] = dev_info.get_global_memory_bus_width ();
297
- device[" global_memory_bus_bandwidth" ] = dev_info.get_global_memory_bus_bandwidth ();
298
- device[" l2_cache_size" ] = dev_info.get_l2_cache_size ();
299
- device[" shared_memory_per_sm" ] = dev_info.get_shared_memory_per_sm ();
300
- device[" shared_memory_per_block" ] = dev_info.get_shared_memory_per_block ();
301
- device[" ecc_state" ] = dev_info.get_ecc_state ();
302
- }
303
- } // "devices"
306
+ add_devices_section (root);
304
307
305
308
{
306
309
auto &benchmarks = root[" benchmarks" ];
@@ -498,4 +501,11 @@ void json_printer::do_print_benchmark_list(const benchmark_vector &benches)
498
501
m_ostream << root.dump (2 ) << " \n " ;
499
502
}
500
503
504
+ void json_printer::print_devices_json ()
505
+ {
506
+ nlohmann::ordered_json root;
507
+ add_devices_section (root);
508
+ m_ostream << root.dump (2 ) << " \n " ;
509
+ }
510
+
501
511
} // namespace nvbench
0 commit comments