diff -rupN mvapich2-2.3.7-1/src/mpid/ch3/channels/common/include/mv2_arch_hca_detect.h mvapich2-2.3.7-1-w-patch/src/mpid/ch3/channels/common/include/mv2_arch_hca_detect.h --- mvapich2-2.3.7-1/src/mpid/ch3/channels/common/include/mv2_arch_hca_detect.h 2022-05-16 16:58:22.000000000 +0000 +++ mvapich2-2.3.7-1-w-patch/src/mpid/ch3/channels/common/include/mv2_arch_hca_detect.h 2024-07-26 17:10:52.102212370 +0000 @@ -69,6 +69,7 @@ typedef enum { MV2_HCA_MLX_CX_CONNIB, MV2_HCA_MLX_CX_EDR, MV2_HCA_MLX_CX_HDR, + MV2_HCA_MLX_CX_NDR, MV2_HCA_MLX_END, MV2_HCA_IB_TYPE_END, diff -rupN mvapich2-2.3.7-1/src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c mvapich2-2.3.7-1-w-patch/src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c --- mvapich2-2.3.7-1/src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c 2022-05-16 16:58:22.000000000 +0000 +++ mvapich2-2.3.7-1-w-patch/src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c 2024-07-26 17:13:20.613524309 +0000 @@ -106,6 +106,7 @@ static mv2_hca_types_log_t mv2_hca_types {MV2_HCA_MLX_CX_FDR, "MV2_HCA_MLX_CX_FDR"}, {MV2_HCA_MLX_CX_EDR, "MV2_HCA_MLX_CX_EDR"}, {MV2_HCA_MLX_CX_HDR, "MV2_HCA_MLX_CX_HDR"}, + {MV2_HCA_MLX_CX_NDR, "MV2_HCA_MLX_CX_NDR"}, {MV2_HCA_MLX_CX_CONNIB, "MV2_HCA_MLX_CX_CONNIB"}, {MV2_HCA_MLX_PCI_X, "MV2_HCA_MLX_PCI_X"}, @@ -228,6 +229,7 @@ const float get_link_speed(uint8_t speed case 16: return 14.0; /* FDR */ case 32: return 25.0; /* EDR */ case 64: return 50.0; /* HDR */ + case 128: return 100.0; /* NDR */ default: PRINT_ERROR("Invalid link speed %u\n", speed); return 0; /* Invalid speed */ @@ -360,6 +362,10 @@ mv2_hca_type mv2_new_get_hca_type(struct } /* mlx4, mlx5 */ switch(rate) { + case 400: + hca_type = MV2_HCA_MLX_CX_HDR; + break; + case 200: hca_type = MV2_HCA_MLX_CX_HDR; break; @@ -592,6 +598,10 @@ mv2_hca_type mv2_get_hca_type( struct ib #endif { /* mlx4, mlx5 */ switch(rate) { + case 400: + hca_type = MV2_HCA_MLX_CX_HDR; + break; + case 200: hca_type = MV2_HCA_MLX_CX_HDR; break;