ci: fix vulkan docker images (#24595)
* Update vulkan-shaders-gen.cpp * Update vulkan-shaders-gen.cpp add comment describing code change intention * Update vulkan-shaders-gen.cpp fix potential UB
This commit is contained in:
@@ -407,7 +407,7 @@ std::map<std::string, std::string> merge_maps(const std::map<std::string, std::s
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::vector<std::future<void>> compiles;
|
static std::deque<std::future<void>> compiles;
|
||||||
void string_to_spv(std::string name, const std::string& source, const std::map<std::string, std::string>& defines, bool fp16 = true, bool coopmat = false, bool coopmat2 = false, bool f16acc = false, const std::string& suffix = "") {
|
void string_to_spv(std::string name, const std::string& source, const std::map<std::string, std::string>& defines, bool fp16 = true, bool coopmat = false, bool coopmat2 = false, bool f16acc = false, const std::string& suffix = "") {
|
||||||
name = name + (f16acc ? "_f16acc" : "") + (coopmat ? "_cm1" : "") + (coopmat2 ? "_cm2" : (fp16 ? "" : "_fp32")) + suffix;
|
name = name + (f16acc ? "_f16acc" : "") + (coopmat ? "_cm1" : "") + (coopmat2 ? "_cm2" : (fp16 ? "" : "_fp32")) + suffix;
|
||||||
std::string out_path = join_paths(output_dir, name + ".spv");
|
std::string out_path = join_paths(output_dir, name + ".spv");
|
||||||
@@ -426,6 +426,11 @@ void string_to_spv(std::string name, const std::string& source, const std::map<s
|
|||||||
string_to_spv_func, name, input_filepath, out_path, defines, coopmat, generate_dep_file, std::move(slot)));
|
string_to_spv_func, name, input_filepath, out_path, defines, coopmat, generate_dep_file, std::move(slot)));
|
||||||
// Don't write the same dep file from multiple processes
|
// Don't write the same dep file from multiple processes
|
||||||
generate_dep_file = false;
|
generate_dep_file = false;
|
||||||
|
|
||||||
|
// Clean up completed futures - don't accumulate virtual memory for completed threads' stacks.
|
||||||
|
while (!compiles.empty() && compiles.front().wait_for(std::chrono::seconds(0)) == std::future_status::ready) {
|
||||||
|
compiles.pop_front();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void matmul_shaders(bool fp16, MatMulIdType matmul_id_type, bool coopmat, bool coopmat2, bool f16acc, bool dot2 = false) {
|
void matmul_shaders(bool fp16, MatMulIdType matmul_id_type, bool coopmat, bool coopmat2, bool f16acc, bool dot2 = false) {
|
||||||
|
|||||||
Reference in New Issue
Block a user