diff --git a/CMakeLists.txt b/CMakeLists.txt index acf17f9b..c94d2ca4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,9 @@ set(CMAKE_WARN_UNUSED_CLI YES) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED true) - +if(MSVC) + add_compile_options(/permissive- /Zc:__cplusplus) +endif() set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES 0) set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES 0) set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_OBJECTS 0) diff --git a/examples/server/CMakeLists.txt b/examples/server/CMakeLists.txt index 28b78aec..7497f011 100644 --- a/examples/server/CMakeLists.txt +++ b/examples/server/CMakeLists.txt @@ -96,5 +96,11 @@ endif() if (WIN32) TARGET_LINK_LIBRARIES(${TARGET} PRIVATE ws2_32) endif() +if(MSVC) + set_target_properties(${TARGET} PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON +) +endif() target_compile_features(${TARGET} PRIVATE cxx_std_17) diff --git a/ggml/src/ggml-backend.cpp b/ggml/src/ggml-backend.cpp index 345eddd2..d780e891 100644 --- a/ggml/src/ggml-backend.cpp +++ b/ggml/src/ggml-backend.cpp @@ -2162,10 +2162,11 @@ static enum ggml_status ggml_backend_sched_compute_splits(ggml_backend_sched_t s bool work_done = false; #ifdef GGML_USE_OPENMP - if (int nlevels = omp_get_max_active_levels(); nlevels < 2) { - omp_set_max_active_levels(nlevels+1); - //printf("%s: Setting omp max active levels to 2\n", __func__); - } + //This maty not be available in old OpenMP versions + //if (int nlevels = omp_get_max_active_levels(); nlevels < 2) { + // omp_set_max_active_levels(nlevels+1); + // //printf("%s: Setting omp max active levels to 2\n", __func__); + //} bool has_cpu_work = false; for (int i = 0; i < sched->n_backends; ++i) { if (!sched->backend_splits[i].empty()) { @@ -2237,7 +2238,7 @@ static enum ggml_status ggml_backend_sched_compute_splits(ggml_backend_sched_t s } #endif if (!work_done) { - std::barrier barrier(sched->n_backends, [] () {}); + std::barrier barrier(sched->n_backends, [] () noexcept {}); auto compute = [sched, &barrier] (int ith) { struct ggml_backend_sched_split * splits = sched->splits;