diff --git a/.gitignore b/.gitignore index 532601bfe9222eae0d6be7378322ab1b9c2eb110..547e94ea11f048c9e007996d4ee716d22a13742e 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,10 @@ build # clion building directories cmake-build-debug cmake-build-release + + +#ios demo +demo/ios/PaddleMobileDemo/PaddleMobileDemo/googlenet_combine/ +demo/ios/PaddleMobileDemo/PaddleMobileDemo/*.jpg +demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/*.a +*.xcuserstate \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 9baf1981afdfb7fb53df0bb99a086e0bf18d495f..a00d179a0d4972080c8fd392160f8ec451692e4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,15 +15,15 @@ if (ARM_LINUX) include("${CMAKE_CURRENT_LIST_DIR}/tools/arm-platform.cmake") endif () -file(GLOB_RECURSE PADDLE_MOBILE_CC src/*.cc src/*.cpp src/*.c) +file(GLOB_RECURSE PADDLE_MOBILE_CC src/*.cc src/*.cpp src/*.c src/*.mm) file(GLOB_RECURSE PADDLE_MOBILE_H src/*.h) if (CPU) add_definitions(-DPADDLE_MOBILE_CPU) else() - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/arm/*.h) - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/arm/*.cc) - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/arm/*.cpp) + list(REMOVE_ITEM PADDLE_MOBILE_CC ./src/operators/kernel/arm/*.h) + list(REMOVE_ITEM PADDLE_MOBILE_CC ./src/operators/kernel/arm/*.cc) + list(REMOVE_ITEM PADDLE_MOBILE_CC ./src/operators/kernel/arm/*.cpp) endif() @@ -41,9 +41,15 @@ if (MALI_GPU) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lOpenCL") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_ACL=1") else() - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/mali/*.h) - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/mali/*.cc) - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/mali/*.cpp) + file(GLOB_RECURSE _tmp_list src/operators/kernel/mali/*.cpp src/operators/kernel/mali/*.cc) + foreach(f ${_tmp_list}) + list(REMOVE_ITEM PADDLE_MOBILE_CC ${f}) + endforeach() + + file(GLOB_RECURSE _tmp_list_h src/operators/kernel/mali/*.h) + foreach(f ${_tmp_list_h}) + list(REMOVE_ITEM PADDLE_MOBILE_H ${f}) + endforeach() endif() if(FPGA) @@ -92,9 +98,9 @@ endif() if (NOT ANDROID_NDK_TOOLCHAIN_INCLUDED) - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/*.cpp) - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/*.h) - list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/math/math_func_neon.h) + list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/paddle_mobile_jni.h) + list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/paddle_mobile_jni.cpp) + list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/math/math_func_neon.h) endif () include_directories(src/) @@ -111,11 +117,18 @@ set_property(CACHE NET PROPERTY STRINGS "defult" "googlenet" "mobilenet" "yolo" include("${CMAKE_CURRENT_LIST_DIR}/tools/op.cmake") -# if (IS_IOS) -# add_library(paddle-mobile STATIC ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H}) +if (IS_IOS) + add_library(paddle-mobile STATIC ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H}) +else() + list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/ios_io/PaddleMobile.h) + list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/ios_io/PaddleMobile.mm) + list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/ios_io/op_symbols.h) +endif () + if (ANDROID_NDK_TOOLCHAIN_INCLUDED) list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS) add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H}) +elseif(IS_IOS) else () add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H}) endif () diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj similarity index 54% rename from ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj index e7e77ada15e84a6957a082c203c0121e118c5a3b..8500c89c9af5ab2d56e08b576dc007a424262d15 100644 --- a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj +++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj @@ -7,80 +7,123 @@ objects = { /* Begin PBXBuildFile section */ - FC086BC920E783AF00D85EF7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BC820E783AF00D85EF7 /* AppDelegate.m */; }; - FC086BCC20E783AF00D85EF7 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BCB20E783AF00D85EF7 /* ViewController.m */; }; - FC086BCF20E783AF00D85EF7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC086BCD20E783AF00D85EF7 /* Main.storyboard */; }; - FC086BD120E783B100D85EF7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FC086BD020E783B100D85EF7 /* Assets.xcassets */; }; - FC086BD420E783B100D85EF7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC086BD220E783B100D85EF7 /* LaunchScreen.storyboard */; }; - FC086BD720E783B100D85EF7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BD620E783B100D85EF7 /* main.m */; }; + FC12E93320EB6B2800807EF4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FC12E93220EB6B2800807EF4 /* AppDelegate.m */; }; + FC12E93620EB6B2800807EF4 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FC12E93520EB6B2800807EF4 /* ViewController.m */; }; + FC12E93920EB6B2800807EF4 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC12E93720EB6B2800807EF4 /* Main.storyboard */; }; + FC12E93B20EB6B2900807EF4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FC12E93A20EB6B2900807EF4 /* Assets.xcassets */; }; + FC12E93E20EB6B2900807EF4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC12E93C20EB6B2900807EF4 /* LaunchScreen.storyboard */; }; + FC12E94120EB6B2900807EF4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FC12E94020EB6B2900807EF4 /* main.m */; }; + FC12E94A20EB6B6800807EF4 /* libpaddle-mobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC12E94820EB6B6800807EF4 /* libpaddle-mobile.a */; }; + FC12E94D20EB6BBB00807EF4 /* libstdc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = FC12E94C20EB6BBB00807EF4 /* libstdc++.tbd */; }; + FC12E95120EB6BED00807EF4 /* params in Resources */ = {isa = PBXBuildFile; fileRef = FC12E94F20EB6BED00807EF4 /* params */; }; + FC12E95220EB6BED00807EF4 /* model in Resources */ = {isa = PBXBuildFile; fileRef = FC12E95020EB6BED00807EF4 /* model */; }; + FC12E95420EB6C0D00807EF4 /* apple.jpg in Resources */ = {isa = PBXBuildFile; fileRef = FC12E95320EB6C0D00807EF4 /* apple.jpg */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - FC086BC420E783AF00D85EF7 /* PaddleMobileDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PaddleMobileDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FC086BC720E783AF00D85EF7 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - FC086BC820E783AF00D85EF7 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - FC086BCA20E783AF00D85EF7 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - FC086BCB20E783AF00D85EF7 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - FC086BCE20E783AF00D85EF7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - FC086BD020E783B100D85EF7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - FC086BD320E783B100D85EF7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - FC086BD520E783B100D85EF7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FC086BD620E783B100D85EF7 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + FC12E92E20EB6B2800807EF4 /* PaddleMobileDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PaddleMobileDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + FC12E93120EB6B2800807EF4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + FC12E93220EB6B2800807EF4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + FC12E93420EB6B2800807EF4 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + FC12E93520EB6B2800807EF4 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + FC12E93820EB6B2800807EF4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + FC12E93A20EB6B2900807EF4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + FC12E93D20EB6B2900807EF4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + FC12E93F20EB6B2900807EF4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FC12E94020EB6B2900807EF4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + FC12E94820EB6B6800807EF4 /* libpaddle-mobile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpaddle-mobile.a"; sourceTree = ""; }; + FC12E94920EB6B6800807EF4 /* PaddleMobile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaddleMobile.h; sourceTree = ""; }; + FC12E94C20EB6BBB00807EF4 /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; }; + FC12E94F20EB6BED00807EF4 /* params */ = {isa = PBXFileReference; lastKnownFileType = file; path = params; sourceTree = ""; }; + FC12E95020EB6BED00807EF4 /* model */ = {isa = PBXFileReference; lastKnownFileType = file; path = model; sourceTree = ""; }; + FC12E95320EB6C0D00807EF4 /* apple.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = apple.jpg; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - FC086BC120E783AF00D85EF7 /* Frameworks */ = { + FC12E92B20EB6B2800807EF4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + FC12E94D20EB6BBB00807EF4 /* libstdc++.tbd in Frameworks */, + FC12E94A20EB6B6800807EF4 /* libpaddle-mobile.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - FC086BBB20E783AF00D85EF7 = { + FC12E92520EB6B2800807EF4 = { isa = PBXGroup; children = ( - FC086BC620E783AF00D85EF7 /* PaddleMobileDemo */, - FC086BC520E783AF00D85EF7 /* Products */, + FC12E93020EB6B2800807EF4 /* PaddleMobileDemo */, + FC12E92F20EB6B2800807EF4 /* Products */, + FC12E94B20EB6BBB00807EF4 /* Frameworks */, ); sourceTree = ""; }; - FC086BC520E783AF00D85EF7 /* Products */ = { + FC12E92F20EB6B2800807EF4 /* Products */ = { isa = PBXGroup; children = ( - FC086BC420E783AF00D85EF7 /* PaddleMobileDemo.app */, + FC12E92E20EB6B2800807EF4 /* PaddleMobileDemo.app */, ); name = Products; sourceTree = ""; }; - FC086BC620E783AF00D85EF7 /* PaddleMobileDemo */ = { + FC12E93020EB6B2800807EF4 /* PaddleMobileDemo */ = { isa = PBXGroup; children = ( - FC086BC720E783AF00D85EF7 /* AppDelegate.h */, - FC086BC820E783AF00D85EF7 /* AppDelegate.m */, - FC086BCA20E783AF00D85EF7 /* ViewController.h */, - FC086BCB20E783AF00D85EF7 /* ViewController.m */, - FC086BCD20E783AF00D85EF7 /* Main.storyboard */, - FC086BD020E783B100D85EF7 /* Assets.xcassets */, - FC086BD220E783B100D85EF7 /* LaunchScreen.storyboard */, - FC086BD520E783B100D85EF7 /* Info.plist */, - FC086BD620E783B100D85EF7 /* main.m */, + FC12E95320EB6C0D00807EF4 /* apple.jpg */, + FC12E94E20EB6BED00807EF4 /* googlenet_combine */, + FC12E94720EB6B6800807EF4 /* PaddleMobile */, + FC12E93120EB6B2800807EF4 /* AppDelegate.h */, + FC12E93220EB6B2800807EF4 /* AppDelegate.m */, + FC12E93420EB6B2800807EF4 /* ViewController.h */, + FC12E93520EB6B2800807EF4 /* ViewController.m */, + FC12E93720EB6B2800807EF4 /* Main.storyboard */, + FC12E93A20EB6B2900807EF4 /* Assets.xcassets */, + FC12E93C20EB6B2900807EF4 /* LaunchScreen.storyboard */, + FC12E93F20EB6B2900807EF4 /* Info.plist */, + FC12E94020EB6B2900807EF4 /* main.m */, ); path = PaddleMobileDemo; sourceTree = ""; }; + FC12E94720EB6B6800807EF4 /* PaddleMobile */ = { + isa = PBXGroup; + children = ( + FC12E94820EB6B6800807EF4 /* libpaddle-mobile.a */, + FC12E94920EB6B6800807EF4 /* PaddleMobile.h */, + ); + path = PaddleMobile; + sourceTree = ""; + }; + FC12E94B20EB6BBB00807EF4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + FC12E94C20EB6BBB00807EF4 /* libstdc++.tbd */, + ); + name = Frameworks; + sourceTree = ""; + }; + FC12E94E20EB6BED00807EF4 /* googlenet_combine */ = { + isa = PBXGroup; + children = ( + FC12E94F20EB6BED00807EF4 /* params */, + FC12E95020EB6BED00807EF4 /* model */, + ); + path = googlenet_combine; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - FC086BC320E783AF00D85EF7 /* PaddleMobileDemo */ = { + FC12E92D20EB6B2800807EF4 /* PaddleMobileDemo */ = { isa = PBXNativeTarget; - buildConfigurationList = FC086BDA20E783B100D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */; + buildConfigurationList = FC12E94420EB6B2900807EF4 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */; buildPhases = ( - FC086BC020E783AF00D85EF7 /* Sources */, - FC086BC120E783AF00D85EF7 /* Frameworks */, - FC086BC220E783AF00D85EF7 /* Resources */, + FC12E92A20EB6B2800807EF4 /* Sources */, + FC12E92B20EB6B2800807EF4 /* Frameworks */, + FC12E92C20EB6B2800807EF4 /* Resources */, ); buildRules = ( ); @@ -88,24 +131,24 @@ ); name = PaddleMobileDemo; productName = PaddleMobileDemo; - productReference = FC086BC420E783AF00D85EF7 /* PaddleMobileDemo.app */; + productReference = FC12E92E20EB6B2800807EF4 /* PaddleMobileDemo.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - FC086BBC20E783AF00D85EF7 /* Project object */ = { + FC12E92620EB6B2800807EF4 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0930; + LastUpgradeCheck = 0940; ORGANIZATIONNAME = orange; TargetAttributes = { - FC086BC320E783AF00D85EF7 = { - CreatedOnToolsVersion = 9.3.1; + FC12E92D20EB6B2800807EF4 = { + CreatedOnToolsVersion = 9.4.1; }; }; }; - buildConfigurationList = FC086BBF20E783AF00D85EF7 /* Build configuration list for PBXProject "PaddleMobileDemo" */; + buildConfigurationList = FC12E92920EB6B2800807EF4 /* Build configuration list for PBXProject "PaddleMobileDemo" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; @@ -113,55 +156,58 @@ en, Base, ); - mainGroup = FC086BBB20E783AF00D85EF7; - productRefGroup = FC086BC520E783AF00D85EF7 /* Products */; + mainGroup = FC12E92520EB6B2800807EF4; + productRefGroup = FC12E92F20EB6B2800807EF4 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - FC086BC320E783AF00D85EF7 /* PaddleMobileDemo */, + FC12E92D20EB6B2800807EF4 /* PaddleMobileDemo */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - FC086BC220E783AF00D85EF7 /* Resources */ = { + FC12E92C20EB6B2800807EF4 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - FC086BD420E783B100D85EF7 /* LaunchScreen.storyboard in Resources */, - FC086BD120E783B100D85EF7 /* Assets.xcassets in Resources */, - FC086BCF20E783AF00D85EF7 /* Main.storyboard in Resources */, + FC12E93E20EB6B2900807EF4 /* LaunchScreen.storyboard in Resources */, + FC12E95220EB6BED00807EF4 /* model in Resources */, + FC12E93B20EB6B2900807EF4 /* Assets.xcassets in Resources */, + FC12E95120EB6BED00807EF4 /* params in Resources */, + FC12E95420EB6C0D00807EF4 /* apple.jpg in Resources */, + FC12E93920EB6B2800807EF4 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - FC086BC020E783AF00D85EF7 /* Sources */ = { + FC12E92A20EB6B2800807EF4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FC086BCC20E783AF00D85EF7 /* ViewController.m in Sources */, - FC086BD720E783B100D85EF7 /* main.m in Sources */, - FC086BC920E783AF00D85EF7 /* AppDelegate.m in Sources */, + FC12E93620EB6B2800807EF4 /* ViewController.m in Sources */, + FC12E94120EB6B2900807EF4 /* main.m in Sources */, + FC12E93320EB6B2800807EF4 /* AppDelegate.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ - FC086BCD20E783AF00D85EF7 /* Main.storyboard */ = { + FC12E93720EB6B2800807EF4 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( - FC086BCE20E783AF00D85EF7 /* Base */, + FC12E93820EB6B2800807EF4 /* Base */, ); name = Main.storyboard; sourceTree = ""; }; - FC086BD220E783B100D85EF7 /* LaunchScreen.storyboard */ = { + FC12E93C20EB6B2900807EF4 /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( - FC086BD320E783B100D85EF7 /* Base */, + FC12E93D20EB6B2900807EF4 /* Base */, ); name = LaunchScreen.storyboard; sourceTree = ""; @@ -169,7 +215,7 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - FC086BD820E783B100D85EF7 /* Debug */ = { + FC12E94220EB6B2900807EF4 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -220,14 +266,14 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.3; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; name = Debug; }; - FC086BD920E783B100D85EF7 /* Release */ = { + FC12E94320EB6B2900807EF4 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -272,41 +318,53 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.3; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; }; name = Release; }; - FC086BDB20E783B100D85EF7 /* Debug */ = { + FC12E94520EB6B2900807EF4 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = Z5M2UUN5YV; + ENABLE_BITCODE = NO; INFOPLIST_FILE = PaddleMobileDemo/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/PaddleMobileDemo/PaddleMobile", + ); PRODUCT_BUNDLE_IDENTIFIER = orange.PaddleMobileDemo; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - FC086BDC20E783B100D85EF7 /* Release */ = { + FC12E94620EB6B2900807EF4 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = Z5M2UUN5YV; + ENABLE_BITCODE = NO; INFOPLIST_FILE = PaddleMobileDemo/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/PaddleMobileDemo/PaddleMobile", + ); PRODUCT_BUNDLE_IDENTIFIER = orange.PaddleMobileDemo; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; @@ -316,25 +374,25 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - FC086BBF20E783AF00D85EF7 /* Build configuration list for PBXProject "PaddleMobileDemo" */ = { + FC12E92920EB6B2800807EF4 /* Build configuration list for PBXProject "PaddleMobileDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( - FC086BD820E783B100D85EF7 /* Debug */, - FC086BD920E783B100D85EF7 /* Release */, + FC12E94220EB6B2900807EF4 /* Debug */, + FC12E94320EB6B2900807EF4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - FC086BDA20E783B100D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */ = { + FC12E94420EB6B2900807EF4 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( - FC086BDB20E783B100D85EF7 /* Debug */, - FC086BDC20E783B100D85EF7 /* Release */, + FC12E94520EB6B2900807EF4 /* Debug */, + FC12E94620EB6B2900807EF4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = FC086BBC20E783AF00D85EF7 /* Project object */; + rootObject = FC12E92620EB6B2800807EF4 /* Project object */; } diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/ios/PaddleMobile.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from ios/PaddleMobile.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..395136a63bb50378df8c37256880d4bbf9fd2f83 Binary files /dev/null and b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/src/common/openmp-fix.cpp b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h similarity index 51% rename from src/common/openmp-fix.cpp rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h index 8c31ef45c68227c612155e826e664367a7917501..0d2e035ab3c44617694f9ebe437d1a7289be0390 100644 --- a/src/common/openmp-fix.cpp +++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h @@ -12,16 +12,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -#ifdef PADDLE_MOBILE_USE_OPENMP -/** - * android-ndk-r17 has a problem when linking with openmp. - * if paddle-mobile enables -fopenmp, but didn't use those omp_* functions, - * after linking another binary with libpaddle-mobile.so, the omp_get_thread_num - * will not work. see test/common/test_openmp.cc the detailed reason is still - * unclear, but this trick will work. a better solution is hacking the linker, - * try some flags to make it link omp_* functions, but I didn't find out how to - * make it work. - */ -#include -static int _ = omp_get_num_procs(); -#endif +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m similarity index 78% rename from ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m index 12cc19636b43f7fc3634736c4b551b4aba29ce73..6644c3c079ae1748de28a634b78c344640cd335a 100644 --- a/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m +++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m @@ -1,16 +1,16 @@ /* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ #import "AppDelegate.h" diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json similarity index 100% rename from ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard similarity index 100% rename from ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist similarity index 100% rename from ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist diff --git a/ios/PaddleMobile/PaddleMobile/PaddleMobile.h b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/PaddleMobile.h similarity index 78% rename from ios/PaddleMobile/PaddleMobile/PaddleMobile.h rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/PaddleMobile.h index 3878c54c8a19a99e535bd8ad90eb1e19e28757c3..ec58371de032c265b2c32a5bac61ca6cf682ff28 100644 --- a/ios/PaddleMobile/PaddleMobile/PaddleMobile.h +++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/PaddleMobile.h @@ -17,10 +17,10 @@ @interface PaddleMobile : NSObject -+ (instancetype)sharedInstance; +- (instancetype)init; - (BOOL)load:(NSString *)modelPath andWeightsPath:(NSString *)weighsPath; -- (NSArray *)predict:(CGImageRef)image means:(NSArray *)means scale:(float)scale; -- (NSArray *)predict:(CGImageRef)image; +- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim means:(NSArray *)means scale:(float)scale; +- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim; - (void)clear; @end diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h new file mode 100644 index 0000000000000000000000000000000000000000..41e22092711c4fd1def105470c5b6610cce2257a --- /dev/null +++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h @@ -0,0 +1,21 @@ +/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#import + +@interface ViewController : UIViewController + + +@end + diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m new file mode 100644 index 0000000000000000000000000000000000000000..eb9f7d2bb5329ac4bbf8b790dc83c256f164ec64 --- /dev/null +++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m @@ -0,0 +1,49 @@ +/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#import "PaddleMobile.h" +#import "ViewController.h" + +@interface ViewController () + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + PaddleMobile *pam = [[PaddleMobile alloc] init]; + NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"model" ofType:nil]; + NSString *paramPath = [[NSBundle mainBundle] pathForResource:@"params" ofType:nil]; + if (modelPath.length == 0 || paramPath.length == 0) { + NSLog(@" need model and param"); + return; + } + + if ([pam load:modelPath andWeightsPath:paramPath]) { + NSLog(@"load success"); + UIImage *inputImage = [UIImage imageNamed:@"apple.jpg"]; + if (!inputImage) { + NSLog(@" input image is nil"); + return; + } + + NSDate *beforeDate = [NSDate date]; + NSArray *res = [pam predict:inputImage.CGImage dim:@[@1, @3, @224, @224] means:@[@148, @148, @148] scale:1.0]; + NSLog(@"res: %@", res); + NSLog(@"elapsed time: %f", [[NSDate date] timeIntervalSinceDate:beforeDate]); + } +} + +@end diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo/main.m b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/main.m new file mode 100644 index 0000000000000000000000000000000000000000..cf2cf6aa80b1d3d3c0480b54a668780ea3324c8b --- /dev/null +++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/main.m @@ -0,0 +1,22 @@ +/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/ios/PaddleMobile.xcworkspace/contents.xcworkspacedata b/ios/PaddleMobile.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 7c3243eefa5fdeaa40b8697bd8e0b5ba2daeeb55..0000000000000000000000000000000000000000 --- a/ios/PaddleMobile.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index ed9a9b4d42c454d27017c91c04ce8b8a518ac029..0000000000000000000000000000000000000000 --- a/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.pbxproj b/ios/PaddleMobile/PaddleMobile.xcodeproj/project.pbxproj deleted file mode 100644 index 7907ac8955996b25f9173a6114bccad3b1e1bed9..0000000000000000000000000000000000000000 --- a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.pbxproj +++ /dev/null @@ -1,965 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - FC086BB420E7839B00D85EF7 /* PaddleMobile.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BB320E7839B00D85EF7 /* PaddleMobile.m */; }; - FC086BB520E7839B00D85EF7 /* PaddleMobile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC086BB220E7839B00D85EF7 /* PaddleMobile.h */; }; - FC086DC620E7841E00D85EF7 /* t_malloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086CFE20E7841E00D85EF7 /* t_malloc.cpp */; }; - FC086DC720E7841E00D85EF7 /* lrn_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0320E7841E00D85EF7 /* lrn_op.cpp */; }; - FC086DC820E7841E00D85EF7 /* sigmoid_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0520E7841E00D85EF7 /* sigmoid_op.cpp */; }; - FC086DC920E7841E00D85EF7 /* box_coder_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0620E7841E00D85EF7 /* box_coder_op.cpp */; }; - FC086DCA20E7841E00D85EF7 /* feed_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0720E7841E00D85EF7 /* feed_op.cpp */; }; - FC086DCB20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0A20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp */; }; - FC086DCC20E7841E00D85EF7 /* reshape_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0B20E7841E00D85EF7 /* reshape_op.cpp */; }; - FC086DCD20E7841E00D85EF7 /* concat_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0C20E7841E00D85EF7 /* concat_op.cpp */; }; - FC086DCE20E7841E00D85EF7 /* transpose_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0D20E7841E00D85EF7 /* transpose_op.cpp */; }; - FC086DCF20E7841E00D85EF7 /* prior_box_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0E20E7841E00D85EF7 /* prior_box_op.cpp */; }; - FC086DD020E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0F20E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp */; }; - FC086DD120E7841E00D85EF7 /* softmax_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1520E7841E00D85EF7 /* softmax_op.cpp */; }; - FC086DD220E7841E00D85EF7 /* depthwise_conv_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1720E7841E00D85EF7 /* depthwise_conv_op.cpp */; }; - FC086DD320E7841E00D85EF7 /* elementwise_add_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1A20E7841E00D85EF7 /* elementwise_add_op.cpp */; }; - FC086DD420E7841E00D85EF7 /* gemm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1F20E7841E00D85EF7 /* gemm.cpp */; }; - FC086DD520E7841E00D85EF7 /* pool_2x2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2220E7841E00D85EF7 /* pool_2x2.cpp */; }; - FC086DD620E7841E00D85EF7 /* im2col.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2320E7841E00D85EF7 /* im2col.cpp */; }; - FC086DD720E7841E00D85EF7 /* vol2col.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2620E7841E00D85EF7 /* vol2col.cpp */; }; - FC086DD820E7841E00D85EF7 /* math_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2720E7841E00D85EF7 /* math_function.cpp */; }; - FC086DD920E7841E00D85EF7 /* pool_3x3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2820E7841E00D85EF7 /* pool_3x3.cpp */; }; - FC086DDA20E7841E00D85EF7 /* pooling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2B20E7841E00D85EF7 /* pooling.cpp */; }; - FC086DDB20E7841E00D85EF7 /* depthwise_conv_3x3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2D20E7841E00D85EF7 /* depthwise_conv_3x3.cpp */; }; - FC086DDC20E7841E00D85EF7 /* softmax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2F20E7841E00D85EF7 /* softmax.cpp */; }; - FC086DDD20E7841E00D85EF7 /* fetch_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3420E7841E00D85EF7 /* fetch_op.cpp */; }; - FC086DDE20E7841E00D85EF7 /* fusion_conv_add.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3520E7841E00D85EF7 /* fusion_conv_add.cpp */; }; - FC086DDF20E7841E00D85EF7 /* op_param.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3620E7841E00D85EF7 /* op_param.cpp */; }; - FC086DE020E7841E00D85EF7 /* mul_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3A20E7841E00D85EF7 /* mul_op.cpp */; }; - FC086DE120E7841E00D85EF7 /* relu_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3B20E7841E00D85EF7 /* relu_op.cpp */; }; - FC086DE220E7841E00D85EF7 /* conv_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3C20E7841E00D85EF7 /* conv_op.cpp */; }; - FC086DE320E7841E00D85EF7 /* fusion_fc_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3D20E7841E00D85EF7 /* fusion_fc_op.cpp */; }; - FC086DE420E7841E00D85EF7 /* batchnorm_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D4020E7841E00D85EF7 /* batchnorm_op.cpp */; }; - FC086DE520E7841E00D85EF7 /* pool_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D4220E7841E00D85EF7 /* pool_op.cpp */; }; - FC086DE620E7841E00D85EF7 /* multiclass_nms_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D4420E7841E00D85EF7 /* multiclass_nms_op.cpp */; }; - FC086DE720E7841E00D85EF7 /* acl_tensor.cc in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5220E7841E00D85EF7 /* acl_tensor.cc */; }; - FC086DE820E7841E00D85EF7 /* acl_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5320E7841E00D85EF7 /* acl_operator.cc */; }; - FC086DE920E7841E00D85EF7 /* conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5420E7841E00D85EF7 /* conv_kernel.cpp */; }; - FC086DEA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5620E7841E00D85EF7 /* conv_add_kernel.cpp */; }; - FC086DEB20E7841E00D85EF7 /* relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5820E7841E00D85EF7 /* relu_kernel.cpp */; }; - FC086DEC20E7841E00D85EF7 /* mul_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5920E7841E00D85EF7 /* mul_kernel.cpp */; }; - FC086DED20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5A20E7841E00D85EF7 /* elementwise_add_kernel.cpp */; }; - FC086DEE20E7841E00D85EF7 /* softmax_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5C20E7841E00D85EF7 /* softmax_kernel.cpp */; }; - FC086DEF20E7841E00D85EF7 /* concat_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5D20E7841E00D85EF7 /* concat_kernel.cpp */; }; - FC086DF020E7841E00D85EF7 /* pool_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5E20E7841E00D85EF7 /* pool_kernel.cpp */; }; - FC086DF120E7841E00D85EF7 /* reshape_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5F20E7841E00D85EF7 /* reshape_kernel.cpp */; }; - FC086DF220E7841E00D85EF7 /* lrn_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6020E7841E00D85EF7 /* lrn_kernel.cpp */; }; - FC086DF320E7841E00D85EF7 /* fushion_fc_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6120E7841E00D85EF7 /* fushion_fc_kernel.cpp */; }; - FC086DF420E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6220E7841E00D85EF7 /* batchnorm_kernel.cpp */; }; - FC086DF520E7841E00D85EF7 /* conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6F20E7841E00D85EF7 /* conv_kernel.cpp */; }; - FC086DF620E7841E00D85EF7 /* prior_box_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7420E7841E00D85EF7 /* prior_box_kernel.cpp */; }; - FC086DF720E7841E00D85EF7 /* conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7520E7841E00D85EF7 /* conv_kernel.cpp */; }; - FC086DF820E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7620E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp */; }; - FC086DF920E7841E00D85EF7 /* box_coder_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7720E7841E00D85EF7 /* box_coder_kernel.cpp */; }; - FC086DFA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7820E7841E00D85EF7 /* conv_add_kernel.cpp */; }; - FC086DFB20E7841E00D85EF7 /* sigmoid_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7920E7841E00D85EF7 /* sigmoid_kernel.cpp */; }; - FC086DFC20E7841E00D85EF7 /* relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7A20E7841E00D85EF7 /* relu_kernel.cpp */; }; - FC086DFD20E7841E00D85EF7 /* mul_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7B20E7841E00D85EF7 /* mul_kernel.cpp */; }; - FC086DFE20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7C20E7841E00D85EF7 /* elementwise_add_kernel.cpp */; }; - FC086DFF20E7841E00D85EF7 /* conv_add_relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7D20E7841E00D85EF7 /* conv_add_relu_kernel.cpp */; }; - FC086E0020E7841E00D85EF7 /* transpose_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7E20E7841E00D85EF7 /* transpose_kernel.cpp */; }; - FC086E0120E7841E00D85EF7 /* depthwise_conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7F20E7841E00D85EF7 /* depthwise_conv_kernel.cpp */; }; - FC086E0220E7841E00D85EF7 /* softmax_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8020E7841E00D85EF7 /* softmax_kernel.cpp */; }; - FC086E0320E7841E00D85EF7 /* concat_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8120E7841E00D85EF7 /* concat_kernel.cpp */; }; - FC086E0420E7841E00D85EF7 /* fusion_fc_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8220E7841E00D85EF7 /* fusion_fc_kernel.cpp */; }; - FC086E0520E7841E00D85EF7 /* pool_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8320E7841E00D85EF7 /* pool_kernel.cpp */; }; - FC086E0620E7841E00D85EF7 /* reshape_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8420E7841E00D85EF7 /* reshape_kernel.cpp */; }; - FC086E0720E7841E00D85EF7 /* lrn_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8520E7841E00D85EF7 /* lrn_kernel.cpp */; }; - FC086E0820E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8620E7841E00D85EF7 /* batchnorm_kernel.cpp */; }; - FC086E0920E7841E00D85EF7 /* multiclass_nms_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8720E7841E00D85EF7 /* multiclass_nms_kernel.cpp */; }; - FC086E0A20E7841E00D85EF7 /* framework.pb-c.c in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8B20E7841E00D85EF7 /* framework.pb-c.c */; }; - FC086E0B20E7841E00D85EF7 /* tensor_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8C20E7841E00D85EF7 /* tensor_util.cpp */; }; - FC086E0C20E7841E00D85EF7 /* operator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8F20E7841E00D85EF7 /* operator.cpp */; }; - FC086E0D20E7841E00D85EF7 /* ddim.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9020E7841E00D85EF7 /* ddim.cpp */; }; - FC086E0E20E7841E00D85EF7 /* scope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9320E7841E00D85EF7 /* scope.cpp */; }; - FC086E0F20E7841E00D85EF7 /* attribute.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9920E7841E00D85EF7 /* attribute.cpp */; }; - FC086E1020E7841E00D85EF7 /* op_desc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9C20E7841E00D85EF7 /* op_desc.cpp */; }; - FC086E1120E7841E00D85EF7 /* program_desc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9D20E7841E00D85EF7 /* program_desc.cpp */; }; - FC086E1220E7841E00D85EF7 /* node.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DA320E7841E00D85EF7 /* node.cpp */; }; - FC086E1320E7841E00D85EF7 /* program_optimize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DA620E7841E00D85EF7 /* program_optimize.cpp */; }; - FC086E1420E7841E00D85EF7 /* block_desc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DA720E7841E00D85EF7 /* block_desc.cpp */; }; - FC086E1520E7841E00D85EF7 /* lod_tensor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DAB20E7841E00D85EF7 /* lod_tensor.cpp */; }; - FC086E1620E7841E00D85EF7 /* io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DB320E7841E00D85EF7 /* io.cpp */; }; - FC086E1720E7841E00D85EF7 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DB620E7841E00D85EF7 /* types.cpp */; }; - FC086E1820E7841E00D85EF7 /* openmp-fix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DBA20E7841E00D85EF7 /* openmp-fix.cpp */; }; - FC086E1920E7841E00D85EF7 /* protobuf-c.c in Sources */ = {isa = PBXBuildFile; fileRef = FC086DC120E7841E00D85EF7 /* protobuf-c.c */; }; - FC086E1A20E7841E00D85EF7 /* paddle_mobile_jni.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DC420E7841E00D85EF7 /* paddle_mobile_jni.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - FC086BAD20E7839B00D85EF7 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - FC086BB520E7839B00D85EF7 /* PaddleMobile.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - FC086BAF20E7839B00D85EF7 /* libPaddleMobile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPaddleMobile.a; sourceTree = BUILT_PRODUCTS_DIR; }; - FC086BB220E7839B00D85EF7 /* PaddleMobile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PaddleMobile.h; sourceTree = ""; }; - FC086BB320E7839B00D85EF7 /* PaddleMobile.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PaddleMobile.m; sourceTree = ""; }; - FC086CFE20E7841E00D85EF7 /* t_malloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = t_malloc.cpp; sourceTree = ""; }; - FC086CFF20E7841E00D85EF7 /* t_malloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = t_malloc.h; sourceTree = ""; }; - FC086D0120E7841E00D85EF7 /* feed_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feed_op.h; sourceTree = ""; }; - FC086D0220E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_conv_add_bn_relu_op.h; sourceTree = ""; }; - FC086D0320E7841E00D85EF7 /* lrn_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lrn_op.cpp; sourceTree = ""; }; - FC086D0420E7841E00D85EF7 /* op_param.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_param.h; sourceTree = ""; }; - FC086D0520E7841E00D85EF7 /* sigmoid_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sigmoid_op.cpp; sourceTree = ""; }; - FC086D0620E7841E00D85EF7 /* box_coder_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = box_coder_op.cpp; sourceTree = ""; }; - FC086D0720E7841E00D85EF7 /* feed_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feed_op.cpp; sourceTree = ""; }; - FC086D0820E7841E00D85EF7 /* mul_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mul_op.h; sourceTree = ""; }; - FC086D0920E7841E00D85EF7 /* prior_box_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = prior_box_op.h; sourceTree = ""; }; - FC086D0A20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_conv_add_bn_relu_op.cpp; sourceTree = ""; }; - FC086D0B20E7841E00D85EF7 /* reshape_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reshape_op.cpp; sourceTree = ""; }; - FC086D0C20E7841E00D85EF7 /* concat_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = concat_op.cpp; sourceTree = ""; }; - FC086D0D20E7841E00D85EF7 /* transpose_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transpose_op.cpp; sourceTree = ""; }; - FC086D0E20E7841E00D85EF7 /* prior_box_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prior_box_op.cpp; sourceTree = ""; }; - FC086D0F20E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_conv_add_relu_op.cpp; sourceTree = ""; }; - FC086D1020E7841E00D85EF7 /* lrn_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lrn_op.h; sourceTree = ""; }; - FC086D1120E7841E00D85EF7 /* multiclass_nms_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = multiclass_nms_op.h; sourceTree = ""; }; - FC086D1220E7841E00D85EF7 /* relu_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relu_op.h; sourceTree = ""; }; - FC086D1320E7841E00D85EF7 /* fusion_conv_add.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_conv_add.h; sourceTree = ""; }; - FC086D1420E7841E00D85EF7 /* conv_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_op.h; sourceTree = ""; }; - FC086D1520E7841E00D85EF7 /* softmax_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax_op.cpp; sourceTree = ""; }; - FC086D1620E7841E00D85EF7 /* pool_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_op.h; sourceTree = ""; }; - FC086D1720E7841E00D85EF7 /* depthwise_conv_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = depthwise_conv_op.cpp; sourceTree = ""; }; - FC086D1820E7841E00D85EF7 /* softmax_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = softmax_op.h; sourceTree = ""; }; - FC086D1920E7841E00D85EF7 /* elementwise_add_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = elementwise_add_op.h; sourceTree = ""; }; - FC086D1A20E7841E00D85EF7 /* elementwise_add_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = elementwise_add_op.cpp; sourceTree = ""; }; - FC086D1B20E7841E00D85EF7 /* fetch_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fetch_op.h; sourceTree = ""; }; - FC086D1D20E7841E00D85EF7 /* elementwise_op_function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = elementwise_op_function.h; sourceTree = ""; }; - FC086D1E20E7841E00D85EF7 /* softmax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = softmax.h; sourceTree = ""; }; - FC086D1F20E7841E00D85EF7 /* gemm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gemm.cpp; sourceTree = ""; }; - FC086D2020E7841E00D85EF7 /* math_function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_function.h; sourceTree = ""; }; - FC086D2120E7841E00D85EF7 /* conv_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_func.h; sourceTree = ""; }; - FC086D2220E7841E00D85EF7 /* pool_2x2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_2x2.cpp; sourceTree = ""; }; - FC086D2320E7841E00D85EF7 /* im2col.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = im2col.cpp; sourceTree = ""; }; - FC086D2420E7841E00D85EF7 /* gemm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gemm.h; sourceTree = ""; }; - FC086D2520E7841E00D85EF7 /* im2col.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = im2col.h; sourceTree = ""; }; - FC086D2620E7841E00D85EF7 /* vol2col.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vol2col.cpp; sourceTree = ""; }; - FC086D2720E7841E00D85EF7 /* math_function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = math_function.cpp; sourceTree = ""; }; - FC086D2820E7841E00D85EF7 /* pool_3x3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_3x3.cpp; sourceTree = ""; }; - FC086D2920E7841E00D85EF7 /* pool_2x2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_2x2.h; sourceTree = ""; }; - FC086D2A20E7841E00D85EF7 /* depthwise_conv_3x3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_3x3.h; sourceTree = ""; }; - FC086D2B20E7841E00D85EF7 /* pooling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pooling.cpp; sourceTree = ""; }; - FC086D2C20E7841E00D85EF7 /* pool_3x3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_3x3.h; sourceTree = ""; }; - FC086D2D20E7841E00D85EF7 /* depthwise_conv_3x3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = depthwise_conv_3x3.cpp; sourceTree = ""; }; - FC086D2E20E7841E00D85EF7 /* vol2col.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vol2col.h; sourceTree = ""; }; - FC086D2F20E7841E00D85EF7 /* softmax.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax.cpp; sourceTree = ""; }; - FC086D3020E7841E00D85EF7 /* transform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transform.h; sourceTree = ""; }; - FC086D3120E7841E00D85EF7 /* pooling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pooling.h; sourceTree = ""; }; - FC086D3220E7841E00D85EF7 /* math_func_neon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_func_neon.h; sourceTree = ""; }; - FC086D3320E7841E00D85EF7 /* fusion_conv_add_relu_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_conv_add_relu_op.h; sourceTree = ""; }; - FC086D3420E7841E00D85EF7 /* fetch_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fetch_op.cpp; sourceTree = ""; }; - FC086D3520E7841E00D85EF7 /* fusion_conv_add.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_conv_add.cpp; sourceTree = ""; }; - FC086D3620E7841E00D85EF7 /* op_param.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = op_param.cpp; sourceTree = ""; }; - FC086D3720E7841E00D85EF7 /* transpose_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transpose_op.h; sourceTree = ""; }; - FC086D3820E7841E00D85EF7 /* fusion_fc_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_fc_op.h; sourceTree = ""; }; - FC086D3920E7841E00D85EF7 /* batchnorm_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = batchnorm_op.h; sourceTree = ""; }; - FC086D3A20E7841E00D85EF7 /* mul_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mul_op.cpp; sourceTree = ""; }; - FC086D3B20E7841E00D85EF7 /* relu_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relu_op.cpp; sourceTree = ""; }; - FC086D3C20E7841E00D85EF7 /* conv_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_op.cpp; sourceTree = ""; }; - FC086D3D20E7841E00D85EF7 /* fusion_fc_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_fc_op.cpp; sourceTree = ""; }; - FC086D3E20E7841E00D85EF7 /* box_coder_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = box_coder_op.h; sourceTree = ""; }; - FC086D3F20E7841E00D85EF7 /* concat_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = concat_op.h; sourceTree = ""; }; - FC086D4020E7841E00D85EF7 /* batchnorm_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = batchnorm_op.cpp; sourceTree = ""; }; - FC086D4120E7841E00D85EF7 /* reshape_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reshape_op.h; sourceTree = ""; }; - FC086D4220E7841E00D85EF7 /* pool_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_op.cpp; sourceTree = ""; }; - FC086D4320E7841E00D85EF7 /* sigmoid_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sigmoid_op.h; sourceTree = ""; }; - FC086D4420E7841E00D85EF7 /* multiclass_nms_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multiclass_nms_op.cpp; sourceTree = ""; }; - FC086D4620E7841E00D85EF7 /* relu_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relu_kernel.h; sourceTree = ""; }; - FC086D4720E7841E00D85EF7 /* multiclass_nms_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = multiclass_nms_kernel.h; sourceTree = ""; }; - FC086D4820E7841E00D85EF7 /* depthwise_conv_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_kernel.h; sourceTree = ""; }; - FC086D4920E7841E00D85EF7 /* lrn_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lrn_kernel.h; sourceTree = ""; }; - FC086D4A20E7841E00D85EF7 /* pool_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_kernel.h; sourceTree = ""; }; - FC086D4B20E7841E00D85EF7 /* fusion_fc_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_fc_kernel.h; sourceTree = ""; }; - FC086D4C20E7841E00D85EF7 /* box_coder_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = box_coder_kernel.h; sourceTree = ""; }; - FC086D4D20E7841E00D85EF7 /* concat_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = concat_kernel.h; sourceTree = ""; }; - FC086D4E20E7841E00D85EF7 /* mul_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mul_kernel.h; sourceTree = ""; }; - FC086D4F20E7841E00D85EF7 /* softmax_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = softmax_kernel.h; sourceTree = ""; }; - FC086D5020E7841E00D85EF7 /* batchnorm_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = batchnorm_kernel.h; sourceTree = ""; }; - FC086D5220E7841E00D85EF7 /* acl_tensor.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = acl_tensor.cc; sourceTree = ""; }; - FC086D5320E7841E00D85EF7 /* acl_operator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = acl_operator.cc; sourceTree = ""; }; - FC086D5420E7841E00D85EF7 /* conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_kernel.cpp; sourceTree = ""; }; - FC086D5520E7841E00D85EF7 /* acl_operator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl_operator.h; sourceTree = ""; }; - FC086D5620E7841E00D85EF7 /* conv_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_kernel.cpp; sourceTree = ""; }; - FC086D5720E7841E00D85EF7 /* acl_tensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl_tensor.h; sourceTree = ""; }; - FC086D5820E7841E00D85EF7 /* relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relu_kernel.cpp; sourceTree = ""; }; - FC086D5920E7841E00D85EF7 /* mul_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mul_kernel.cpp; sourceTree = ""; }; - FC086D5A20E7841E00D85EF7 /* elementwise_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = elementwise_add_kernel.cpp; sourceTree = ""; }; - FC086D5C20E7841E00D85EF7 /* softmax_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax_kernel.cpp; sourceTree = ""; }; - FC086D5D20E7841E00D85EF7 /* concat_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = concat_kernel.cpp; sourceTree = ""; }; - FC086D5E20E7841E00D85EF7 /* pool_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_kernel.cpp; sourceTree = ""; }; - FC086D5F20E7841E00D85EF7 /* reshape_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reshape_kernel.cpp; sourceTree = ""; }; - FC086D6020E7841E00D85EF7 /* lrn_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lrn_kernel.cpp; sourceTree = ""; }; - FC086D6120E7841E00D85EF7 /* fushion_fc_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fushion_fc_kernel.cpp; sourceTree = ""; }; - FC086D6220E7841E00D85EF7 /* batchnorm_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = batchnorm_kernel.cpp; sourceTree = ""; }; - FC086D6320E7841E00D85EF7 /* elementwise_add_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = elementwise_add_kernel.h; sourceTree = ""; }; - FC086D6520E7841E00D85EF7 /* conv_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_arm_func.h; sourceTree = ""; }; - FC086D6620E7841E00D85EF7 /* conv_add_bn_relu_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_bn_relu_func.h; sourceTree = ""; }; - FC086D6720E7841E00D85EF7 /* conv_add_relu_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_relu_arm_func.h; sourceTree = ""; }; - FC086D6820E7841E00D85EF7 /* depthwise_conv_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_arm_func.h; sourceTree = ""; }; - FC086D6920E7841E00D85EF7 /* batchnorm_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = batchnorm_arm_func.h; sourceTree = ""; }; - FC086D6A20E7841E00D85EF7 /* conv_add_relu_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_relu_kernel.h; sourceTree = ""; }; - FC086D6B20E7841E00D85EF7 /* reshape_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reshape_kernel.h; sourceTree = ""; }; - FC086D6C20E7841E00D85EF7 /* transpose_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transpose_kernel.h; sourceTree = ""; }; - FC086D6D20E7841E00D85EF7 /* conv_add_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_kernel.h; sourceTree = ""; }; - FC086D6F20E7841E00D85EF7 /* conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_kernel.cpp; sourceTree = ""; }; - FC086D7020E7841E00D85EF7 /* conv_add_bn_relu_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_bn_relu_kernel.h; sourceTree = ""; }; - FC086D7120E7841E00D85EF7 /* prior_box_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = prior_box_kernel.h; sourceTree = ""; }; - FC086D7220E7841E00D85EF7 /* conv_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_kernel.h; sourceTree = ""; }; - FC086D7420E7841E00D85EF7 /* prior_box_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prior_box_kernel.cpp; sourceTree = ""; }; - FC086D7520E7841E00D85EF7 /* conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_kernel.cpp; sourceTree = ""; }; - FC086D7620E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_bn_relu_kernel.cpp; sourceTree = ""; }; - FC086D7720E7841E00D85EF7 /* box_coder_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = box_coder_kernel.cpp; sourceTree = ""; }; - FC086D7820E7841E00D85EF7 /* conv_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_kernel.cpp; sourceTree = ""; }; - FC086D7920E7841E00D85EF7 /* sigmoid_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sigmoid_kernel.cpp; sourceTree = ""; }; - FC086D7A20E7841E00D85EF7 /* relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relu_kernel.cpp; sourceTree = ""; }; - FC086D7B20E7841E00D85EF7 /* mul_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mul_kernel.cpp; sourceTree = ""; }; - FC086D7C20E7841E00D85EF7 /* elementwise_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = elementwise_add_kernel.cpp; sourceTree = ""; }; - FC086D7D20E7841E00D85EF7 /* conv_add_relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_relu_kernel.cpp; sourceTree = ""; }; - FC086D7E20E7841E00D85EF7 /* transpose_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transpose_kernel.cpp; sourceTree = ""; }; - FC086D7F20E7841E00D85EF7 /* depthwise_conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = depthwise_conv_kernel.cpp; sourceTree = ""; }; - FC086D8020E7841E00D85EF7 /* softmax_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax_kernel.cpp; sourceTree = ""; }; - FC086D8120E7841E00D85EF7 /* concat_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = concat_kernel.cpp; sourceTree = ""; }; - FC086D8220E7841E00D85EF7 /* fusion_fc_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_fc_kernel.cpp; sourceTree = ""; }; - FC086D8320E7841E00D85EF7 /* pool_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_kernel.cpp; sourceTree = ""; }; - FC086D8420E7841E00D85EF7 /* reshape_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reshape_kernel.cpp; sourceTree = ""; }; - FC086D8520E7841E00D85EF7 /* lrn_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lrn_kernel.cpp; sourceTree = ""; }; - FC086D8620E7841E00D85EF7 /* batchnorm_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = batchnorm_kernel.cpp; sourceTree = ""; }; - FC086D8720E7841E00D85EF7 /* multiclass_nms_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multiclass_nms_kernel.cpp; sourceTree = ""; }; - FC086D8820E7841E00D85EF7 /* sigmoid_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sigmoid_kernel.h; sourceTree = ""; }; - FC086D8920E7841E00D85EF7 /* depthwise_conv_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_op.h; sourceTree = ""; }; - FC086D8B20E7841E00D85EF7 /* framework.pb-c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "framework.pb-c.c"; sourceTree = ""; }; - FC086D8C20E7841E00D85EF7 /* tensor_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tensor_util.cpp; sourceTree = ""; }; - FC086D8D20E7841E00D85EF7 /* operator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operator.h; sourceTree = ""; }; - FC086D8E20E7841E00D85EF7 /* op_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_info.h; sourceTree = ""; }; - FC086D8F20E7841E00D85EF7 /* operator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operator.cpp; sourceTree = ""; }; - FC086D9020E7841E00D85EF7 /* ddim.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ddim.cpp; sourceTree = ""; }; - FC086D9120E7841E00D85EF7 /* tensor_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensor_util.h; sourceTree = ""; }; - FC086D9220E7841E00D85EF7 /* variable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = variable.h; sourceTree = ""; }; - FC086D9320E7841E00D85EF7 /* scope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scope.cpp; sourceTree = ""; }; - FC086D9420E7841E00D85EF7 /* data_layout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = data_layout.h; sourceTree = ""; }; - FC086D9520E7841E00D85EF7 /* lod_tensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lod_tensor.h; sourceTree = ""; }; - FC086D9620E7841E00D85EF7 /* dim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dim.h; sourceTree = ""; }; - FC086D9720E7841E00D85EF7 /* framework.pb-c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "framework.pb-c.h"; sourceTree = ""; }; - FC086D9820E7841E00D85EF7 /* op_kernel_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_kernel_type.h; sourceTree = ""; }; - FC086D9920E7841E00D85EF7 /* attribute.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = attribute.cpp; sourceTree = ""; }; - FC086D9A20E7841E00D85EF7 /* op_proto_maker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_proto_maker.h; sourceTree = ""; }; - FC086D9C20E7841E00D85EF7 /* op_desc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = op_desc.cpp; sourceTree = ""; }; - FC086D9D20E7841E00D85EF7 /* program_desc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = program_desc.cpp; sourceTree = ""; }; - FC086D9E20E7841E00D85EF7 /* var_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = var_desc.h; sourceTree = ""; }; - FC086D9F20E7841E00D85EF7 /* program_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = program_desc.h; sourceTree = ""; }; - FC086DA020E7841E00D85EF7 /* op_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_desc.h; sourceTree = ""; }; - FC086DA220E7841E00D85EF7 /* fusion_op_register.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_op_register.h; sourceTree = ""; }; - FC086DA320E7841E00D85EF7 /* node.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node.cpp; sourceTree = ""; }; - FC086DA420E7841E00D85EF7 /* node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node.h; sourceTree = ""; }; - FC086DA520E7841E00D85EF7 /* program_optimize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = program_optimize.h; sourceTree = ""; }; - FC086DA620E7841E00D85EF7 /* program_optimize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = program_optimize.cpp; sourceTree = ""; }; - FC086DA720E7841E00D85EF7 /* block_desc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_desc.cpp; sourceTree = ""; }; - FC086DA820E7841E00D85EF7 /* program.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = program.h; sourceTree = ""; }; - FC086DA920E7841E00D85EF7 /* tensor_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensor_desc.h; sourceTree = ""; }; - FC086DAA20E7841E00D85EF7 /* block_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_desc.h; sourceTree = ""; }; - FC086DAB20E7841E00D85EF7 /* lod_tensor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lod_tensor.cpp; sourceTree = ""; }; - FC086DAC20E7841E00D85EF7 /* framework.proto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = framework.proto; sourceTree = ""; }; - FC086DAD20E7841E00D85EF7 /* ddim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ddim.h; sourceTree = ""; }; - FC086DAE20E7841E00D85EF7 /* attribute.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = attribute.h; sourceTree = ""; }; - FC086DAF20E7841E00D85EF7 /* scope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scope.h; sourceTree = ""; }; - FC086DB020E7841E00D85EF7 /* tensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensor.h; sourceTree = ""; }; - FC086DB120E7841E00D85EF7 /* op_registry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_registry.h; sourceTree = ""; }; - FC086DB320E7841E00D85EF7 /* io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = io.cpp; sourceTree = ""; }; - FC086DB420E7841E00D85EF7 /* io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = io.h; sourceTree = ""; }; - FC086DB620E7841E00D85EF7 /* types.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = types.cpp; sourceTree = ""; }; - FC086DB720E7841E00D85EF7 /* threadpool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = threadpool.h; sourceTree = ""; }; - FC086DB820E7841E00D85EF7 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; - FC086DB920E7841E00D85EF7 /* protobuf-c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "protobuf-c.h"; sourceTree = ""; }; - FC086DBA20E7841E00D85EF7 /* openmp-fix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "openmp-fix.cpp"; sourceTree = ""; }; - FC086DBB20E7841E00D85EF7 /* dep_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dep_core.h; sourceTree = ""; }; - FC086DBC20E7841E00D85EF7 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; - FC086DBD20E7841E00D85EF7 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; - FC086DBE20E7841E00D85EF7 /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macros.h; sourceTree = ""; }; - FC086DBF20E7841E00D85EF7 /* type_define.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = type_define.h; sourceTree = ""; }; - FC086DC020E7841E00D85EF7 /* enforce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enforce.h; sourceTree = ""; }; - FC086DC120E7841E00D85EF7 /* protobuf-c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "protobuf-c.c"; sourceTree = ""; }; - FC086DC220E7841E00D85EF7 /* variant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = variant.h; sourceTree = ""; }; - FC086DC420E7841E00D85EF7 /* paddle_mobile_jni.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = paddle_mobile_jni.cpp; sourceTree = ""; }; - FC086DC520E7841E00D85EF7 /* paddle_mobile_jni.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = paddle_mobile_jni.h; sourceTree = ""; }; - FC2428A520E78DF20095932F /* MacroDefine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MacroDefine.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - FC086BAC20E7839B00D85EF7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - FC086BA620E7839B00D85EF7 = { - isa = PBXGroup; - children = ( - FC086BB120E7839B00D85EF7 /* PaddleMobile */, - FC086BB020E7839B00D85EF7 /* Products */, - ); - sourceTree = ""; - }; - FC086BB020E7839B00D85EF7 /* Products */ = { - isa = PBXGroup; - children = ( - FC086BAF20E7839B00D85EF7 /* libPaddleMobile.a */, - ); - name = Products; - sourceTree = ""; - }; - FC086BB120E7839B00D85EF7 /* PaddleMobile */ = { - isa = PBXGroup; - children = ( - FC086CFC20E7841E00D85EF7 /* src */, - FC086BB220E7839B00D85EF7 /* PaddleMobile.h */, - FC086BB320E7839B00D85EF7 /* PaddleMobile.m */, - FC2428A520E78DF20095932F /* MacroDefine.h */, - ); - path = PaddleMobile; - sourceTree = ""; - }; - FC086CFC20E7841E00D85EF7 /* src */ = { - isa = PBXGroup; - children = ( - FC086CFD20E7841E00D85EF7 /* memory */, - FC086D0020E7841E00D85EF7 /* operators */, - FC086D8A20E7841E00D85EF7 /* framework */, - FC086DB220E7841E00D85EF7 /* io */, - FC086DB520E7841E00D85EF7 /* common */, - FC086DC320E7841E00D85EF7 /* jni */, - ); - name = src; - path = ../../../src; - sourceTree = ""; - }; - FC086CFD20E7841E00D85EF7 /* memory */ = { - isa = PBXGroup; - children = ( - FC086CFE20E7841E00D85EF7 /* t_malloc.cpp */, - FC086CFF20E7841E00D85EF7 /* t_malloc.h */, - ); - path = memory; - sourceTree = ""; - }; - FC086D0020E7841E00D85EF7 /* operators */ = { - isa = PBXGroup; - children = ( - FC086D0120E7841E00D85EF7 /* feed_op.h */, - FC086D0220E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.h */, - FC086D0320E7841E00D85EF7 /* lrn_op.cpp */, - FC086D0420E7841E00D85EF7 /* op_param.h */, - FC086D0520E7841E00D85EF7 /* sigmoid_op.cpp */, - FC086D0620E7841E00D85EF7 /* box_coder_op.cpp */, - FC086D0720E7841E00D85EF7 /* feed_op.cpp */, - FC086D0820E7841E00D85EF7 /* mul_op.h */, - FC086D0920E7841E00D85EF7 /* prior_box_op.h */, - FC086D0A20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp */, - FC086D0B20E7841E00D85EF7 /* reshape_op.cpp */, - FC086D0C20E7841E00D85EF7 /* concat_op.cpp */, - FC086D0D20E7841E00D85EF7 /* transpose_op.cpp */, - FC086D0E20E7841E00D85EF7 /* prior_box_op.cpp */, - FC086D0F20E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp */, - FC086D1020E7841E00D85EF7 /* lrn_op.h */, - FC086D1120E7841E00D85EF7 /* multiclass_nms_op.h */, - FC086D1220E7841E00D85EF7 /* relu_op.h */, - FC086D1320E7841E00D85EF7 /* fusion_conv_add.h */, - FC086D1420E7841E00D85EF7 /* conv_op.h */, - FC086D1520E7841E00D85EF7 /* softmax_op.cpp */, - FC086D1620E7841E00D85EF7 /* pool_op.h */, - FC086D1720E7841E00D85EF7 /* depthwise_conv_op.cpp */, - FC086D1820E7841E00D85EF7 /* softmax_op.h */, - FC086D1920E7841E00D85EF7 /* elementwise_add_op.h */, - FC086D1A20E7841E00D85EF7 /* elementwise_add_op.cpp */, - FC086D1B20E7841E00D85EF7 /* fetch_op.h */, - FC086D1C20E7841E00D85EF7 /* math */, - FC086D3320E7841E00D85EF7 /* fusion_conv_add_relu_op.h */, - FC086D3420E7841E00D85EF7 /* fetch_op.cpp */, - FC086D3520E7841E00D85EF7 /* fusion_conv_add.cpp */, - FC086D3620E7841E00D85EF7 /* op_param.cpp */, - FC086D3720E7841E00D85EF7 /* transpose_op.h */, - FC086D3820E7841E00D85EF7 /* fusion_fc_op.h */, - FC086D3920E7841E00D85EF7 /* batchnorm_op.h */, - FC086D3A20E7841E00D85EF7 /* mul_op.cpp */, - FC086D3B20E7841E00D85EF7 /* relu_op.cpp */, - FC086D3C20E7841E00D85EF7 /* conv_op.cpp */, - FC086D3D20E7841E00D85EF7 /* fusion_fc_op.cpp */, - FC086D3E20E7841E00D85EF7 /* box_coder_op.h */, - FC086D3F20E7841E00D85EF7 /* concat_op.h */, - FC086D4020E7841E00D85EF7 /* batchnorm_op.cpp */, - FC086D4120E7841E00D85EF7 /* reshape_op.h */, - FC086D4220E7841E00D85EF7 /* pool_op.cpp */, - FC086D4320E7841E00D85EF7 /* sigmoid_op.h */, - FC086D4420E7841E00D85EF7 /* multiclass_nms_op.cpp */, - FC086D4520E7841E00D85EF7 /* kernel */, - FC086D8920E7841E00D85EF7 /* depthwise_conv_op.h */, - ); - path = operators; - sourceTree = ""; - }; - FC086D1C20E7841E00D85EF7 /* math */ = { - isa = PBXGroup; - children = ( - FC086D1D20E7841E00D85EF7 /* elementwise_op_function.h */, - FC086D1E20E7841E00D85EF7 /* softmax.h */, - FC086D1F20E7841E00D85EF7 /* gemm.cpp */, - FC086D2020E7841E00D85EF7 /* math_function.h */, - FC086D2120E7841E00D85EF7 /* conv_func.h */, - FC086D2220E7841E00D85EF7 /* pool_2x2.cpp */, - FC086D2320E7841E00D85EF7 /* im2col.cpp */, - FC086D2420E7841E00D85EF7 /* gemm.h */, - FC086D2520E7841E00D85EF7 /* im2col.h */, - FC086D2620E7841E00D85EF7 /* vol2col.cpp */, - FC086D2720E7841E00D85EF7 /* math_function.cpp */, - FC086D2820E7841E00D85EF7 /* pool_3x3.cpp */, - FC086D2920E7841E00D85EF7 /* pool_2x2.h */, - FC086D2A20E7841E00D85EF7 /* depthwise_conv_3x3.h */, - FC086D2B20E7841E00D85EF7 /* pooling.cpp */, - FC086D2C20E7841E00D85EF7 /* pool_3x3.h */, - FC086D2D20E7841E00D85EF7 /* depthwise_conv_3x3.cpp */, - FC086D2E20E7841E00D85EF7 /* vol2col.h */, - FC086D2F20E7841E00D85EF7 /* softmax.cpp */, - FC086D3020E7841E00D85EF7 /* transform.h */, - FC086D3120E7841E00D85EF7 /* pooling.h */, - FC086D3220E7841E00D85EF7 /* math_func_neon.h */, - ); - path = math; - sourceTree = ""; - }; - FC086D4520E7841E00D85EF7 /* kernel */ = { - isa = PBXGroup; - children = ( - FC086D4620E7841E00D85EF7 /* relu_kernel.h */, - FC086D4720E7841E00D85EF7 /* multiclass_nms_kernel.h */, - FC086D4820E7841E00D85EF7 /* depthwise_conv_kernel.h */, - FC086D4920E7841E00D85EF7 /* lrn_kernel.h */, - FC086D4A20E7841E00D85EF7 /* pool_kernel.h */, - FC086D4B20E7841E00D85EF7 /* fusion_fc_kernel.h */, - FC086D4C20E7841E00D85EF7 /* box_coder_kernel.h */, - FC086D4D20E7841E00D85EF7 /* concat_kernel.h */, - FC086D4E20E7841E00D85EF7 /* mul_kernel.h */, - FC086D4F20E7841E00D85EF7 /* softmax_kernel.h */, - FC086D5020E7841E00D85EF7 /* batchnorm_kernel.h */, - FC086D5120E7841E00D85EF7 /* mali */, - FC086D6320E7841E00D85EF7 /* elementwise_add_kernel.h */, - FC086D6420E7841E00D85EF7 /* central-arm-func */, - FC086D6A20E7841E00D85EF7 /* conv_add_relu_kernel.h */, - FC086D6B20E7841E00D85EF7 /* reshape_kernel.h */, - FC086D6C20E7841E00D85EF7 /* transpose_kernel.h */, - FC086D6D20E7841E00D85EF7 /* conv_add_kernel.h */, - FC086D6E20E7841E00D85EF7 /* fpga */, - FC086D7020E7841E00D85EF7 /* conv_add_bn_relu_kernel.h */, - FC086D7120E7841E00D85EF7 /* prior_box_kernel.h */, - FC086D7220E7841E00D85EF7 /* conv_kernel.h */, - FC086D7320E7841E00D85EF7 /* arm */, - FC086D8820E7841E00D85EF7 /* sigmoid_kernel.h */, - ); - path = kernel; - sourceTree = ""; - }; - FC086D5120E7841E00D85EF7 /* mali */ = { - isa = PBXGroup; - children = ( - FC086D5220E7841E00D85EF7 /* acl_tensor.cc */, - FC086D5320E7841E00D85EF7 /* acl_operator.cc */, - FC086D5420E7841E00D85EF7 /* conv_kernel.cpp */, - FC086D5520E7841E00D85EF7 /* acl_operator.h */, - FC086D5620E7841E00D85EF7 /* conv_add_kernel.cpp */, - FC086D5720E7841E00D85EF7 /* acl_tensor.h */, - FC086D5820E7841E00D85EF7 /* relu_kernel.cpp */, - FC086D5920E7841E00D85EF7 /* mul_kernel.cpp */, - FC086D5A20E7841E00D85EF7 /* elementwise_add_kernel.cpp */, - FC086D5B20E7841E00D85EF7 /* ACL_Android */, - FC086D5C20E7841E00D85EF7 /* softmax_kernel.cpp */, - FC086D5D20E7841E00D85EF7 /* concat_kernel.cpp */, - FC086D5E20E7841E00D85EF7 /* pool_kernel.cpp */, - FC086D5F20E7841E00D85EF7 /* reshape_kernel.cpp */, - FC086D6020E7841E00D85EF7 /* lrn_kernel.cpp */, - FC086D6120E7841E00D85EF7 /* fushion_fc_kernel.cpp */, - FC086D6220E7841E00D85EF7 /* batchnorm_kernel.cpp */, - ); - path = mali; - sourceTree = ""; - }; - FC086D5B20E7841E00D85EF7 /* ACL_Android */ = { - isa = PBXGroup; - children = ( - ); - path = ACL_Android; - sourceTree = ""; - }; - FC086D6420E7841E00D85EF7 /* central-arm-func */ = { - isa = PBXGroup; - children = ( - FC086D6520E7841E00D85EF7 /* conv_arm_func.h */, - FC086D6620E7841E00D85EF7 /* conv_add_bn_relu_func.h */, - FC086D6720E7841E00D85EF7 /* conv_add_relu_arm_func.h */, - FC086D6820E7841E00D85EF7 /* depthwise_conv_arm_func.h */, - FC086D6920E7841E00D85EF7 /* batchnorm_arm_func.h */, - ); - path = "central-arm-func"; - sourceTree = ""; - }; - FC086D6E20E7841E00D85EF7 /* fpga */ = { - isa = PBXGroup; - children = ( - FC086D6F20E7841E00D85EF7 /* conv_kernel.cpp */, - ); - path = fpga; - sourceTree = ""; - }; - FC086D7320E7841E00D85EF7 /* arm */ = { - isa = PBXGroup; - children = ( - FC086D7420E7841E00D85EF7 /* prior_box_kernel.cpp */, - FC086D7520E7841E00D85EF7 /* conv_kernel.cpp */, - FC086D7620E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp */, - FC086D7720E7841E00D85EF7 /* box_coder_kernel.cpp */, - FC086D7820E7841E00D85EF7 /* conv_add_kernel.cpp */, - FC086D7920E7841E00D85EF7 /* sigmoid_kernel.cpp */, - FC086D7A20E7841E00D85EF7 /* relu_kernel.cpp */, - FC086D7B20E7841E00D85EF7 /* mul_kernel.cpp */, - FC086D7C20E7841E00D85EF7 /* elementwise_add_kernel.cpp */, - FC086D7D20E7841E00D85EF7 /* conv_add_relu_kernel.cpp */, - FC086D7E20E7841E00D85EF7 /* transpose_kernel.cpp */, - FC086D7F20E7841E00D85EF7 /* depthwise_conv_kernel.cpp */, - FC086D8020E7841E00D85EF7 /* softmax_kernel.cpp */, - FC086D8120E7841E00D85EF7 /* concat_kernel.cpp */, - FC086D8220E7841E00D85EF7 /* fusion_fc_kernel.cpp */, - FC086D8320E7841E00D85EF7 /* pool_kernel.cpp */, - FC086D8420E7841E00D85EF7 /* reshape_kernel.cpp */, - FC086D8520E7841E00D85EF7 /* lrn_kernel.cpp */, - FC086D8620E7841E00D85EF7 /* batchnorm_kernel.cpp */, - FC086D8720E7841E00D85EF7 /* multiclass_nms_kernel.cpp */, - ); - path = arm; - sourceTree = ""; - }; - FC086D8A20E7841E00D85EF7 /* framework */ = { - isa = PBXGroup; - children = ( - FC086D8B20E7841E00D85EF7 /* framework.pb-c.c */, - FC086D8C20E7841E00D85EF7 /* tensor_util.cpp */, - FC086D8D20E7841E00D85EF7 /* operator.h */, - FC086D8E20E7841E00D85EF7 /* op_info.h */, - FC086D8F20E7841E00D85EF7 /* operator.cpp */, - FC086D9020E7841E00D85EF7 /* ddim.cpp */, - FC086D9120E7841E00D85EF7 /* tensor_util.h */, - FC086D9220E7841E00D85EF7 /* variable.h */, - FC086D9320E7841E00D85EF7 /* scope.cpp */, - FC086D9420E7841E00D85EF7 /* data_layout.h */, - FC086D9520E7841E00D85EF7 /* lod_tensor.h */, - FC086D9620E7841E00D85EF7 /* dim.h */, - FC086D9720E7841E00D85EF7 /* framework.pb-c.h */, - FC086D9820E7841E00D85EF7 /* op_kernel_type.h */, - FC086D9920E7841E00D85EF7 /* attribute.cpp */, - FC086D9A20E7841E00D85EF7 /* op_proto_maker.h */, - FC086D9B20E7841E00D85EF7 /* program */, - FC086DAB20E7841E00D85EF7 /* lod_tensor.cpp */, - FC086DAC20E7841E00D85EF7 /* framework.proto */, - FC086DAD20E7841E00D85EF7 /* ddim.h */, - FC086DAE20E7841E00D85EF7 /* attribute.h */, - FC086DAF20E7841E00D85EF7 /* scope.h */, - FC086DB020E7841E00D85EF7 /* tensor.h */, - FC086DB120E7841E00D85EF7 /* op_registry.h */, - ); - path = framework; - sourceTree = ""; - }; - FC086D9B20E7841E00D85EF7 /* program */ = { - isa = PBXGroup; - children = ( - FC086D9C20E7841E00D85EF7 /* op_desc.cpp */, - FC086D9D20E7841E00D85EF7 /* program_desc.cpp */, - FC086D9E20E7841E00D85EF7 /* var_desc.h */, - FC086D9F20E7841E00D85EF7 /* program_desc.h */, - FC086DA020E7841E00D85EF7 /* op_desc.h */, - FC086DA120E7841E00D85EF7 /* program-optimize */, - FC086DA720E7841E00D85EF7 /* block_desc.cpp */, - FC086DA820E7841E00D85EF7 /* program.h */, - FC086DA920E7841E00D85EF7 /* tensor_desc.h */, - FC086DAA20E7841E00D85EF7 /* block_desc.h */, - ); - path = program; - sourceTree = ""; - }; - FC086DA120E7841E00D85EF7 /* program-optimize */ = { - isa = PBXGroup; - children = ( - FC086DA220E7841E00D85EF7 /* fusion_op_register.h */, - FC086DA320E7841E00D85EF7 /* node.cpp */, - FC086DA420E7841E00D85EF7 /* node.h */, - FC086DA520E7841E00D85EF7 /* program_optimize.h */, - FC086DA620E7841E00D85EF7 /* program_optimize.cpp */, - ); - path = "program-optimize"; - sourceTree = ""; - }; - FC086DB220E7841E00D85EF7 /* io */ = { - isa = PBXGroup; - children = ( - FC086DB320E7841E00D85EF7 /* io.cpp */, - FC086DB420E7841E00D85EF7 /* io.h */, - ); - path = io; - sourceTree = ""; - }; - FC086DB520E7841E00D85EF7 /* common */ = { - isa = PBXGroup; - children = ( - FC086DB620E7841E00D85EF7 /* types.cpp */, - FC086DB720E7841E00D85EF7 /* threadpool.h */, - FC086DB820E7841E00D85EF7 /* types.h */, - FC086DB920E7841E00D85EF7 /* protobuf-c.h */, - FC086DBA20E7841E00D85EF7 /* openmp-fix.cpp */, - FC086DBB20E7841E00D85EF7 /* dep_core.h */, - FC086DBC20E7841E00D85EF7 /* common.h */, - FC086DBD20E7841E00D85EF7 /* log.h */, - FC086DBE20E7841E00D85EF7 /* macros.h */, - FC086DBF20E7841E00D85EF7 /* type_define.h */, - FC086DC020E7841E00D85EF7 /* enforce.h */, - FC086DC120E7841E00D85EF7 /* protobuf-c.c */, - FC086DC220E7841E00D85EF7 /* variant.h */, - ); - path = common; - sourceTree = ""; - }; - FC086DC320E7841E00D85EF7 /* jni */ = { - isa = PBXGroup; - children = ( - FC086DC420E7841E00D85EF7 /* paddle_mobile_jni.cpp */, - FC086DC520E7841E00D85EF7 /* paddle_mobile_jni.h */, - ); - path = jni; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FC086BAE20E7839B00D85EF7 /* PaddleMobile */ = { - isa = PBXNativeTarget; - buildConfigurationList = FC086BB820E7839B00D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobile" */; - buildPhases = ( - FC086BAB20E7839B00D85EF7 /* Sources */, - FC086BAC20E7839B00D85EF7 /* Frameworks */, - FC086BAD20E7839B00D85EF7 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PaddleMobile; - productName = PaddleMobile; - productReference = FC086BAF20E7839B00D85EF7 /* libPaddleMobile.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - FC086BA720E7839B00D85EF7 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = orange; - TargetAttributes = { - FC086BAE20E7839B00D85EF7 = { - CreatedOnToolsVersion = 9.3.1; - }; - }; - }; - buildConfigurationList = FC086BAA20E7839B00D85EF7 /* Build configuration list for PBXProject "PaddleMobile" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = FC086BA620E7839B00D85EF7; - productRefGroup = FC086BB020E7839B00D85EF7 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FC086BAE20E7839B00D85EF7 /* PaddleMobile */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - FC086BAB20E7839B00D85EF7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FC086DCE20E7841E00D85EF7 /* transpose_op.cpp in Sources */, - FC086DD820E7841E00D85EF7 /* math_function.cpp in Sources */, - FC086DE120E7841E00D85EF7 /* relu_op.cpp in Sources */, - FC086E0920E7841E00D85EF7 /* multiclass_nms_kernel.cpp in Sources */, - FC086E0220E7841E00D85EF7 /* softmax_kernel.cpp in Sources */, - FC086DCD20E7841E00D85EF7 /* concat_op.cpp in Sources */, - FC086DCA20E7841E00D85EF7 /* feed_op.cpp in Sources */, - FC086DD920E7841E00D85EF7 /* pool_3x3.cpp in Sources */, - FC086DF020E7841E00D85EF7 /* pool_kernel.cpp in Sources */, - FC086E1A20E7841E00D85EF7 /* paddle_mobile_jni.cpp in Sources */, - FC086DF620E7841E00D85EF7 /* prior_box_kernel.cpp in Sources */, - FC086DC620E7841E00D85EF7 /* t_malloc.cpp in Sources */, - FC086DD320E7841E00D85EF7 /* elementwise_add_op.cpp in Sources */, - FC086E0E20E7841E00D85EF7 /* scope.cpp in Sources */, - FC086DDE20E7841E00D85EF7 /* fusion_conv_add.cpp in Sources */, - FC086DFF20E7841E00D85EF7 /* conv_add_relu_kernel.cpp in Sources */, - FC086DD720E7841E00D85EF7 /* vol2col.cpp in Sources */, - FC086E0B20E7841E00D85EF7 /* tensor_util.cpp in Sources */, - FC086E1320E7841E00D85EF7 /* program_optimize.cpp in Sources */, - FC086DF820E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp in Sources */, - FC086DC820E7841E00D85EF7 /* sigmoid_op.cpp in Sources */, - FC086E0D20E7841E00D85EF7 /* ddim.cpp in Sources */, - FC086E0120E7841E00D85EF7 /* depthwise_conv_kernel.cpp in Sources */, - FC086DDB20E7841E00D85EF7 /* depthwise_conv_3x3.cpp in Sources */, - FC086BB420E7839B00D85EF7 /* PaddleMobile.m in Sources */, - FC086E1420E7841E00D85EF7 /* block_desc.cpp in Sources */, - FC086DC920E7841E00D85EF7 /* box_coder_op.cpp in Sources */, - FC086DDF20E7841E00D85EF7 /* op_param.cpp in Sources */, - FC086DD520E7841E00D85EF7 /* pool_2x2.cpp in Sources */, - FC086DFD20E7841E00D85EF7 /* mul_kernel.cpp in Sources */, - FC086E0C20E7841E00D85EF7 /* operator.cpp in Sources */, - FC086DE020E7841E00D85EF7 /* mul_op.cpp in Sources */, - FC086E1520E7841E00D85EF7 /* lod_tensor.cpp in Sources */, - FC086DE720E7841E00D85EF7 /* acl_tensor.cc in Sources */, - FC086DDD20E7841E00D85EF7 /* fetch_op.cpp in Sources */, - FC086DE220E7841E00D85EF7 /* conv_op.cpp in Sources */, - FC086DDA20E7841E00D85EF7 /* pooling.cpp in Sources */, - FC086DEF20E7841E00D85EF7 /* concat_kernel.cpp in Sources */, - FC086DE520E7841E00D85EF7 /* pool_op.cpp in Sources */, - FC086DE820E7841E00D85EF7 /* acl_operator.cc in Sources */, - FC086DF220E7841E00D85EF7 /* lrn_kernel.cpp in Sources */, - FC086E0F20E7841E00D85EF7 /* attribute.cpp in Sources */, - FC086E0520E7841E00D85EF7 /* pool_kernel.cpp in Sources */, - FC086DDC20E7841E00D85EF7 /* softmax.cpp in Sources */, - FC086E0420E7841E00D85EF7 /* fusion_fc_kernel.cpp in Sources */, - FC086E1220E7841E00D85EF7 /* node.cpp in Sources */, - FC086E0820E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */, - FC086DCC20E7841E00D85EF7 /* reshape_op.cpp in Sources */, - FC086DE920E7841E00D85EF7 /* conv_kernel.cpp in Sources */, - FC086E1920E7841E00D85EF7 /* protobuf-c.c in Sources */, - FC086DF920E7841E00D85EF7 /* box_coder_kernel.cpp in Sources */, - FC086DF120E7841E00D85EF7 /* reshape_kernel.cpp in Sources */, - FC086DF720E7841E00D85EF7 /* conv_kernel.cpp in Sources */, - FC086DCF20E7841E00D85EF7 /* prior_box_op.cpp in Sources */, - FC086E1720E7841E00D85EF7 /* types.cpp in Sources */, - FC086DF320E7841E00D85EF7 /* fushion_fc_kernel.cpp in Sources */, - FC086DEB20E7841E00D85EF7 /* relu_kernel.cpp in Sources */, - FC086E0620E7841E00D85EF7 /* reshape_kernel.cpp in Sources */, - FC086E0720E7841E00D85EF7 /* lrn_kernel.cpp in Sources */, - FC086DE620E7841E00D85EF7 /* multiclass_nms_op.cpp in Sources */, - FC086E1120E7841E00D85EF7 /* program_desc.cpp in Sources */, - FC086E0320E7841E00D85EF7 /* concat_kernel.cpp in Sources */, - FC086DEC20E7841E00D85EF7 /* mul_kernel.cpp in Sources */, - FC086DFB20E7841E00D85EF7 /* sigmoid_kernel.cpp in Sources */, - FC086E1820E7841E00D85EF7 /* openmp-fix.cpp in Sources */, - FC086DF420E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */, - FC086DEA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */, - FC086E1620E7841E00D85EF7 /* io.cpp in Sources */, - FC086DD620E7841E00D85EF7 /* im2col.cpp in Sources */, - FC086DC720E7841E00D85EF7 /* lrn_op.cpp in Sources */, - FC086DD220E7841E00D85EF7 /* depthwise_conv_op.cpp in Sources */, - FC086DFA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */, - FC086E0A20E7841E00D85EF7 /* framework.pb-c.c in Sources */, - FC086DD020E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp in Sources */, - FC086DCB20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp in Sources */, - FC086DFC20E7841E00D85EF7 /* relu_kernel.cpp in Sources */, - FC086DE320E7841E00D85EF7 /* fusion_fc_op.cpp in Sources */, - FC086E0020E7841E00D85EF7 /* transpose_kernel.cpp in Sources */, - FC086DEE20E7841E00D85EF7 /* softmax_kernel.cpp in Sources */, - FC086DE420E7841E00D85EF7 /* batchnorm_op.cpp in Sources */, - FC086DED20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */, - FC086DF520E7841E00D85EF7 /* conv_kernel.cpp in Sources */, - FC086DD120E7841E00D85EF7 /* softmax_op.cpp in Sources */, - FC086E1020E7841E00D85EF7 /* op_desc.cpp in Sources */, - FC086DD420E7841E00D85EF7 /* gemm.cpp in Sources */, - FC086DFE20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - FC086BB620E7839B00D85EF7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - FC086BB720E7839B00D85EF7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - FC086BB920E7839B00D85EF7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = Z5M2UUN5YV; - HEADER_SEARCH_PATHS = ../../src; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - FC086BBA20E7839B00D85EF7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = Z5M2UUN5YV; - HEADER_SEARCH_PATHS = ../../src; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - FC086BAA20E7839B00D85EF7 /* Build configuration list for PBXProject "PaddleMobile" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FC086BB620E7839B00D85EF7 /* Debug */, - FC086BB720E7839B00D85EF7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FC086BB820E7839B00D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobile" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FC086BB920E7839B00D85EF7 /* Debug */, - FC086BBA20E7839B00D85EF7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = FC086BA720E7839B00D85EF7 /* Project object */; -} diff --git a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 18f14d0d53b03b7326c6b613e445438ab35e4bed..0000000000000000000000000000000000000000 --- a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d68d0546c4804ac2ff47dd97c6e7921..0000000000000000000000000000000000000000 --- a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate b/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index d1170b2289cb3302e40f5101b720bc835d08e7e1..0000000000000000000000000000000000000000 Binary files a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/ios/PaddleMobile/PaddleMobile.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/PaddleMobile/PaddleMobile.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index a877b7cd221cba607fdb31df85bfa008b95d988c..0000000000000000000000000000000000000000 --- a/ios/PaddleMobile/PaddleMobile.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - PaddleMobile.xcscheme - - orderHint - 1 - - - - diff --git a/ios/PaddleMobile/PaddleMobile/MacroDefine.h b/ios/PaddleMobile/PaddleMobile/MacroDefine.h deleted file mode 100644 index a09c420e87ec698345b6d1ffa4fd64c2c6ef9b47..0000000000000000000000000000000000000000 --- a/ios/PaddleMobile/PaddleMobile/MacroDefine.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// MacroDefine.h -// PaddleMobile -// -// Created by liuRuiLong on 2018/6/30. -// Copyright © 2018年 orange. All rights reserved. -// - -#ifndef MacroDefine_h -#define MacroDefine_h - - -#endif /* MacroDefine_h */ diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d68d0546c4804ac2ff47dd97c6e7921..0000000000000000000000000000000000000000 --- a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate b/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 69b699dbf553971a96471ef864e4e848c9b17e12..0000000000000000000000000000000000000000 Binary files a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h b/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h deleted file mode 100644 index eb789ffbb2d394d9c45651b48a931d3759a7687b..0000000000000000000000000000000000000000 --- a/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -#import - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - - -@end - diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h b/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h deleted file mode 100644 index 092a369366b4f28e88eaac6032b60f18a332ba84..0000000000000000000000000000000000000000 --- a/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -#import - -@interface ViewController : UIViewController - - -@end - diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m b/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m deleted file mode 100644 index 369e90039d37f62545a20ae30b5ce47d1c27dc95..0000000000000000000000000000000000000000 --- a/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -#import "ViewController.h" - -@interface ViewController () - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; -} - - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; -} - - -@end diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/main.m b/ios/PaddleMobileDemo/PaddleMobileDemo/main.m deleted file mode 100644 index 8429e87bd1fba3a2e7070db56b458f2656b9bfa6..0000000000000000000000000000000000000000 --- a/ios/PaddleMobileDemo/PaddleMobileDemo/main.m +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. */ - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/src/framework/op_registry.h b/src/framework/op_registry.h index 8a7beae993be1a9f2a52fb48d4930754aba784e1..8e22e74b4fe250a9c2ba79321a3d8fa6484d5d2e 100644 --- a/src/framework/op_registry.h +++ b/src/framework/op_registry.h @@ -45,6 +45,7 @@ struct OperatorRegistrar : public Registrar { << "OperatorRegistrar should be invoked at least by OpClass"; return; } + printf(" regis ting %s \n", op_type.c_str()); OpInfo info; OperatorRegistrarRecursive(op_type, &info); OpInfoMap::Instance()->Insert(op_type, info); @@ -107,6 +108,7 @@ class OpRegistry { __op_registrar_##op_type##_##device_name(#op_type); \ int TouchOpRegistrar_##op_type##_##device_name() { \ __op_registrar_##op_type##_##device_name.Touch(); \ + printf(" registering !! \n"); \ return 0; \ } diff --git a/src/framework/program/program-optimize/fusion_op_register.h b/src/framework/program/program-optimize/fusion_op_register.h index 4cc83f8c80ab86ee6dcc1e3c395f872419da2be7..1cd6b1dd779f9bc9ff0f5be5513c4fa716d80b10 100644 --- a/src/framework/program/program-optimize/fusion_op_register.h +++ b/src/framework/program/program-optimize/fusion_op_register.h @@ -34,6 +34,10 @@ class FusionOpRegister { } void regist(FusionOpMatcher* matcher) { + if (matchers_.find(matcher->Type()) != matchers_.end()) { + return; + } + std::shared_ptr shared_matcher(matcher); matchers_[matcher->Type()] = shared_matcher; } diff --git a/src/io/executor.cpp b/src/io/executor.cpp index c8bd2e5e8c49a7d6594f93052ece7ef110c56527..1837273d6b95e5864606063a0b95a4175e468b00 100644 --- a/src/io/executor.cpp +++ b/src/io/executor.cpp @@ -348,16 +348,18 @@ std::shared_ptr Executor::Predict( fprintf(df, "}\n"); fclose(df); #endif - FILE *pf = fopen("profile.out", "w"); + + // FILE *pf = fopen("profile.out", "w"); std::unordered_map _tp; for (int i = 0; i < profile.size(); i++) { const auto &pInfo = profile[i]; uint64_t timeCost = pInfo.runEnd - pInfo.runBegin; _tp[ops[i]->Type()] += timeCost; - fprintf(pf, "%d\t%s\t%d\t%llu\t%llu\t%llu\n", i, ops[i]->Type().c_str(), - pInfo.tid, pInfo.runBegin, pInfo.runEnd, timeCost); + // fprintf(pf, "%d\t%s\t%d\t%llu\t%llu\t%llu\n", i, ops[i]->Type().c_str(), + // pInfo.tid, pInfo.runBegin, pInfo.runEnd, timeCost); } - fclose(pf); + // fclose(pf); + printf("====================[ profile ]======================\n"); using prof_t = std::pair; std::vector _tv(_tp.begin(), _tp.end()); diff --git a/src/io/paddle_mobile.cpp b/src/io/paddle_mobile.cpp index c1fa65032896c8ff3caf866c04cf711ce2416a8b..850b60d5e14a929fe823654d1b055cac55c38d65 100644 --- a/src/io/paddle_mobile.cpp +++ b/src/io/paddle_mobile.cpp @@ -12,10 +12,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -// -// Created by liuRuiLong on 2018/7/2. -// - #include "io/paddle_mobile.h" namespace paddle_mobile { @@ -78,6 +74,12 @@ void PaddleMobile::Clear() { loader_ = nullptr; } +template +PaddleMobile::~PaddleMobile(){ + executor_ = nullptr; + loader_ = nullptr; +} + template class PaddleMobile; template class PaddleMobile; template class PaddleMobile; diff --git a/src/io/paddle_mobile.h b/src/io/paddle_mobile.h index 901f0e00050dfdcc427f98d2296e3bb9b657414d..82436a283db449c6ad2e39f2423579d27e1c699e 100644 --- a/src/io/paddle_mobile.h +++ b/src/io/paddle_mobile.h @@ -60,6 +60,7 @@ class PaddleMobile { void Clear(); + ~PaddleMobile(); private: std::shared_ptr> loader_; std::shared_ptr> executor_; diff --git a/ios/PaddleMobile/PaddleMobile/PaddleMobile.m b/src/ios_io/PaddleMobile.h similarity index 63% rename from ios/PaddleMobile/PaddleMobile/PaddleMobile.m rename to src/ios_io/PaddleMobile.h index a350330b1d0fbf7072d35c41cab75da0b477c31d..1e635dd0a8a28285226c049f590e46dc421d091f 100644 --- a/ios/PaddleMobile/PaddleMobile/PaddleMobile.m +++ b/src/ios_io/PaddleMobile.h @@ -12,32 +12,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -#import "PaddleMobile.h" +#pragma once -@implementation PaddleMobile +#import +#import -+ (instancetype)sharedInstance{ - //TODO: imp - exit(0); -} +@interface PaddleMobile : NSObject -- (BOOL)load:(NSString *)modelPath andWeightsPath:(NSString *)weighsPath{ - //TODO: imp - exit(0); -} +- (instancetype)init; +- (BOOL)load:(NSString *)modelPath andWeightsPath:(NSString *)weighsPath; +- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim means:(NSArray *)means scale:(float)scale; +- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim; +- (void)clear; -- (NSArray *)predict:(CGImageRef)image means:(NSArray *)means scale:(float)scale{ - //TODO: imp - exit(0); -} - -- (NSArray *)predict:(CGImageRef)image{ - //TODO: imp - exit(0); -} - -- (void)clear{ - //TODO: imp - exit(0); -} @end diff --git a/src/ios_io/PaddleMobile.mm b/src/ios_io/PaddleMobile.mm new file mode 100644 index 0000000000000000000000000000000000000000..b24edf592cdaf9db6b12a6c511798a3262e44f55 --- /dev/null +++ b/src/ios_io/PaddleMobile.mm @@ -0,0 +1,170 @@ +/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ + +#import "PaddleMobile.h" +#import "op_symbols.h" +#import "io/paddle_mobile.h" + +#import +#import + +@interface PaddleMobile() +{ + paddle_mobile::PaddleMobile *pam_; + BOOL loaded_; +} +@end + +@implementation PaddleMobile + +static std::mutex shared_mutex; + +- (instancetype)init { + if (self = [super init]) { + pam_ = new paddle_mobile::PaddleMobile(); + } + return self; +} + +- (void)dealloc { + if (pam_) { + delete pam_; + } +} + ++ (instancetype)sharedInstance{ + static dispatch_once_t onceToken; + static id sharedManager = nil; + dispatch_once(&onceToken, ^{ + sharedManager = [[[self class] alloc] init]; + }); + return sharedManager; +} + +- (BOOL)load:(NSString *)modelPath andWeightsPath:(NSString *)weighsPath{ + std::string model_path_str = std::string([modelPath UTF8String]); + std::string weights_path_str = std::string([weighsPath UTF8String]); + if (loaded_ = pam_->Load(model_path_str, weights_path_str, false)) { + return YES; + } else { + return NO; + } +} + +-(void)preprocess:(const UInt8 *)input output:(float *)output imageWidth:(int)imageWidth imageHeight:(int)imageHeight imageChannels:(int)imageChannels means:(NSArray *)means scale:(float)scale dim:(std::vector)dim{ + if (means == nil) { + means = @[@0, @0, @0]; + } + + int wanted_input_width = dim[3]; + int wanted_input_height = dim[2]; + int wanted_input_channels = dim[1]; + + for (int c = 0; c < wanted_input_channels; ++c) { + float *out_channel = output + c * wanted_input_height * wanted_input_width; + for (int y = 0; y < wanted_input_height; ++y) { + float *out_row = out_channel + y * wanted_input_width; + for (int x = 0; x < wanted_input_width; ++x) { + int in_row = (y * imageHeight) / wanted_input_height; + int in_col = (x * imageWidth) / wanted_input_width; + const UInt8 *in_pixel = input + (in_row * imageWidth * imageChannels) + (in_col * imageChannels); + float *out_pos = out_row + x; + if (c == 0) { + *out_pos = (in_pixel[c] - means[c].floatValue) * scale; + }else if (c == 1){ + *out_pos = (in_pixel[c] - means[c].floatValue) * scale; + }else if (c == 2){ + *out_pos = (in_pixel[c] - means[c].floatValue) * scale; + } + } + } + } +} + +- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim means:(NSArray *)means scale:(float)scale{ + std::lock_guard lock(shared_mutex); + if (!loaded_) { + printf("PaddleMobile doesn't be loaded yet"); + return nil; + } + + if (dim.count != 4) { + printf("dim must have 4 elements"); + return nil; + } + + // dim to c++ vector, get numel + std::vector dim_vec; + int numel = 1; + for (int k = 0; k < dim.count; ++k) { + int d = dim[k].intValue; + numel *= d; + dim_vec.push_back(d); + } + + const int sourceRowBytes = CGImageGetBytesPerRow(image); + const int image_width = CGImageGetWidth(image); + const int image_height = CGImageGetHeight(image); + const int image_channels = 4; + CGDataProviderRef provider = CGImageGetDataProvider(image); + CFDataRef cfData = CGDataProviderCopyData(provider); + const UInt8 *input = CFDataGetBytePtr(cfData); + + // sample image + float *output = (float *)malloc(numel*sizeof(float)); + [self preprocess:input output:output imageWidth:image_width imageHeight:image_height imageChannels:image_channels means:means scale:scale dim:dim_vec]; + float *dataPointer = nullptr; + if (nullptr != output) { + dataPointer = output; + } else { + return nil; + } + + // input + std::vector predict_input; + for (int j = 0; j < numel; ++j) { + predict_input.push_back(dataPointer[j]); + } + + // predict + std::vector cpp_result = pam_->Predict(predict_input, dim_vec); + + // result + long count = 0; + count = cpp_result.size(); + NSMutableArray *result = [[NSMutableArray alloc] init]; + for (int i = 0; i < count; i++) { + [result addObject:[NSNumber numberWithFloat:cpp_result[i]]]; + } + + free(output); + + // 待验证 + // if ([UIDevice currentDevice].systemVersion.doubleValue < 11.0) { + CFRelease(cfData); + cfData = NULL; + // } + + return result; +} + +- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim { + [self predict:image dim:dim means:nil scale:1]; +} + +- (void)clear{ + pam_->Clear(); +} + +@end diff --git a/src/ios_io/op_symbols.h b/src/ios_io/op_symbols.h new file mode 100644 index 0000000000000000000000000000000000000000..b2825b90e67c4e20030509358f468c9c0190f727 --- /dev/null +++ b/src/ios_io/op_symbols.h @@ -0,0 +1,39 @@ +/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ + +#pragma once + +#include "operators/batchnorm_op.h" +#include "operators/box_coder_op.h" +#include "operators/concat_op.h" +#include "operators/conv_op.h" +#include "operators/depthwise_conv_op.h" +#include "operators/dropout_op.h" +#include "operators/elementwise_add_op.h" +#include "operators/feed_op.h" +#include "operators/fetch_op.h" +#include "operators/fusion_conv_add.h" +#include "operators/fusion_conv_add_bn_relu_op.h" +#include "operators/fusion_fc_op.h" +#include "operators/im2sequence_op.h" +#include "operators/lrn_op.h" +#include "operators/mul_op.h" +#include "operators/multiclass_nms_op.h" +#include "operators/pool_op.h" +#include "operators/prior_box_op.h" +#include "operators/relu_op.h" +#include "operators/reshape_op.h" +#include "operators/sigmoid_op.h" +#include "operators/softmax_op.h" +#include "operators/transpose_op.h" diff --git a/src/operators/batchnorm_op.cpp b/src/operators/batchnorm_op.cpp index 5d94d54f88e33b168739b1bbdf9af0bea9fe1b4f..d2fbd9fb6b0192b3728678ae92de7bf8e44e3620 100644 --- a/src/operators/batchnorm_op.cpp +++ b/src/operators/batchnorm_op.cpp @@ -32,7 +32,6 @@ template class BatchNormOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(batch_norm); REGISTER_OPERATOR_CPU(batch_norm, ops::BatchNormOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/batchnorm_op.h b/src/operators/batchnorm_op.h index 9ee0b2dcf6b6ec46fcb08cac88d3df275d33f7d6..2b2795b64fddfbcd1000088dbab18e54a017b459 100644 --- a/src/operators/batchnorm_op.h +++ b/src/operators/batchnorm_op.h @@ -45,4 +45,13 @@ class BatchNormOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(batch_norm); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(batch_norm); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/box_coder_op.cpp b/src/operators/box_coder_op.cpp index 31891ed74266d599898dd7426eed5cd28f320ab6..dece07d5efcfae9629842aead04d0274b9d82c93 100644 --- a/src/operators/box_coder_op.cpp +++ b/src/operators/box_coder_op.cpp @@ -53,7 +53,6 @@ template class BoxCoderOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(box_coder); REGISTER_OPERATOR_CPU(box_coder, ops::BoxCoderOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/box_coder_op.h b/src/operators/box_coder_op.h index 33ff2358bc8285a026c217ed11c2250769395567..5a75cacaf27f20e69b5e427421bd3dd8f43e8556 100644 --- a/src/operators/box_coder_op.h +++ b/src/operators/box_coder_op.h @@ -51,4 +51,12 @@ class BoxCoderOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(box_coder); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/concat_op.cpp b/src/operators/concat_op.cpp index fe0507dc812a3ddafcc0433c2659c3b49ea87f6e..9c524df351549fd0141294be805d77b3f1057362 100644 --- a/src/operators/concat_op.cpp +++ b/src/operators/concat_op.cpp @@ -63,11 +63,9 @@ template class ConcatOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(concat); REGISTER_OPERATOR_CPU(concat, ops::ConcatOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(concat); REGISTER_OPERATOR_MALI_GPU(concat, ops::ConcatOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/concat_op.h b/src/operators/concat_op.h index 93612c6b1b6d1f6aa992773ef5cccc0c93f1b6e8..7aedaab4b1fa00707661ada428c7c1dc27f124cd 100644 --- a/src/operators/concat_op.h +++ b/src/operators/concat_op.h @@ -46,4 +46,13 @@ class ConcatOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(concat); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(concat); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/conv_op.cpp b/src/operators/conv_op.cpp index 01d284a06ed33142a8d16cdc32f304c3d1a75e28..1b00ed06eee2b1676667b9c54b8601c8872b6699 100644 --- a/src/operators/conv_op.cpp +++ b/src/operators/conv_op.cpp @@ -55,15 +55,12 @@ template class ConvOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(conv2d); REGISTER_OPERATOR_CPU(conv2d, ops::ConvOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(conv2d); REGISTER_OPERATOR_MALI_GPU(conv2d, ops::ConvOp); #endif #ifdef PADDLE_MOBILE_FPGA -USE_OP_FPGA(conv2d); REGISTER_OPERATOR_FPGA(conv2d, ops::ConvOp); #endif diff --git a/src/operators/conv_op.h b/src/operators/conv_op.h index f8e8952d47fd726c712c0f7817606d959095b65b..d36fa47f4a0b37c467eb2101e2e930fe54a0e28b 100644 --- a/src/operators/conv_op.h +++ b/src/operators/conv_op.h @@ -46,4 +46,14 @@ class ConvOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(conv2d); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(conv2d); +#endif +#ifdef PADDLE_MOBILE_FPGA +USE_OP_FPGA(conv2d); +#endif + #endif diff --git a/src/operators/depthwise_conv_op.cpp b/src/operators/depthwise_conv_op.cpp index 46f2db30ba2fbff5839d6a737dda12fa6cd10b43..bee90781cd2de9d65bbbee3193cc922e743706de 100644 --- a/src/operators/depthwise_conv_op.cpp +++ b/src/operators/depthwise_conv_op.cpp @@ -56,7 +56,6 @@ template class DepthwiseConvOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(depthwise_conv2d); REGISTER_OPERATOR_CPU(depthwise_conv2d, ops::DepthwiseConvOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/depthwise_conv_op.h b/src/operators/depthwise_conv_op.h index 75bcf44cb8790365e7f33719c481354c1a57c80a..9d7cbcfa2f2924db040cdc5f38ca6bb7ad8074b5 100644 --- a/src/operators/depthwise_conv_op.h +++ b/src/operators/depthwise_conv_op.h @@ -48,4 +48,12 @@ class DepthwiseConvOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(depthwise_conv2d); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/dropout_op.cpp b/src/operators/dropout_op.cpp index 709d83a1f57b7faa0ecce1f1f8590c86c1eba1a8..f7f5ca2475171f5756ee8cf4f13754d07df8fe01 100644 --- a/src/operators/dropout_op.cpp +++ b/src/operators/dropout_op.cpp @@ -28,7 +28,6 @@ template class DropoutOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(dropout); REGISTER_OPERATOR_CPU(dropout, ops::DropoutOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/dropout_op.h b/src/operators/dropout_op.h index bc2986b791e9069e8782d778a0f16cb639ac4396..d9d5e173a8427d24097a627946dce4e14253fbe7 100644 --- a/src/operators/dropout_op.h +++ b/src/operators/dropout_op.h @@ -50,4 +50,12 @@ class DropoutOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(dropout); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/elementwise_add_op.cpp b/src/operators/elementwise_add_op.cpp index 12c59da6452992e3dd73b985db685a651df02250..369589574139c7bc68debb7c55836926a3d5f6b2 100644 --- a/src/operators/elementwise_add_op.cpp +++ b/src/operators/elementwise_add_op.cpp @@ -30,11 +30,9 @@ template class ElementwiseAddOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(elementwise_add); REGISTER_OPERATOR_CPU(elementwise_add, ops::ElementwiseAddOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(elementwise_add); REGISTER_OPERATOR_MALI_GPU(elementwise_add, ops::ElementwiseAddOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/elementwise_add_op.h b/src/operators/elementwise_add_op.h index 6cb80d06d0a4d66935c77a3c23a6264d0be53ecc..761a5d35459558d1ca5673757fae13147b7f6a6f 100644 --- a/src/operators/elementwise_add_op.h +++ b/src/operators/elementwise_add_op.h @@ -48,4 +48,13 @@ class ElementwiseAddOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(elementwise_add); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(elementwise_add); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/feed_op.cpp b/src/operators/feed_op.cpp index a40eac098c7bef442befa1758b21904269cc22d5..c4357d7993cd91a306fec5856eaa6839e9ab6a6e 100644 --- a/src/operators/feed_op.cpp +++ b/src/operators/feed_op.cpp @@ -19,3 +19,14 @@ namespace operators { template class FeedOp; } } // namespace paddle_mobile + +namespace ops = paddle_mobile::operators; +#ifdef PADDLE_MOBILE_CPU +REGISTER_OPERATOR_CPU(feed, ops::FeedOp); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +REGISTER_OPERATOR_MALI_GPU(feed, ops::FeedOp); +#endif +#ifdef PADDLE_MOBILE_FPGA + +#endif diff --git a/src/operators/feed_op.h b/src/operators/feed_op.h index 8753bfa9375f50930f9ec57e1b48b26c127edbc6..723747874da8fc8ee2c02eb1be4c89189c2af746 100644 --- a/src/operators/feed_op.h +++ b/src/operators/feed_op.h @@ -44,17 +44,14 @@ class FeedOp : public framework::OperatorBase { FeedParam param_; }; -namespace ops = paddle_mobile::operators; +} // namespace operators +} // namespace paddle_mobile + #ifdef PADDLE_MOBILE_CPU USE_OP_CPU(feed); -REGISTER_OPERATOR_CPU(feed, ops::FeedOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU USE_OP_MALI_GPU(feed); -REGISTER_OPERATOR_MALI_GPU(feed, ops::FeedOp); #endif #ifdef PADDLE_MOBILE_FPGA #endif - -} // namespace operators -} // namespace paddle_mobile diff --git a/src/operators/fetch_op.cpp b/src/operators/fetch_op.cpp index 45d6afc07b597156a746b7cd6657c3b58f1b9950..dbcfaaa9abb6d6775c9c6304dc043b1db9b4749f 100644 --- a/src/operators/fetch_op.cpp +++ b/src/operators/fetch_op.cpp @@ -19,3 +19,15 @@ namespace operators { template class FetchOp; } } // namespace paddle_mobile + +namespace ops = paddle_mobile::operators; +#ifdef PADDLE_MOBILE_CPU +REGISTER_OPERATOR_CPU(fetch, ops::FetchOp); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +REGISTER_OPERATOR_MALI_GPU(fetch, ops::FetchOp); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + + diff --git a/src/operators/fetch_op.h b/src/operators/fetch_op.h index b46093e18e1d92ed9dacbdb456bb591d0c546456..aa39e33419338d4855284921d3bdaf6d19069d7d 100644 --- a/src/operators/fetch_op.h +++ b/src/operators/fetch_op.h @@ -44,17 +44,15 @@ class FetchOp : public framework::OperatorBase { FetchParam param_; }; -namespace ops = paddle_mobile::operators; + +} // namespace operators +} // namespace paddle_mobile + #ifdef PADDLE_MOBILE_CPU USE_OP_CPU(fetch); -REGISTER_OPERATOR_CPU(fetch, ops::FetchOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU USE_OP_MALI_GPU(fetch); -REGISTER_OPERATOR_MALI_GPU(fetch, ops::FetchOp); #endif #ifdef PADDLE_MOBILE_FPGA #endif - -} // namespace operators -} // namespace paddle_mobile diff --git a/src/operators/fusion_conv_add.cpp b/src/operators/fusion_conv_add.cpp index 731bb66cb058dd8562b5fc9257bd8e9ed5f9c0af..1524791196a6ac5aea17dc93aef7390714187891 100644 --- a/src/operators/fusion_conv_add.cpp +++ b/src/operators/fusion_conv_add.cpp @@ -44,17 +44,39 @@ void FusionConvAddOp::InferShape() const { framework::DDim ddim = framework::make_ddim(output_shape); this->param_.Output()->Resize(ddim); } + +#ifdef PADDLE_MOBILE_CPU + +#ifndef CONV_ADD_REGISTER +framework::FusionOpRegistrar convadd_registrar( + new FusionConvAddMatcher()); +#define CONV_ADD_REGISTER +#endif + +#endif + +#ifdef PADDLE_MOBILE_MALI_GPU + +#ifndef CONV_ADD_REGISTER +static framework::FusionOpRegistrar convadd_registrar( + new FusionConvAddMatcher()); +#define CONV_ADD_REGISTER +#endif + +#endif + +#ifdef PADDLE_MOBILE_FPGA +#endif + template class FusionConvAddOp; } // namespace operators } // namespace paddle_mobile namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(fusion_conv_add); REGISTER_OPERATOR_CPU(fusion_conv_add, ops::FusionConvAddOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(conv_add); REGISTER_OPERATOR_MALI_GPU(conv_add, ops::FusionConvAddOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/fusion_conv_add.h b/src/operators/fusion_conv_add.h index 8b843f55266300b9fbb758b2b5ce43b908d1dc82..02c9d910b955fd9398df9406a5f730c4a7abbfee 100644 --- a/src/operators/fusion_conv_add.h +++ b/src/operators/fusion_conv_add.h @@ -69,7 +69,7 @@ class FusionConvAddOp : public framework::OperatorWithKernel< #ifdef PADDLE_MOBILE_CPU #ifndef CONV_ADD_REGISTER -static framework::FusionOpRegistrar convadd_registrar( +extern framework::FusionOpRegistrar convadd_registrar( new FusionConvAddMatcher()); #define CONV_ADD_REGISTER #endif @@ -92,4 +92,13 @@ static framework::FusionOpRegistrar convadd_registrar( } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(fusion_conv_add); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(conv_add); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/fusion_conv_add_bn_relu_op.cpp b/src/operators/fusion_conv_add_bn_relu_op.cpp index 63d0b23444ae6bf625e5e8640d3dc2ad314917d2..62839c1a5acaf89a3efef39bbe4a67c675da393b 100644 --- a/src/operators/fusion_conv_add_bn_relu_op.cpp +++ b/src/operators/fusion_conv_add_bn_relu_op.cpp @@ -50,7 +50,6 @@ template class FusionConvAddBNReluOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(fusion_conv_add_bn_relu); REGISTER_OPERATOR_CPU(fusion_conv_add_bn_relu, ops::FusionConvAddBNReluOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/fusion_conv_add_bn_relu_op.h b/src/operators/fusion_conv_add_bn_relu_op.h index 494e49280dbdc3fe778cd7bdf5f5d30a82f2d9ff..753ce395980c9186c948bc1ae4c89c3d2c417fdc 100644 --- a/src/operators/fusion_conv_add_bn_relu_op.h +++ b/src/operators/fusion_conv_add_bn_relu_op.h @@ -103,4 +103,12 @@ static framework::FusionOpRegistrar fusion_conv_add_bn_relu_registrar( } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(fusion_conv_add_bn_relu); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/fusion_conv_add_relu_op.cpp b/src/operators/fusion_conv_add_relu_op.cpp index 694e46af1f8dec3513c5a6d2ff26e3676e9204e4..5575b52ce9866901a13c630a7509c7e5ec5401cb 100644 --- a/src/operators/fusion_conv_add_relu_op.cpp +++ b/src/operators/fusion_conv_add_relu_op.cpp @@ -49,7 +49,6 @@ void FusionConvAddReluOp::InferShape() const { namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(fusion_conv_add_relu); REGISTER_OPERATOR_CPU(fusion_conv_add_relu, ops::FusionConvAddReluOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/fusion_conv_add_relu_op.h b/src/operators/fusion_conv_add_relu_op.h index bcacb3da3e2ec5371021f3552ffd2c9f53947874..cf68fac8cf6dad4eb8469a543656311e5cedc9e7 100644 --- a/src/operators/fusion_conv_add_relu_op.h +++ b/src/operators/fusion_conv_add_relu_op.h @@ -80,4 +80,12 @@ class FusionConvAddReluOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(fusion_conv_add_relu); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/fusion_fc_op.cpp b/src/operators/fusion_fc_op.cpp index 2e591b678cf7987eba5fdc74643cd7e15c35271f..1b2a46defc520519e0fb61779cf45059f0a54913 100644 --- a/src/operators/fusion_fc_op.cpp +++ b/src/operators/fusion_fc_op.cpp @@ -49,17 +49,37 @@ void FusionFcOp::InferShape() const { framework::DDim ddim = framework::make_ddim(output_dims); this->param_.Out()->Resize(ddim); } + +#ifdef PADDLE_MOBILE_CPU + +#ifndef CONV_CPU_REGISTER +#define CONV_CPU_REGISTER +framework::FusionOpRegistrar fc_registrar(new FusionFcMatcher()); +#endif + +#endif + +#ifdef PADDLE_MOBILE_MALI_GPU + +#ifndef CONV_CPU_REGISTER +#define CONV_CPU_REGISTER +framework::FusionOpRegistrar fc_registrar(new FusionFcMatcher()); +#endif + +#endif + +#ifdef PADDLE_MOBILE_FPGA +#endif + template class FusionFcOp; } // namespace operators } // namespace paddle_mobile namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(fusion_fc); REGISTER_OPERATOR_CPU(fusion_fc, ops::FusionFcOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(fc); REGISTER_OPERATOR_MALI_GPU(fc, ops::FusionFcOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/fusion_fc_op.h b/src/operators/fusion_fc_op.h index ea1f42f0adfb532982f50c2da41fc58f63b54834..c07d59e31e8124325d48a5b9ff208e1e425146a8 100644 --- a/src/operators/fusion_fc_op.h +++ b/src/operators/fusion_fc_op.h @@ -69,7 +69,7 @@ class FusionFcOp #ifndef CONV_CPU_REGISTER #define CONV_CPU_REGISTER -static framework::FusionOpRegistrar fc_registrar(new FusionFcMatcher()); +extern framework::FusionOpRegistrar fc_registrar(new FusionFcMatcher()); #endif #endif @@ -89,4 +89,13 @@ static framework::FusionOpRegistrar fc_registrar(new FusionFcMatcher()); } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(fusion_fc); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(fc); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/im2sequence_op.cpp b/src/operators/im2sequence_op.cpp index 2cb2d6398f85f461bd6214e2631dd0a8f951fb2d..273ce462d0aa423a6bf023186c6a579e975dfb11 100644 --- a/src/operators/im2sequence_op.cpp +++ b/src/operators/im2sequence_op.cpp @@ -54,7 +54,6 @@ template class Im2SequenceOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(im2sequence); REGISTER_OPERATOR_CPU(im2sequence, ops::Im2SequenceOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/im2sequence_op.h b/src/operators/im2sequence_op.h index 4c4dee617277bcee874d1fcd840c7ddd8fd68cbd..1eb180b54da38a614491e15b39cc64a8d6e0ea53 100644 --- a/src/operators/im2sequence_op.h +++ b/src/operators/im2sequence_op.h @@ -50,4 +50,13 @@ class Im2SequenceOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(im2sequence); #endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + +#endif + diff --git a/src/operators/kernel/central-arm-func/batchnorm_arm_func.h b/src/operators/kernel/central-arm-func/batchnorm_arm_func.h index 2086265ec6d9d36c5b3a334fad7a5cf66fc01f2b..276f6afe1b9be999929881ad5ca3aafc6def9c87 100644 --- a/src/operators/kernel/central-arm-func/batchnorm_arm_func.h +++ b/src/operators/kernel/central-arm-func/batchnorm_arm_func.h @@ -53,6 +53,8 @@ void BatchnormCompute(const BatchNormParam ¶m) { "C must equal to variance.numel()"); int HXW = H * W; + +#ifdef ARMV7 if (HXW > 32) { int NXC = N * C; float *inv_std_ptr = new float[NXC * 4]; @@ -227,6 +229,39 @@ void BatchnormCompute(const BatchNormParam ¶m) { delete[] inv_std_ptr; } +#endif + float *inv_std_ptr = new float[C]; + for (int i = 0; i < C; i++) { + inv_std_ptr[i] = + 1 / static_cast(pow((variance_ptr[i] + epsilon), 0.5)); + } + + Tensor new_scale; + auto new_scale_ptr = + new_scale.mutable_data(framework::make_ddim({C})); + Tensor new_bias; + auto new_bias_ptr = new_bias.mutable_data(framework::make_ddim({C})); + + /// ((x - est_mean) * (inv_var) * scale + bias equal to + /// (x * inv_var * scale) + (bias - est_mean * inv_var * scale) + for (int i = 0; i < C; i++) { + new_scale_ptr[i] = inv_std_ptr[i] * scale_ptr[i]; + new_bias_ptr[i] = + bias_ptr[i] - mean_ptr[i] * inv_std_ptr[i] * scale_ptr[i]; + { + for (int n = 0; n < N; n++) { + for (int h = 0; h < H; h++) { + int tmp_index = n * stride0 + i * stride1 + h * stride2; + for (int w = 0; w < W; w++) { + int index = tmp_index + w; + out_ptr[index] = + input_x_ptr[index] * new_scale_ptr[i] + new_bias_ptr[i]; + } + } + } + } + } + delete[] inv_std_ptr; } } // namespace operators diff --git a/src/operators/kernel/central-arm-func/pool_arm_func.h b/src/operators/kernel/central-arm-func/pool_arm_func.h index 9eb8aceb1ab5dc1ee10f43e0632f35ef12722487..892dca2ea40d40484b4c32a57f8633849cc9d038 100644 --- a/src/operators/kernel/central-arm-func/pool_arm_func.h +++ b/src/operators/kernel/central-arm-func/pool_arm_func.h @@ -76,12 +76,15 @@ void PoolCompute(const PoolParam ¶m) { } } else if (ksize[0] == 2 && ksize[0] == ksize[1]) { +#ifndef IOS if (pooling_type == "max") { math::Pool2x2Max(strides, paddings, in_x, out); } else if (pooling_type == "avg") { math::Pool2x2Avg(strides, paddings, in_x, out); } - +#else + PoolBasic(pooling_type, ksize, strides, paddings, in_x, out); +#endif } else { PoolBasic(pooling_type, ksize, strides, paddings, in_x, out); } diff --git a/src/operators/lrn_op.cpp b/src/operators/lrn_op.cpp index dc43cb022ac9d7435654cbc565c81c57ba80b350..1a5a8eccc1fc314d27517db8bc286035e573c9be 100644 --- a/src/operators/lrn_op.cpp +++ b/src/operators/lrn_op.cpp @@ -30,11 +30,9 @@ template class LrnOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(lrn); REGISTER_OPERATOR_CPU(lrn, ops::LrnOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(lrn); REGISTER_OPERATOR_MALI_GPU(lrn, ops::LrnOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/lrn_op.h b/src/operators/lrn_op.h index d67b9f6be741581918b09d19a8a8b26c28ceed1c..0d756a14f4d935fd59ac2bfc7c811c674b1587fe 100644 --- a/src/operators/lrn_op.h +++ b/src/operators/lrn_op.h @@ -46,4 +46,13 @@ class LrnOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(lrn); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(lrn); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/math/gemm.cpp b/src/operators/math/gemm.cpp index c35a14bf508835b120e1a4108cba0945208867dc..0cc0598474efd24dade0ec1c76902ceb32e6bf16 100644 --- a/src/operators/math/gemm.cpp +++ b/src/operators/math/gemm.cpp @@ -116,6 +116,8 @@ void PackMatrixB_(int k, int n, int n_tail, const float *B, int ldb, int i, j; const float *Bij; for (j = 0; j < n - n_tail; j += NR) { +#ifdef ARMV7 + for (i = 0; i < k; ++i) { Bij = &B(i, j); asm volatile( @@ -125,6 +127,16 @@ void PackMatrixB_(int k, int n, int n_tail, const float *B, int ldb, : [Bij] "r"(Bij) : "memory", "q0"); } +#else + for (i = 0; i < k; ++i) { + Bij = &B(i, j); + *buffer++ = *Bij; + *buffer++ = *(Bij + 1); + *buffer++ = *(Bij + 2); + *buffer++ = *(Bij + 3); + } +#endif + } if (n_tail != 0) { for (i = 0; i < k; ++i) { @@ -747,10 +759,14 @@ void sgemm(int m, int n, int k, float alpha, const float *A, int lda, const float *B, int ldb, float beta, float *C, int ldc) { int i, j, p, mc, nc, kc; float beta_; + +#ifdef ARMV7 if (m == 1) { VectorKernel(1, n, k, alpha, A, lda, B, ldb, beta, C, ldc); return; } +#endif + for (j = 0; j < n; j += NC) { nc = s_min(n - j, NC); for (p = 0; p < k; p += KC) { @@ -797,6 +813,7 @@ void sgemm_relu(int m, int n, int k, float alpha, const float *A, int lda, } } +#ifdef ARMV7 void VectorKernel(int m, int n, int k, float alpha, const float *A, int lda, const float *B, int ldb, float beta, float *C, int ldc) { float *bufferC = static_cast(memory::Alloc(sizeof(float) * n)); @@ -1010,6 +1027,7 @@ void VectorKernel(int m, int n, int k, float alpha, const float *A, int lda, } } } +#endif } // namespace math } // namespace operators diff --git a/src/operators/math/pool_2x2.cpp b/src/operators/math/pool_2x2.cpp index 96d277c136b4656dbb1fd682489bd7dee5c3af0e..1d5efdad0e2355f8d0ad6980ba80684dc489a9fb 100644 --- a/src/operators/math/pool_2x2.cpp +++ b/src/operators/math/pool_2x2.cpp @@ -22,6 +22,9 @@ namespace math { void Pool2x2Max(vector strides, vector paddings, const Tensor *input, Tensor *output) { #if __ARM_NEON + +#ifdef ARMV7 + const int batch_size = input->dims()[0]; const int input_height = input->dims()[2]; @@ -90,12 +93,16 @@ void Pool2x2Max(vector strides, vector paddings, const Tensor *input, output_data += output_batch_stride; } #endif + +#endif } void Pool2x2Avg(vector strides, vector paddings, const Tensor *input, Tensor *output) { #if __ARM_NEON - const int batch_size = input->dims()[0]; + +#ifdef ARMV7 +const int batch_size = input->dims()[0]; const int input_height = input->dims()[2]; @@ -164,6 +171,12 @@ void Pool2x2Avg(vector strides, vector paddings, const Tensor *input, input_data += input_batch_stride; output_data += output_batch_stride; } +#else + + //TODO(): to imp other asm + +#endif + #endif } diff --git a/src/operators/mul_op.cpp b/src/operators/mul_op.cpp index 49ae3a5e8484cb2f6628eb53cabd9321ae5705b8..60e0c087383388c83ca1711c057af822a6e2a730 100644 --- a/src/operators/mul_op.cpp +++ b/src/operators/mul_op.cpp @@ -56,11 +56,9 @@ template class MulOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(mul); REGISTER_OPERATOR_CPU(mul, ops::MulOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(mul); REGISTER_OPERATOR_MALI_GPU(mul, ops::MulOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/mul_op.h b/src/operators/mul_op.h index ad5c9a3702348455cb559c28453df82d81e1c4c8..64b811b01091418c9febdfb8d03bacd77421dcf5 100644 --- a/src/operators/mul_op.h +++ b/src/operators/mul_op.h @@ -46,4 +46,13 @@ class MulOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(mul); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(mul); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/multiclass_nms_op.cpp b/src/operators/multiclass_nms_op.cpp index 52adf6cc627d76b18b3b48928c344545327ca99e..eea625469ec030e0c7d62baea8312e11f1308ce2 100644 --- a/src/operators/multiclass_nms_op.cpp +++ b/src/operators/multiclass_nms_op.cpp @@ -40,7 +40,6 @@ template class MultiClassNMSOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(multiclass_nms); REGISTER_OPERATOR_CPU(multiclass_nms, ops::MultiClassNMSOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/multiclass_nms_op.h b/src/operators/multiclass_nms_op.h index 30cf8f67942f7888599e8f0057baff1ddd5d6cea..425f7d33e35e0864b5f5a7739dbfa18bc8eb0c30 100644 --- a/src/operators/multiclass_nms_op.h +++ b/src/operators/multiclass_nms_op.h @@ -52,4 +52,12 @@ class MultiClassNMSOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(multiclass_nms); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/pool_op.cpp b/src/operators/pool_op.cpp index 62eaf6b5f8105c4d2ab63f2f883445705b815860..41016d74deb5bcd7d3679b1c762467e2dc65de34 100644 --- a/src/operators/pool_op.cpp +++ b/src/operators/pool_op.cpp @@ -60,11 +60,9 @@ template class PoolOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(pool2d); REGISTER_OPERATOR_CPU(pool2d, ops::PoolOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(pool2d); REGISTER_OPERATOR_MALI_GPU(pool2d, ops::PoolOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/pool_op.h b/src/operators/pool_op.h index 5b436fb18bdc055add21acd37e5a1a9c7b6e5b02..4c48efdc53af7eb75f694d4b5a0a7ce5078d2e25 100644 --- a/src/operators/pool_op.h +++ b/src/operators/pool_op.h @@ -48,4 +48,13 @@ class PoolOp : public OperatorWithKernel; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(prior_box); REGISTER_OPERATOR_CPU(prior_box, ops::PriorBoxOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/prior_box_op.h b/src/operators/prior_box_op.h index 5b3e3fffd6787360b69ff3af2d19bc8e05549c04..6fcaa07c74f0e005fd5b91ae04ec7219e0394064 100644 --- a/src/operators/prior_box_op.h +++ b/src/operators/prior_box_op.h @@ -51,4 +51,12 @@ class PriorBoxOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(prior_box); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/relu_op.cpp b/src/operators/relu_op.cpp index 877dcee1a7f4a5a75d013031235d3a216c35f854..b80a56f38aec4bf1bf625d54f4115626447a654a 100644 --- a/src/operators/relu_op.cpp +++ b/src/operators/relu_op.cpp @@ -34,11 +34,9 @@ template class ReluOp; * */ namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(relu); REGISTER_OPERATOR_CPU(relu, ops::ReluOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(relu); REGISTER_OPERATOR_MALI_GPU(relu, ops::ReluOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/relu_op.h b/src/operators/relu_op.h index 8f9e55cf8a2d5bb58e85c21cd2cee3647b00fa22..204ec3d29c147d0d52b9b05d16de6807211a5e57 100644 --- a/src/operators/relu_op.h +++ b/src/operators/relu_op.h @@ -53,4 +53,13 @@ class ReluOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(relu); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(relu); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/reshape_op.cpp b/src/operators/reshape_op.cpp index c7294079b26250770006aeb1b79c15469489b988..193678613cc8dd2b8f9b8ae1654b0adacea09505 100644 --- a/src/operators/reshape_op.cpp +++ b/src/operators/reshape_op.cpp @@ -33,11 +33,9 @@ template class ReshapeOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(reshape); REGISTER_OPERATOR_CPU(reshape, ops::ReshapeOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(reshape); REGISTER_OPERATOR_MALI_GPU(reshape, ops::ReshapeOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/reshape_op.h b/src/operators/reshape_op.h index 90d31153135f629585d56eb89ae12830215900d8..da2328ec3570359ccdb45ce1511c02f322498aa1 100644 --- a/src/operators/reshape_op.h +++ b/src/operators/reshape_op.h @@ -51,4 +51,14 @@ class ReshapeOp } // namespace operators } // namespace paddle_mobile +namespace ops = paddle_mobile::operators; +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(reshape); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(reshape); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/sigmoid_op.cpp b/src/operators/sigmoid_op.cpp index 79190e6c3368b9d375770062d948580779393f04..c83738b2c88c3c51ebc0d649fe134da9e44f30ea 100644 --- a/src/operators/sigmoid_op.cpp +++ b/src/operators/sigmoid_op.cpp @@ -28,7 +28,6 @@ template class SigmoidOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(sigmoid); REGISTER_OPERATOR_CPU(sigmoid, ops::SigmoidOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/sigmoid_op.h b/src/operators/sigmoid_op.h index bd914a63783f65c7b55d783f2bbcdf19c303c00f..bffef7880b2bb6057f5d489eaac6dea7a3fb3ab5 100644 --- a/src/operators/sigmoid_op.h +++ b/src/operators/sigmoid_op.h @@ -46,4 +46,12 @@ class SigmoidOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(sigmoid); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/softmax_op.cpp b/src/operators/softmax_op.cpp index 296e3ef30f7c0260cca169bcfe2f6b445493792a..db8fe1d94363c1db578a369d9eca00dde17d30af 100644 --- a/src/operators/softmax_op.cpp +++ b/src/operators/softmax_op.cpp @@ -28,11 +28,9 @@ template class SoftmaxOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(softmax); REGISTER_OPERATOR_CPU(softmax, ops::SoftmaxOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU -USE_OP_MALI_GPU(softmax); REGISTER_OPERATOR_MALI_GPU(softmax, ops::SoftmaxOp); #endif #ifdef PADDLE_MOBILE_FPGA diff --git a/src/operators/softmax_op.h b/src/operators/softmax_op.h index 1445ca055ea0472cdaa02d7496ff895feb9174bc..f645d7edf7a3b9f7a92cf286feec58e960a5e3b7 100644 --- a/src/operators/softmax_op.h +++ b/src/operators/softmax_op.h @@ -48,4 +48,13 @@ class SoftmaxOp } // namespace operators } // namespace paddle_mobile +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(softmax); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +USE_OP_MALI_GPU(softmax); +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/src/operators/transpose_op.cpp b/src/operators/transpose_op.cpp index 989b277b9d58a8c029e041a89a1982f8994bae44..7e578b290174734ba8c210a354c9e56fde364858 100644 --- a/src/operators/transpose_op.cpp +++ b/src/operators/transpose_op.cpp @@ -53,7 +53,6 @@ template class TransposeOp; namespace ops = paddle_mobile::operators; #ifdef PADDLE_MOBILE_CPU -USE_OP_CPU(transpose); REGISTER_OPERATOR_CPU(transpose, ops::TransposeOp); #endif #ifdef PADDLE_MOBILE_MALI_GPU diff --git a/src/operators/transpose_op.h b/src/operators/transpose_op.h index 349220b58ff3e0daec8c7dc2e2dec969ced8b289..439ab2b6e1c25681cd74d028c1a892fb6db83eeb 100644 --- a/src/operators/transpose_op.h +++ b/src/operators/transpose_op.h @@ -50,4 +50,13 @@ class TransposeOp : public framework::OperatorWithKernel< } // namespace operators } // namespace paddle_mobile + +#ifdef PADDLE_MOBILE_CPU +USE_OP_CPU(transpose); +#endif +#ifdef PADDLE_MOBILE_MALI_GPU +#endif +#ifdef PADDLE_MOBILE_FPGA +#endif + #endif diff --git a/tools/build.sh b/tools/build.sh index 43ce4eb63661bb1f9aa660653771f1cdf2cfed0d..0b891e56a44e06a53f01b792304d33a49c760f68 100755 --- a/tools/build.sh +++ b/tools/build.sh @@ -89,7 +89,7 @@ build_for_android() { } build_for_ios() { - rm -rf "../build" +# rm -rf "../build" PLATFORM="ios" MODE="Release" BUILD_DIR=../build/release/"${PLATFORM}" @@ -119,6 +119,9 @@ build_for_ios() { fi cd "${BUILD_DIR}" make -j 8 + cd ./build + # 生成符号表 + ranlib *.a } build_error() {