提交 45184256 编写于 作者: R Ruilong Liu 提交者: GitHub

Merge pull request #916 from dolphin8/develop

add openmp support for ios
cmake_minimum_required(VERSION 3.6) cmake_minimum_required(VERSION 3.6)
option(USE_OPENMP "openmp support" ON)
project(paddle-mobile) project(paddle-mobile)
option(DEBUGING "enable debug mode" OFF) option(DEBUGING "enable debug mode" OFF)
option(USE_OPENMP "openmp support" OFF)
option(USE_EXCEPTION "use std exception" OFF) option(USE_EXCEPTION "use std exception" OFF)
option(LOG_PROFILE "log profile" OFF) option(LOG_PROFILE "log profile" OFF)
# select the platform to build # select the platform to build
...@@ -149,7 +150,17 @@ if (ANDROID_NDK_TOOLCHAIN_INCLUDED) ...@@ -149,7 +150,17 @@ if (ANDROID_NDK_TOOLCHAIN_INCLUDED)
list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS) list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS)
add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H}) add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
elseif(IS_IOS) elseif(IS_IOS)
if(USE_OPENMP)
add_library(paddle-mobile-stage0 STATIC ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
add_custom_target(paddle-mobile ALL
COMMAND libtool -static -o ${CMAKE_BINARY_DIR}/libpaddle-mobile.a ${CMAKE_CURRENT_LIST_DIR}/tools/libomp.a $<TARGET_FILE:paddle-mobile-stage0>
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS paddle-mobile
)
add_dependencies(paddle-mobile paddle-mobile-stage0)
else()
add_library(paddle-mobile STATIC ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H}) add_library(paddle-mobile STATIC ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
endif()
else () else ()
add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H}) add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
endif () endif ()
......
...@@ -58,6 +58,7 @@ static std::mutex shared_mutex; ...@@ -58,6 +58,7 @@ static std::mutex shared_mutex;
- (BOOL)load:(NSString *)modelPath andWeightsPath:(NSString *)weighsPath{ - (BOOL)load:(NSString *)modelPath andWeightsPath:(NSString *)weighsPath{
std::string model_path_str = std::string([modelPath UTF8String]); std::string model_path_str = std::string([modelPath UTF8String]);
std::string weights_path_str = std::string([weighsPath UTF8String]); std::string weights_path_str = std::string([weighsPath UTF8String]);
pam_->SetThreadNum(2);
if (loaded_ = pam_->Load(model_path_str, weights_path_str, true)) { if (loaded_ = pam_->Load(model_path_str, weights_path_str, true)) {
return YES; return YES;
} else { } else {
......
...@@ -50,8 +50,13 @@ endif (CMAKE_UNAME) ...@@ -50,8 +50,13 @@ endif (CMAKE_UNAME)
#include (CMakeForceCompiler) #include (CMakeForceCompiler)
#CMAKE_C_COMPILER (/usr/bin/gcc) #CMAKE_C_COMPILER (/usr/bin/gcc)
#CMAKE_CXX_COMPILER (/usr/bin/g++) #CMAKE_CXX_COMPILER (/usr/bin/g++)
set(CMAKE_C_COMPILER /usr/bin/gcc) if(USE_OPENMP)
set(CMAKE_CXX_COMPILER /usr/bin/g++) set(CMAKE_C_COMPILER /usr/local/opt/llvm/bin/clang)
set(CMAKE_CXX_COMPILER /usr/local/opt/llvm/bin/clang++)
else()
set(CMAKE_C_COMPILER /usr/bin/gcc)
set(CMAKE_CXX_COMPILER /usr/bin/g++)
endif()
set(CMAKE_AR ar CACHE FILEPATH "" FORCE) set(CMAKE_AR ar CACHE FILEPATH "" FORCE)
# Skip the platform compiler checks for cross compiling # Skip the platform compiler checks for cross compiling
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册