mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-10-27 08:21:30 +00:00
vulkan: use a more appropriate amount of threads when generating shaders (#16418)
* use a more flexible amount of threads * fix windows compile and 0 thread case * nominmax
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
@@ -22,6 +20,7 @@
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#define NOMINMAX
|
||||
#include <windows.h>
|
||||
#include <direct.h> // For _mkdir on Windows
|
||||
#else
|
||||
@@ -306,7 +305,7 @@ using compile_count_guard = std::unique_ptr<uint32_t, decltype(&decrement_compil
|
||||
compile_count_guard acquire_compile_slot() {
|
||||
// wait until fewer than N compiles are in progress.
|
||||
// 16 is an arbitrary limit, the goal is to avoid "failed to create pipe" errors.
|
||||
uint32_t N = 16;
|
||||
uint32_t N = std::max(1u, std::min(16u, std::thread::hardware_concurrency()));
|
||||
std::unique_lock<std::mutex> guard(compile_count_mutex);
|
||||
compile_count_cond.wait(guard, [N] { return compile_count < N; });
|
||||
compile_count++;
|
||||
|
||||
Reference in New Issue
Block a user