diff --git a/CMakeLists.txt b/CMakeLists.txt index 65fbbb481c432f7b905f4dec7ea39c51ec853ae8..bbe47d4ff1dc51fd2ff40fd2a88bf93d717a7ca8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ find_package(NumPy REQUIRED) find_package(Threads REQUIRED) find_package(AVX QUIET) find_package(Glog REQUIRED) -find_package(Gflags REQUIRED) +find_package(Gflags COMPONENTS nothreads_static REQUIRED) find_package(GTest) find_package(Sphinx) find_package(Doxygen) diff --git a/cmake/util.cmake b/cmake/util.cmake index 43a56378df0094200d3c7c95a704c27222654708..3b4258654f05c0397b173b808d92524975ec99d4 100644 --- a/cmake/util.cmake +++ b/cmake/util.cmake @@ -110,7 +110,7 @@ function(link_paddle_exe TARGET_NAME) ${METRIC_LIBS} ${PROTOBUF_LIBRARY} ${LIBGLOG_LIBRARY} - ${GFLAGS_LIBRARIES} + gflags ${CMAKE_THREAD_LIBS_INIT} ${CBLAS_LIBS} ${ZLIB_LIBRARIES} diff --git a/paddle/capi/CMakeLists.txt b/paddle/capi/CMakeLists.txt index 62e9e5ccef379fa8868ba58b7e9ea9774877f9c2..80cf2c7fa913df0a8d7fff4af792ae200c61334e 100644 --- a/paddle/capi/CMakeLists.txt +++ b/paddle/capi/CMakeLists.txt @@ -18,7 +18,9 @@ target_include_directories(paddle_capi PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) add_dependencies(paddle_capi gen_proto_cpp) target_link_libraries(paddle_capi + "-Wl,-force_load" paddle_gserver + "-Wl,-force_load" paddle_function paddle_pserver paddle_trainer_lib @@ -30,7 +32,7 @@ target_link_libraries(paddle_capi paddle_cuda ${PROTOBUF_LIBRARY} ${LIBGLOG_LIBRARY} - ${GFLAGS_LIBRARIES} + gflags ${CMAKE_THREAD_LIBS_INIT} ${CBLAS_LIBS} ${ZLIB_LIBRARIES} @@ -38,7 +40,6 @@ target_link_libraries(paddle_capi ${CMAKE_DL_LIBS} ${PYTHON_LIBRARIES}) - set(PADDLE_CAPI_INC_PATH ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/paddle/capi/Main.cpp b/paddle/capi/Main.cpp index 49606e1f942b71f8a5f9a8841d15ebe7050018da..cc07e2ba4ef8179297f1961ea0a33c5553196c27 100644 --- a/paddle/capi/Main.cpp +++ b/paddle/capi/Main.cpp @@ -26,18 +26,4 @@ int PDInit(int argc, char** argv) { free(realArgv[0]); return PD_NO_ERROR; } - -int PDParseTrainerConfigFromFile(char* filename, - void** modelConfigProtobuf, - int* size) { - if (filename == nullptr || modelConfigProtobuf == nullptr || size == nullptr) - return PD_NULLPTR; - paddle::TrainerConfigHelper conf(filename); - if (!conf.getConfig().IsInitialized()) return PD_PROTOBUF_ERROR; - *size = conf.getConfig().ByteSize(); - *modelConfigProtobuf = malloc(*size); - if (!conf.getConfig().SerializeToArray(*modelConfigProtobuf, *size)) - return PD_PROTOBUF_ERROR; - return PD_NO_ERROR; -} } diff --git a/paddle/capi/PaddleCAPI.h b/paddle/capi/PaddleCAPI.h index fa43b3b40bbe5c081a284cef24b3a73e2443a496..17a2498671859f703fd9c0735a82f9e2c531f205 100644 --- a/paddle/capi/PaddleCAPI.h +++ b/paddle/capi/PaddleCAPI.h @@ -61,10 +61,6 @@ int PDGradientMachineDestroy(PD_GradiemtMachine machine); int PDInit(int argc, char** argv); -int PDParseTrainerConfigFromFile(char* filename, - void** modelConfigProtobuf, - int* size); - #ifdef __cplusplus } #endif diff --git a/paddle/capi/tests/CMakeLists.txt b/paddle/capi/tests/CMakeLists.txt index e1fa3d6b79139edb582778a86aa4248749715f43..e54a53e2935b401f9cec1d3a48f4ea127dec7960 100644 --- a/paddle/capi/tests/CMakeLists.txt +++ b/paddle/capi/tests/CMakeLists.txt @@ -13,7 +13,6 @@ function(add_capi_unittest_without_exec TARGET_NAME) ${TARGET_NAME} ${sources}) - target_link_libraries( ${TARGET_NAME} paddle_capi diff --git a/paddle/capi/tests/test_GradientMachine.cpp b/paddle/capi/tests/test_GradientMachine.cpp index 8c1ea73ae6cd699a9641427edc221deb26481bff..f07d1e4e7294fc629dd91ee36cd7917f9aa24bc1 100644 --- a/paddle/capi/tests/test_GradientMachine.cpp +++ b/paddle/capi/tests/test_GradientMachine.cpp @@ -1,15 +1,18 @@ #include +#include #include #include #include "PaddleCAPI.h" TEST(GradientMachine, load) { - void* buf; - int size; - ASSERT_EQ( - PD_NO_ERROR, - PDParseTrainerConfigFromFile(strdup("./vgg_16_cifar.py"), &buf, &size)); - free(buf); + paddle::TrainerConfigHelper config("./vgg_16_cifar.py"); + std::string buffer; + ASSERT_TRUE(config.getModelConfig().SerializeToString(&buffer)); + PD_GradiemtMachine machine; + + ASSERT_EQ(PD_NO_ERROR, + PDGradientMachineCreateForPredict( + &machine, &buffer[0], (int)buffer.size())); } int main(int argc, char** argv) {