Skip to content

Commit c7bda9e

Browse files
committed
AVX2 and AVX512* off by default to prevent frequency scaling
As discussed in #8334 the intensive use of AVX2 and AVX512 will lead to a significant frequency scaling, with drastic impact on application performance. Until a better way to prevent this come up, we decided to artificially disable support for AVX2 and AVX512. The support for AVX2 and AVX512 can be enabled by users via the corresponding MCA parameter (op_avx_support). Signed-off-by: George Bosilca <[email protected]>
1 parent 5caffb7 commit c7bda9e

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

ompi/mca/op/avx/op_avx_component.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,14 @@ static int
178178
avx_component_register(void)
179179
{
180180
int32_t requested_flags = mca_op_avx_component.flags = has_intel_AVX_features();
181+
182+
/**
183+
* Due to frequency scaling during AVX2 and AVX512 operations, it has been
184+
* decided in January 2021 to restrict the AVX module to simple AVX usage.
185+
* If users want to enable AVX2 and/or AVX512 capabilities, they will need
186+
* to manually enable them.
187+
*/
188+
requested_flags = requested_flags & ~(OMPI_OP_AVX_HAS_AVX512F_FLAG | OMPI_OP_AVX_HAS_AVX512BW_FLAG | OMPI_OP_AVX_HAS_AVX2_FLAG);
181189
(void) mca_base_component_var_register(&mca_op_avx_component.super.opc_version,
182190
"support",
183191
"Level of SSE/MMX/AVX support to be used (combination of processor capabilities as follow SSE 0x01, SSE2 0x02, SSE3 0x04, SSE4.1 0x08, AVX 0x010, AVX2 0x020, AVX512F 0x100, AVX512BW 0x200) capped by the local architecture capabilities",

0 commit comments

Comments
 (0)