@@ -292,6 +292,7 @@ def find_nvcc_path() -> str | None:
292292 cmake_args += cpu_feature_flags ()
293293 d = self .detect_cpu_info ()
294294 print (f"Detected CPU info: { d } " )
295+ cpu_mode = os .environ .get ("CPUINFER_CPU_INSTRUCT" , "NATIVE" ).upper ()
295296
296297 # Vendor / feature specific toggles
297298 # AMD MoE: explicit env overrides; otherwise default ON on AMD CPU
@@ -314,11 +315,18 @@ def find_nvcc_path() -> str | None:
314315 if "AMX" in d ["features" ]:
315316 cmake_args .append ("-DKTRANSFORMERS_CPU_USE_AMX=ON" )
316317 print ("-- AMX support detected; enabling (-DKTRANSFORMERS_CPU_USE_AMX=ON)" )
317- # AVX512 umbrella: explicit env overrides; else enable if AMX or AVX512 detected
318+
319+ # AVX512 umbrella (AMX/AVX512 kernels):
320+ # - If user explicitly sets CPUINFER_ENABLE_AVX512 -> honor it
321+ # - Otherwise, only auto-enable when CPU mode actually wants AVX512
322+ # (NATIVE/FANCY/AVX512). In AVX2 mode we do NOT enable this, so
323+ # RAWINT4 / K2 kernels are not compiled.
318324 if not _forward_bool_env (cmake_args , "CPUINFER_ENABLE_AVX512" , "KTRANSFORMERS_CPU_USE_AMX_AVX512" ):
319- if " AMX" in d ["features" ] or "AVX512" in d ["features" ]:
325+ if cpu_mode in ( "NATIVE" , "FANCY" , "AVX512" ) and ( " AMX" in d ["features" ] or "AVX512" in d ["features" ]) :
320326 cmake_args .append ("-DKTRANSFORMERS_CPU_USE_AMX_AVX512=ON" )
321327 print ("-- Enabling AMX/AVX512 umbrella (-DKTRANSFORMERS_CPU_USE_AMX_AVX512=ON)" )
328+ else :
329+ print (f"-- CPUINFER_CPU_INSTRUCT={ cpu_mode } ; not auto-enabling AMX/AVX512 umbrella" )
322330
323331 # Auto-enable MOE kernel only when env explicitly turns on AMD or KML backend
324332 # (Do not enable purely on vendor auto-detection to avoid surprise behavior.)
0 commit comments