diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/agent.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/agent.cpp index 5482c61ca0..bf4373c597 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/agent.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/agent.cpp @@ -689,6 +689,9 @@ read_topology() { constexpr auto workgrp_max = 1024; constexpr auto grid_max = std::numeric_limits::max(); + constexpr auto grid_max_x = std::numeric_limits::max(); + constexpr auto grid_max_y = std::numeric_limits::max(); + constexpr auto grid_max_z = std::numeric_limits::max(); read_property(properties, "unique_id", agent_info.uuid.value); read_property( @@ -702,7 +705,7 @@ read_topology() agent_info.workgroup_max_size = workgrp_max; // hardcoded in hsa-runtime agent_info.workgroup_max_dim = {workgrp_max, workgrp_max, workgrp_max}; agent_info.grid_max_size = grid_max; // hardcoded in hsa-runtime - agent_info.grid_max_dim = {grid_max, grid_max, grid_max}; + agent_info.grid_max_dim = {grid_max_x, grid_max_y, grid_max_z}; agent_info.cu_count = agent_info.simd_count / agent_info.simd_per_cu; if(int drm_fd = 0; (drm_fd = drmOpenRender(agent_info.drm_render_minor)) >= 0) diff --git a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tests/agent.cpp b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tests/agent.cpp index 9723267674..af071307bb 100644 --- a/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tests/agent.cpp +++ b/projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/tests/agent.cpp @@ -266,9 +266,13 @@ TEST(rocprofiler_lib, agent) EXPECT_EQ(agent->workgroup_max_dim.y, hsa_agent->workgroup_max_dim[1]) << msg; EXPECT_EQ(agent->workgroup_max_dim.z, hsa_agent->workgroup_max_dim[2]) << msg; EXPECT_EQ(agent->grid_max_size, hsa_agent->grid_max_size) << msg; - EXPECT_EQ(agent->grid_max_dim.x, hsa_agent->grid_max_dim.x) << msg; - EXPECT_EQ(agent->grid_max_dim.y, hsa_agent->grid_max_dim.y) << msg; - EXPECT_EQ(agent->grid_max_dim.z, hsa_agent->grid_max_dim.z) << msg; + // Skip the checks for older grid x, y, z dimension values. + if(hsa_agent->grid_max_dim.x == std::numeric_limits::max()) + { + EXPECT_EQ(agent->grid_max_dim.x, hsa_agent->grid_max_dim.x) << msg; + EXPECT_EQ(agent->grid_max_dim.y, hsa_agent->grid_max_dim.y) << msg; + EXPECT_EQ(agent->grid_max_dim.z, hsa_agent->grid_max_dim.z) << msg; + } if(agent->type == ROCPROFILER_AGENT_TYPE_GPU) { // HSA lib doesn't set family ID for CPU-only but we do