diff --git a/cmake/cross_compiling/android.cmake b/cmake/cross_compiling/android.cmake index a12ecdccc1ec7dd117d47720fe72879f490092a4..dedfad8c7ab0a6d5ae994a8fa3953de3a210b33f 100644 --- a/cmake/cross_compiling/android.cmake +++ b/cmake/cross_compiling/android.cmake @@ -45,7 +45,8 @@ if (NOT ANDROID_ARCH_ABI IN_LIST ANDROID_ARCH_ABI_LIST) endif() if(ANDROID_ARCH_ABI STREQUAL "armeabi-v7a") - message(STATUS "NEON is enabled on arm-v7a") + set(CMAKE_ANDROID_ARM_NEON ON) + message(STATUS "NEON is enabled on arm-v7a with softfp") endif() set(ANDROID_STL_TYPE_LITS "gnustl_static" "c++_static") diff --git a/paddle/fluid/lite/core/cpu_info.cc b/paddle/fluid/lite/core/cpu_info.cc index 0336c2d7ac46a1948d756a064a3fe50a0a987f4d..8c2c427777dfbe27d0e619ddcd62eb438ba8c490 100644 --- a/paddle/fluid/lite/core/cpu_info.cc +++ b/paddle/fluid/lite/core/cpu_info.cc @@ -20,7 +20,7 @@ namespace lite { #ifdef LITE_WITH_ARM -void DeviceInfo::get_info(DeviceInfo* dev) { +void DeviceInfo::InitInternal(DeviceInfo* dev) { set_default_cache(dev); dev->compute_core_num_ = arm_get_cpucount(); dev->max_memory_ = arm_get_meminfo(); diff --git a/paddle/fluid/lite/core/cpu_info.h b/paddle/fluid/lite/core/cpu_info.h index 23a996f80e0c9ec78e8d9a90088eeea26aa80f1f..bf603024bc2b9a9b1aeba08eb491801050dbacd1 100644 --- a/paddle/fluid/lite/core/cpu_info.h +++ b/paddle/fluid/lite/core/cpu_info.h @@ -85,14 +85,14 @@ class DeviceInfo { return *x; } - static void init_info() { + static void Init() { auto& info = Global(); - get_info(&info); + InitInternal(&info); } private: DeviceInfo() = default; - static void get_info(DeviceInfo* dev); + static void InitInternal(DeviceInfo* dev); }; size_t arm_get_meminfo(); diff --git a/paddle/fluid/lite/core/mir/runtime_context_assign_pass.cc b/paddle/fluid/lite/core/mir/runtime_context_assign_pass.cc index 1852fc2fcbee3fedb09835a8c6d4c2bd67705a53..ecca00e33c5ef09350644abf7aab37a89b4df542 100644 --- a/paddle/fluid/lite/core/mir/runtime_context_assign_pass.cc +++ b/paddle/fluid/lite/core/mir/runtime_context_assign_pass.cc @@ -64,7 +64,7 @@ class RuntimeContextAssignPass : public StmtPass { #ifdef LITE_WITH_ARM std::unique_ptr NewARMContext() { - DeviceInfo::init_info(); + DeviceInfo::Init(); std::unique_ptr ctx(new KernelContext); ctx->As(); return ctx; diff --git a/paddle/fluid/lite/kernels/arm/CMakeLists.txt b/paddle/fluid/lite/kernels/arm/CMakeLists.txt index 75dc9fe43adf169f129572a642cf19b285541996..ebdd42443e0813ace83e7888ede5a45194270adc 100644 --- a/paddle/fluid/lite/kernels/arm/CMakeLists.txt +++ b/paddle/fluid/lite/kernels/arm/CMakeLists.txt @@ -9,7 +9,7 @@ cc_library(relu_compute_arm SRCS relu_compute.cc DEPS ${lite_kernel_deps}) cc_library(mul_compute_arm SRCS mul_compute.cc DEPS ${lite_kernel_deps} eigen3) cc_library(scale_compute_arm SRCS scale_compute.cc DEPS ${lite_kernel_deps} eigen3) -lite_cc_test(test_fc_compute_arm SRCS fc_compute_test.cc DEPS fc_compute_arm eigen3) +lite_cc_test(test_fc_compute_arm SRCS fc_compute_test.cc DEPS fc_compute_arm math_arm) set(arm_kernels fc_compute_arm diff --git a/paddle/fluid/lite/kernels/arm/fc_compute_test.cc b/paddle/fluid/lite/kernels/arm/fc_compute_test.cc index 1949a3a1eb1133df12bd5d9176265237fbba94e5..2e85fccf7d66be1cbb596bf762d8d1c0f9d608bd 100644 --- a/paddle/fluid/lite/kernels/arm/fc_compute_test.cc +++ b/paddle/fluid/lite/kernels/arm/fc_compute_test.cc @@ -61,8 +61,6 @@ TEST(fc_arm, compare_test) { b_data[i] = static_cast(i); } - // TODO(TJ): enable bias soon - b_data = nullptr; lite::arm::math::fc_compute_eigen(x_data, batch_size, 3, // w_data, 3, 4, // b_data, ref_data); @@ -74,11 +72,11 @@ TEST(fc_arm, compare_test) { param.in_num_col_dims = 1; param.input = &x; param.w = &w; - param.bias = nullptr; + param.bias = &b; param.output = &out; param.in_mat_dims = x.dims(); - DeviceInfo::init_info(); + DeviceInfo::Init(); std::unique_ptr ctx(new KernelContext); ctx->As(); fc.SetParam(param); @@ -136,7 +134,7 @@ TEST(fc_arm, num_col_dims) { std::unique_ptr ctx(new KernelContext); ctx->As(); - DeviceInfo::init_info(); + DeviceInfo::Init(); fc.SetParam(param); fc.SetContext(std::move(ctx));