]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
use pause asm insn in busyloop to run the CPU (13600K) 10 °C cooler (#1314)
authorSami Farin <redacted>
Tue, 9 May 2023 12:29:20 +0000 (15:29 +0300)
committerGitHub <redacted>
Tue, 9 May 2023 12:29:20 +0000 (14:29 +0200)
* 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

ggml.c

diff --git a/ggml.c b/ggml.c
index 1b89bdd894489cdf8cb0311b310597c8f79dfed7..4e309df8a48e22ef98334780085e77fffe0b43ad 100644 (file)
--- a/ggml.c
+++ b/ggml.c
@@ -11663,7 +11663,11 @@ typedef int ggml_lock_t;
 
 #define ggml_lock_init(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)
+#endif
 #define ggml_lock_unlock(x)  UNUSED(x)
 
 #define GGML_LOCK_INITIALIZER 0