@@ -358,53 +358,21 @@ rsmi_status_t is_gpu_metrics_version_supported(const AMDGpuMetricsHeader_v1_t& m
358358 ? rsmi_status_t ::RSMI_STATUS_SUCCESS : rsmi_status_t ::RSMI_STATUS_NOT_SUPPORTED;
359359}
360360
361-
362- AMDGpuMetricFactories_t amd_gpu_metrics_factory_table
363- {
364- {AMDGpuMetricVersionFlags_t::kGpuMetricV11 , std::make_shared<GpuMetricsBase_v11_t>(GpuMetricsBase_v11_t{})},
365- {AMDGpuMetricVersionFlags_t::kGpuMetricV12 , std::make_shared<GpuMetricsBase_v12_t>(GpuMetricsBase_v12_t{})},
366- {AMDGpuMetricVersionFlags_t::kGpuMetricV13 , std::make_shared<GpuMetricsBase_v13_t>(GpuMetricsBase_v13_t{})},
367- {AMDGpuMetricVersionFlags_t::kGpuMetricV14 , std::make_shared<GpuMetricsBase_v14_t>(GpuMetricsBase_v14_t{})},
368- {AMDGpuMetricVersionFlags_t::kGpuMetricV15 , std::make_shared<GpuMetricsBase_v15_t>(GpuMetricsBase_v15_t{})},
369- {AMDGpuMetricVersionFlags_t::kGpuMetricV16 , std::make_shared<GpuMetricsBase_v16_t>(GpuMetricsBase_v16_t{})},
370- {AMDGpuMetricVersionFlags_t::kGpuMetricV17 , std::make_shared<GpuMetricsBase_v17_t>(GpuMetricsBase_v17_t{})},
371- {AMDGpuMetricVersionFlags_t::kGpuMetricV18 , std::make_shared<GpuMetricsBase_v18_t>(GpuMetricsBase_v18_t{})},
372- {AMDGpuMetricVersionFlags_t::kGpuMetricV19 , std::make_shared<GpuMetricsBaseDynamic_t>()},
373- };
374-
375- GpuMetricsBasePtr amdgpu_metrics_factory (AMDGpuMetricVersionFlags_t gpu_metric_version)
376- {
377- std::ostringstream ss;
378- ss << __PRETTY_FUNCTION__ << " | ======= start =======" ;
379- LOG_TRACE (ss);
380-
381- auto contains = [](const AMDGpuMetricVersionFlags_t metric_version) {
382- return (amd_gpu_metrics_factory_table.find (metric_version) != amd_gpu_metrics_factory_table.end ());
383- };
384-
385- if (contains (gpu_metric_version)) {
386- ss << __PRETTY_FUNCTION__
387- << " | ======= end ======= "
388- << " | Success "
389- << " | Factory Version: " << static_cast <AMDGpuMetricVersionFlagId_t>(gpu_metric_version)
390- << " |" ;
391- LOG_TRACE (ss);
392-
393- return (amd_gpu_metrics_factory_table.at (gpu_metric_version));
361+ GpuMetricsBasePtr amdgpu_metrics_factory (AMDGpuMetricVersionFlags_t v) {
362+ switch (v) {
363+ case AMDGpuMetricVersionFlags_t::kGpuMetricV11 : return std::make_shared<GpuMetricsBase_v11_t>();
364+ case AMDGpuMetricVersionFlags_t::kGpuMetricV12 : return std::make_shared<GpuMetricsBase_v12_t>();
365+ case AMDGpuMetricVersionFlags_t::kGpuMetricV13 : return std::make_shared<GpuMetricsBase_v13_t>();
366+ case AMDGpuMetricVersionFlags_t::kGpuMetricV14 : return std::make_shared<GpuMetricsBase_v14_t>();
367+ case AMDGpuMetricVersionFlags_t::kGpuMetricV15 : return std::make_shared<GpuMetricsBase_v15_t>();
368+ case AMDGpuMetricVersionFlags_t::kGpuMetricV16 : return std::make_shared<GpuMetricsBase_v16_t>();
369+ case AMDGpuMetricVersionFlags_t::kGpuMetricV17 : return std::make_shared<GpuMetricsBase_v17_t>();
370+ case AMDGpuMetricVersionFlags_t::kGpuMetricV18 : return std::make_shared<GpuMetricsBase_v18_t>();
371+ case AMDGpuMetricVersionFlags_t::kGpuMetricV19 : return std::make_shared<GpuMetricsBaseDynamic_t>();
372+ default : return nullptr ;
394373 }
395-
396- ss << __PRETTY_FUNCTION__
397- << " | ======= end ======= "
398- << " | Fail "
399- << " | Factory Version: " << static_cast <AMDGpuMetricVersionFlagId_t>(gpu_metric_version)
400- << " | Returning = "
401- << " No object from factory."
402- << " |" ;
403- LOG_ERROR (ss);
404- return nullptr ;
405374}
406375
407-
408376template <typename >
409377constexpr bool is_dependent_false_v = false ;
410378
0 commit comments