未验证 提交 3fabc808 编写于 作者: L Leo Chen 提交者: GitHub

auto read all public envs from flags_map in paddle_gtest_main (#36057)

上级 b430f6a3
...@@ -15,6 +15,7 @@ limitations under the License. */ ...@@ -15,6 +15,7 @@ limitations under the License. */
#include "gflags/gflags.h" #include "gflags/gflags.h"
#include "gtest/gtest.h" #include "gtest/gtest.h"
#include "paddle/fluid/memory/allocation/allocator_strategy.h" #include "paddle/fluid/memory/allocation/allocator_strategy.h"
#include "paddle/fluid/platform/flags.h"
#include "paddle/fluid/platform/init.h" #include "paddle/fluid/platform/init.h"
#include "paddle/fluid/platform/npu_info.h" #include "paddle/fluid/platform/npu_info.h"
...@@ -22,13 +23,11 @@ int main(int argc, char** argv) { ...@@ -22,13 +23,11 @@ int main(int argc, char** argv) {
paddle::memory::allocation::UseAllocatorStrategyGFlag(); paddle::memory::allocation::UseAllocatorStrategyGFlag();
testing::InitGoogleTest(&argc, argv); testing::InitGoogleTest(&argc, argv);
std::vector<char*> new_argv; std::vector<char*> new_argv;
std::string gflags_env;
for (int i = 0; i < argc; ++i) { for (int i = 0; i < argc; ++i) {
new_argv.push_back(argv[i]); new_argv.push_back(argv[i]);
} }
std::vector<std::string> envs; std::vector<std::string> envs;
std::vector<std::string> undefok;
#if defined(PADDLE_WITH_DISTRIBUTE) && !defined(PADDLE_WITH_PSLIB) #if defined(PADDLE_WITH_DISTRIBUTE) && !defined(PADDLE_WITH_PSLIB)
std::string str_max_body_size; std::string str_max_body_size;
if (::GFLAGS_NAMESPACE::GetCommandLineOption("max_body_size", if (::GFLAGS_NAMESPACE::GetCommandLineOption("max_body_size",
...@@ -38,35 +37,13 @@ int main(int argc, char** argv) { ...@@ -38,35 +37,13 @@ int main(int argc, char** argv) {
} }
#endif #endif
#if defined(PADDLE_WITH_CUDA) || defined(PADDLE_WITH_HIP) || \ const auto& flag_map = paddle::platform::GetExportedFlagInfoMap();
defined(PADDLE_WITH_ASCEND_CL) for (const auto& pair : flag_map) {
envs.push_back("fraction_of_gpu_memory_to_use"); const std::string& name = pair.second.name;
envs.push_back("initial_gpu_memory_in_mb"); if (pair.second.is_writable) { // means public
envs.push_back("reallocate_gpu_memory_in_mb"); envs.push_back(name);
envs.push_back("allocator_strategy"); }
envs.push_back("selected_gpus"); }
#elif __clang__
envs.push_back("use_mkldnn");
envs.push_back("initial_cpu_memory_in_mb");
envs.push_back("allocator_strategy");
undefok.push_back("use_mkldnn");
undefok.push_back("initial_cpu_memory_in_mb");
#else
envs.push_back("use_pinned_memory");
envs.push_back("use_mkldnn");
envs.push_back("initial_cpu_memory_in_mb");
envs.push_back("allocator_strategy");
undefok.push_back("use_pinned_memory");
undefok.push_back("use_mkldnn");
undefok.push_back("initial_cpu_memory_in_mb");
#endif
#if defined(PADDLE_WITH_ASCEND_CL)
envs.push_back("selected_npus");
envs.push_back("npu_config_path");
#endif
char* env_str = nullptr; char* env_str = nullptr;
if (envs.size() > 0) { if (envs.size() > 0) {
...@@ -80,18 +57,6 @@ int main(int argc, char** argv) { ...@@ -80,18 +57,6 @@ int main(int argc, char** argv) {
VLOG(1) << "gtest env_string:" << env_string; VLOG(1) << "gtest env_string:" << env_string;
} }
char* undefok_str = nullptr;
if (undefok.size() > 0) {
std::string undefok_string = "--undefok=";
for (auto t : undefok) {
undefok_string += t + ",";
}
undefok_string = undefok_string.substr(0, undefok_string.length() - 1);
undefok_str = strdup(undefok_string.c_str());
new_argv.push_back(undefok_str);
VLOG(1) << "gtest undefok_string:" << undefok_string;
}
int new_argc = static_cast<int>(new_argv.size()); int new_argc = static_cast<int>(new_argv.size());
char** new_argv_address = new_argv.data(); char** new_argv_address = new_argv.data();
::GFLAGS_NAMESPACE::ParseCommandLineFlags( ::GFLAGS_NAMESPACE::ParseCommandLineFlags(
...@@ -105,7 +70,5 @@ int main(int argc, char** argv) { ...@@ -105,7 +70,5 @@ int main(int argc, char** argv) {
#endif #endif
if (env_str) free(env_str); if (env_str) free(env_str);
if (undefok_str) free(undefok_str);
return ret; return ret;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册