ggml : use sched_yield when using BLAS + add comment

This commit is contained in:
Georgi Gerganov 2023-09-12 13:33:09 +03:00
parent 39c4fc59dd
commit 09a6325de5
No known key found for this signature in database
GPG Key ID: 449E073F9DC10735

14
ggml.c
View File

@ -17283,10 +17283,18 @@ static thread_ret_t ggml_graph_compute_thread(void * data) {
} else {
// wait for other threads to finish
const int last = node_n;
do {
//sched_yield();
while (true) {
// TODO: this sched_yield can have significant impact on the performance - either positive or negative
// depending on the workload and the operating system.
// since it is not clear what is the best approach, it should potentially become user-configurable
// ref: https://github.com/ggerganov/ggml/issues/291
#if defined(GGML_USE_ACCELERATE) || defined(GGML_USE_OPENBLAS)
sched_yield();
#endif
node_n = atomic_load(&state->shared->node_n);
} while (node_n == last);
if (node_n != last) break;
};
}
// check if we should stop