From 2e95a8b3ed721de1f018b5cdc06e245651653976 Mon Sep 17 00:00:00 2001 From: zhongsiping <1091400761@qq.com> Date: Tue, 18 Mar 2025 19:28:07 +0800 Subject: [PATCH] [Huawei] Fix a bug with --map-by numa. Offering: Kunpeng HPC --- ompi/mca/coll/ucg/coll_ucg_component.c | 2 +- .../hwloc201/hwloc/hwloc/topology-linux.c | 22 ++++++++----------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/ompi/mca/coll/ucg/coll_ucg_component.c b/ompi/mca/coll/ucg/coll_ucg_component.c index ecbff7feb9..24e00c0297 100644 --- a/ompi/mca/coll/ucg/coll_ucg_component.c +++ b/ompi/mca/coll/ucg/coll_ucg_component.c @@ -89,7 +89,7 @@ static int mca_coll_ucg_register(void) __asm__ volatile ("mrs %0, MIDR_EL1":"=r"(cpu_id)); unsigned long long vendor = (cpu_id >> 0x18) & 0xFF; unsigned long long part_id = (cpu_id >> 0x4) & 0xFFF; - // If CPU arch is module F, reduce priority of UCG. + // Reduce priority of UCG on some CPU archs. if ((vendor == 0x48) && (part_id == 0xD22)) { mca_coll_ucg_component.priority = 0; } diff --git a/opal/mca/hwloc/hwloc201/hwloc/hwloc/topology-linux.c b/opal/mca/hwloc/hwloc201/hwloc/hwloc/topology-linux.c index 582a1b353e..874c0c22ca 100644 --- a/opal/mca/hwloc/hwloc201/hwloc/hwloc/topology-linux.c +++ b/opal/mca/hwloc/hwloc201/hwloc/hwloc/topology-linux.c @@ -2957,18 +2957,8 @@ static int hwloc_linux_try_handle_kunpeng_moc_hwdata_properties(struct knl_hwdat hwdata->memory_mode[0] = '\0'; hwdata->cluster_mode[0] = '\0'; - unsigned long total_cache_size = 64UL*1024*1024*1024 - MCDRAM_numa_size; - - if (!MCDRAM_nbnodes) { - strcpy(hwdata->memory_mode, "Cache"); - } else { - if (!total_cache_size) - strcpy(hwdata->memory_mode, "Flat"); - else - fprintf(stderr, "Unexpected Kunpeng MCDRAM cache size %lu\n", total_cache_size); - } - - hwdata->mcdram_cache_size = total_cache_size/DDR_nbnodes; + strcpy(hwdata->memory_mode, "Cache"); + hwdata->mcdram_cache_size = 4UL*1024; hwdata->mcdram_cache_associativity = 1; hwdata->mcdram_cache_inclusiveness = 0; hwdata->mcdram_cache_line_size = 64; @@ -3365,6 +3355,9 @@ look_sysfsnode(struct hwloc_topology *topology, /* nothing else to do for DDR */ continue; } + if (data->is_kunpeng_with_moc) { + continue; + } /* MCDRAM */ nodes[i]->subtype = strdup("MCDRAM"); @@ -3410,7 +3403,7 @@ look_sysfsnode(struct hwloc_topology *topology, /* everything is ready for insertion now */ /* insert knl clusters */ - if (data->is_knl || data->is_kunpeng_with_moc) { + if (data->is_knl) { for(i=0; icpuset) && data->is_kunpeng_with_moc) { + continue; + } if ((data->is_knl || data->is_kunpeng_with_moc) && node_cluster[i] != -1) { /* directly attach to the existing cluster */ hwloc_obj_t parent = clusters[node_cluster[i]]; -- Gitee