Procházet zdrojové kódy

use pause asm insn in busyloop to run the CPU (13600K) 10 °C cooler (#1314)

* use pause asm insn in busyloop to run the CPU (13600K) 10 °C cooler

Tested with a 13B model.

* use _mm_pause() in busyloop

* use _mm_pause() in busyloop on x86_64 to reduce power consumption
Sami Farin před 2 roky
rodič
revize
9f8dbc4787
1 změnil soubory, kde provedl 4 přidání a 0 odebrání
  1. 4 0
      ggml.c

+ 4 - 0
ggml.c

@@ -11663,7 +11663,11 @@ typedef int ggml_lock_t;
 
 
 #define ggml_lock_init(x)    UNUSED(x)
 #define ggml_lock_init(x)    UNUSED(x)
 #define ggml_lock_destroy(x) UNUSED(x)
 #define ggml_lock_destroy(x) UNUSED(x)
+#if defined(__x86_64__) || (defined(_MSC_VER) && defined(_M_AMD64))
+#define ggml_lock_lock(x)    _mm_pause()
+#else
 #define ggml_lock_lock(x)    UNUSED(x)
 #define ggml_lock_lock(x)    UNUSED(x)
+#endif
 #define ggml_lock_unlock(x)  UNUSED(x)
 #define ggml_lock_unlock(x)  UNUSED(x)
 
 
 #define GGML_LOCK_INITIALIZER 0
 #define GGML_LOCK_INITIALIZER 0