Merge remote-tracking branch 'goog/upstream-master' into master
merges upstream master
Change-Id: I46de8965c287ec2ceea8aeb139b2504f61cf8e7e
diff --git a/Android.mk b/Android.mk
index 739dc8b..6469cb4 100644
--- a/Android.mk
+++ b/Android.mk
@@ -9,6 +9,7 @@
P_OR_LATER := 0
Q_OR_LATER := 0
R_OR_LATER := 0
+ANDROID_R := 0
ifeq ($(PLATFORM_VERSION),9)
P_OR_LATER := 1
@@ -36,6 +37,20 @@
R_OR_LATER := 1
endif # PLATFORM_VERSION == S
+ifeq ($(PLATFORM_VERSION),R)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+R_OR_LATER := 1
+ANDROID_R := 1
+endif # PLATFORM_VERSION == R
+
+ifeq ($(PLATFORM_VERSION),11)
+P_OR_LATER := 1
+Q_OR_LATER := 1
+R_OR_LATER := 1
+ANDROID_R := 1
+endif # PLATFORM_VERSION == 11
+
CPP_VERSION := c++14
ifeq ($(Q_OR_LATER),1)
@@ -44,7 +59,9 @@
# Configure these paths if you move the source or Khronos headers
ARMNN_HEADER_PATH := $(LOCAL_PATH)/../armnn/include
+ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/../armnn/third-party
ARMNN_UTILS_HEADER_PATH := $(LOCAL_PATH)/../armnn/src/armnnUtils
+ARMNN_THIRD_PARTY_PATH := $(LOCAL_PATH)/../armnn/third-party
OPENCL_HEADER_PATH := $(LOCAL_PATH)/clframework/include
NN_HEADER_PATH := $(LOCAL_PATH)/../../frameworks/ml/nn/runtime/include
@@ -53,6 +70,7 @@
ARMNN_COMPUTE_CL_ENABLED := 1
ARMNN_COMPUTE_NEON_ENABLED := 1
ARMNN_REF_ENABLED := 1
+ARMNN_ETHOSN_ENABLED := 1
ifeq ($(ARMNN_COMPUTE_CL_ENABLE),0)
ARMNN_COMPUTE_CL_ENABLED := 0
@@ -66,6 +84,19 @@
ARMNN_REF_ENABLED := 0
endif
+ifeq ($(ARMNN_ETHOSN_ENABLE),0)
+ARMNN_ETHOSN_ENABLED := 0
+endif
+
+# Variable to control inclusion of libOpenCL shared library
+ARMNN_INCLUDE_LIBOPENCL := $(ARMNN_COMPUTE_CL_ENABLED)
+ifeq ($(ARMNN_LIBOPENCL),0)
+ARMNN_INCLUDE_LIBOPENCL := 0
+endif
+
+# Variable to control retire rate of priority queue
+RETIRE_RATE := 3
+
#######################
# libarmnn-driver@1.0 #
#######################
@@ -85,7 +116,9 @@
LOCAL_C_INCLUDES := \
$(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(ARMNN_UTILS_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(OPENCL_HEADER_PATH) \
$(NN_HEADER_PATH)
@@ -95,23 +128,17 @@
-Werror \
-Wno-format-security
-ifeq ($(P_OR_LATER),1)
-# Required to build with the changes made to the Android ML framework starting from Android P,
-# regardless of the HAL version used for the build.
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
LOCAL_CFLAGS+= \
- -DARMNN_ANDROID_P
-endif # PLATFORM_VERSION == 9
+ -DARMNN_ANDROID_R
+endif
ifeq ($(ARMNN_DRIVER_DEBUG),1)
LOCAL_CFLAGS+= \
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
- -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
-
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
LOCAL_CFLAGS += \
-DARMCOMPUTECL_ENABLED
@@ -127,6 +154,11 @@
-DARMNNREF_ENABLED
endif # ARMNN_REF_ENABLED == 1
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+ -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
LOCAL_SRC_FILES := \
1.0/ArmnnDriverImpl.cpp \
1.0/HalPolicy.cpp \
@@ -141,11 +173,6 @@
LOCAL_STATIC_LIBRARIES := \
libneuralnetworks_common \
- libboost_log \
- libboost_program_options \
- libboost_system \
- libboost_thread \
- libboost_filesystem \
arm_compute_library
LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
@@ -175,13 +202,15 @@
libfmq \
libcutils \
android.hardware.neuralnetworks@1.2
-endif # PLATFORM_VERSION == Q
+endif # Q or later
ifeq ($(R_OR_LATER),1)
-LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
-endif # PLATFORM_VERSION == R
+LOCAL_SHARED_LIBRARIES+= \
+ libsync \
+ android.hardware.neuralnetworks@1.3
+endif # R or later
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
LOCAL_SHARED_LIBRARIES += libGLES_mali
else
@@ -214,7 +243,9 @@
LOCAL_C_INCLUDES := \
$(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(ARMNN_UTILS_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(OPENCL_HEADER_PATH) \
$(NN_HEADER_PATH)
@@ -223,7 +254,6 @@
-fexceptions \
-Werror \
-Wno-format-security \
- -DARMNN_ANDROID_P \
-DARMNN_ANDROID_NN_V1_1
ifeq ($(ARMNN_DRIVER_DEBUG),1)
@@ -231,10 +261,11 @@
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
- -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+ -DARMNN_ANDROID_R
+endif
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
LOCAL_CFLAGS += \
@@ -251,6 +282,11 @@
-DARMNNREF_ENABLED
endif # ARMNN_REF_ENABLED == 1
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+ -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
LOCAL_SRC_FILES := \
1.0/ArmnnDriverImpl.cpp \
1.0/HalPolicy.cpp \
@@ -267,11 +303,6 @@
LOCAL_STATIC_LIBRARIES := \
libneuralnetworks_common \
- libboost_log \
- libboost_program_options \
- libboost_system \
- libboost_thread \
- libboost_filesystem \
arm_compute_library
LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
@@ -298,10 +329,12 @@
endif # PLATFORM_VERSION == Q
ifeq ($(R_OR_LATER),1)
-LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
-endif # PLATFORM_VERSION == R
+LOCAL_SHARED_LIBRARIES+= \
+ libsync \
+ android.hardware.neuralnetworks@1.3
+endif # R or later
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
LOCAL_SHARED_LIBRARIES += libGLES_mali
else
@@ -330,7 +363,9 @@
LOCAL_C_INCLUDES := \
$(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(ARMNN_UTILS_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(OPENCL_HEADER_PATH) \
$(NN_HEADER_PATH)
@@ -339,7 +374,6 @@
-fexceptions \
-Werror \
-Wno-format-security \
- -DARMNN_ANDROID_Q \
-DARMNN_ANDROID_NN_V1_2
ifeq ($(ARMNN_DRIVER_DEBUG),1)
@@ -347,10 +381,11 @@
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
- -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+ -DARMNN_ANDROID_R
+endif
ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
LOCAL_CFLAGS += \
@@ -367,6 +402,11 @@
-DARMNNREF_ENABLED
endif # ARMNN_REF_ENABLED == 1
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+ -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
LOCAL_SRC_FILES := \
1.0/ArmnnDriverImpl.cpp \
1.0/HalPolicy.cpp \
@@ -386,11 +426,6 @@
LOCAL_STATIC_LIBRARIES := \
libneuralnetworks_common \
- libboost_log \
- libboost_program_options \
- libboost_system \
- libboost_thread \
- libboost_filesystem \
arm_compute_library
LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
@@ -413,10 +448,12 @@
android.hardware.neuralnetworks@1.2
ifeq ($(R_OR_LATER),1)
-LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
-endif # PLATFORM_VERSION == R
+LOCAL_SHARED_LIBRARIES+= \
+ libsync \
+ android.hardware.neuralnetworks@1.3
+endif # R or later
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
LOCAL_SHARED_LIBRARIES += libGLES_mali
else
@@ -428,6 +465,120 @@
endif # PLATFORM_VERSION == Q
+ifeq ($(R_OR_LATER),1)
+# The following target is available starting from Android R
+
+#######################
+# libarmnn-driver@1.3 #
+#######################
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libarmnn-driver@1.3
+LOCAL_MODULE_TAGS := optional
+LOCAL_ARM_MODE := arm
+LOCAL_PROPRIETARY_MODULE := true
+# Mark source files as dependent on Android.mk
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
+LOCAL_C_INCLUDES := \
+ $(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
+ $(ARMNN_UTILS_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
+ $(OPENCL_HEADER_PATH) \
+ $(NN_HEADER_PATH)
+
+LOCAL_CFLAGS := \
+ -std=$(CPP_VERSION) \
+ -fexceptions \
+ -Werror \
+ -Wno-format-security \
+ -DARMNN_ANDROID_NN_V1_3 \
+ -DARMNN_ANDROID_R
+
+ifeq ($(ARMNN_DRIVER_DEBUG),1)
+LOCAL_CFLAGS+= \
+ -UNDEBUG
+endif # ARMNN_DRIVER_DEBUG == 1
+
+ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+LOCAL_CFLAGS += \
+ -DARMCOMPUTECL_ENABLED
+endif # ARMNN_COMPUTE_CL_ENABLED == 1
+
+ifeq ($(ARMNN_COMPUTE_NEON_ENABLED),1)
+LOCAL_CFLAGS += \
+ -DARMCOMPUTENEON_ENABLED
+endif # ARMNN_COMPUTE_NEON_ENABLED == 1
+
+ifeq ($(ARMNN_REF_ENABLED),1)
+LOCAL_CFLAGS += \
+ -DARMNNREF_ENABLED
+endif # ARMNN_REF_ENABLED == 1
+
+ifeq ($(ARMNN_ETHOSN_ENABLED),1)
+LOCAL_CFLAGS += \
+ -DARMNNETHOSN_ENABLED
+endif # ARMNN_ETHOSN_ENABLED == 1
+
+LOCAL_CFLAGS += \
+ -DRETIRE_RATE=$(RETIRE_RATE)
+
+LOCAL_SRC_FILES := \
+ 1.0/ArmnnDriverImpl.cpp \
+ 1.0/HalPolicy.cpp \
+ 1.1/ArmnnDriverImpl.cpp \
+ 1.1/HalPolicy.cpp \
+ 1.2/ArmnnDriverImpl.cpp \
+ 1.2/HalPolicy.cpp \
+ 1.3/ArmnnDriverImpl.cpp \
+ 1.3/HalPolicy.cpp \
+ ArmnnDevice.cpp \
+ ArmnnDriverImpl.cpp \
+ ArmnnPreparedModel.cpp \
+ ArmnnPreparedModel_1_2.cpp \
+ ArmnnPreparedModel_1_3.cpp \
+ ConversionUtils.cpp \
+ DriverOptions.cpp \
+ ModelToINetworkConverter.cpp \
+ RequestThread.cpp \
+ RequestThread_1_3.cpp \
+ Utils.cpp
+
+LOCAL_STATIC_LIBRARIES := \
+ libneuralnetworks_common \
+ arm_compute_library
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libarmnn
+
+LOCAL_SHARED_LIBRARIES := \
+ libbase \
+ libhidlbase \
+ libhidltransport \
+ libhidlmemory \
+ liblog \
+ libutils \
+ libnativewindow \
+ libui \
+ libfmq \
+ libcutils \
+ android.hidl.allocator@1.0 \
+ android.hidl.memory@1.0 \
+ libsync \
+ android.hardware.neuralnetworks@1.0 \
+ android.hardware.neuralnetworks@1.1 \
+ android.hardware.neuralnetworks@1.2 \
+ android.hardware.neuralnetworks@1.3
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libOpenCL
+endif
+
+include $(BUILD_STATIC_LIBRARY)
+
+endif # PLATFORM_VERSION == R
+
#####################################################
# android.hardware.neuralnetworks@1.0-service-armnn #
#####################################################
@@ -449,6 +600,7 @@
LOCAL_C_INCLUDES := \
$(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(NN_HEADER_PATH)
LOCAL_CFLAGS := \
@@ -460,21 +612,17 @@
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
- -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+ -DARMNN_ANDROID_R
+endif
LOCAL_SRC_FILES := \
service.cpp
LOCAL_STATIC_LIBRARIES := \
libneuralnetworks_common \
- libboost_log \
- libboost_program_options \
- libboost_system \
- libboost_thread \
- libboost_filesystem \
arm_compute_library
LOCAL_WHOLE_STATIC_LIBRARIES := \
@@ -500,6 +648,7 @@
LOCAL_SHARED_LIBRARIES+= \
android.hardware.neuralnetworks@1.1
endif # PLATFORM_VERSION == 9
+
ifeq ($(Q_OR_LATER),1)
LOCAL_SHARED_LIBRARIES+= \
libnativewindow \
@@ -512,7 +661,13 @@
LOCAL_SHARED_LIBRARIES+= android.hardware.neuralnetworks@1.3
endif # PLATFORM_VERSION == R
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(R_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libsync \
+ android.hardware.neuralnetworks@1.3
+endif # R or later
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
LOCAL_SHARED_LIBRARIES += libGLES_mali
else
@@ -546,6 +701,7 @@
LOCAL_C_INCLUDES := \
$(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(NN_HEADER_PATH)
LOCAL_CFLAGS := \
@@ -558,21 +714,17 @@
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
-ifeq ($(Q_OR_LATER),1)
-LOCAL_CFLAGS += \
- -DBOOST_NO_AUTO_PTR
-endif # PLATFORM_VERSION == Q or later
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+ -DARMNN_ANDROID_R
+endif
LOCAL_SRC_FILES := \
service.cpp
LOCAL_STATIC_LIBRARIES := \
libneuralnetworks_common \
- libboost_log \
- libboost_program_options \
- libboost_system \
- libboost_thread \
- libboost_filesystem \
arm_compute_library
LOCAL_WHOLE_STATIC_LIBRARIES := \
@@ -602,7 +754,13 @@
android.hardware.neuralnetworks@1.2
endif # PLATFORM_VERSION == Q
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(R_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libsync \
+ android.hardware.neuralnetworks@1.3
+endif # PLATFORM_VERSION == R
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
LOCAL_SHARED_LIBRARIES += libGLES_mali
else
@@ -637,13 +795,13 @@
LOCAL_C_INCLUDES := \
$(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
$(NN_HEADER_PATH)
LOCAL_CFLAGS := \
-std=$(CPP_VERSION) \
-fexceptions \
-DARMNN_ANDROID_NN_V1_2 \
- -DBOOST_NO_AUTO_PTR \
-Wno-unused-variable \
-Wno-unneeded-internal-declaration \
-Wno-unused-function \
@@ -654,16 +812,17 @@
-UNDEBUG
endif # ARMNN_DRIVER_DEBUG == 1
+# Required to build with the changes made to the Android ML framework specific to Android R
+ifeq ($(ANDROID_R),1)
+LOCAL_CFLAGS+= \
+ -DARMNN_ANDROID_R
+endif
+
LOCAL_SRC_FILES := \
service.cpp
LOCAL_STATIC_LIBRARIES := \
libneuralnetworks_common \
- libboost_log \
- libboost_program_options \
- libboost_system \
- libboost_thread \
- libboost_filesystem \
arm_compute_library
LOCAL_WHOLE_STATIC_LIBRARIES := \
@@ -690,7 +849,13 @@
android.hardware.neuralnetworks@1.2 \
android.hardware.neuralnetworks@1.3
-ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1)
+ifeq ($(R_OR_LATER),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libsync \
+ android.hardware.neuralnetworks@1.3
+endif # R or later
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
ifeq (,$(realpath $(TOPDIR)vendor/arm/mali/valhall/Android.bp))
LOCAL_SHARED_LIBRARIES += libGLES_mali
else
@@ -704,6 +869,80 @@
endif # PLATFORM_VERSION == Q
+ifeq ($(R_OR_LATER),1)
+# The following target is available starting from Android R
+
+#####################################################
+# android.hardware.neuralnetworks@1.3-service-armnn #
+#####################################################
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.hardware.neuralnetworks@1.3-service-armnn
+LOCAL_INIT_RC := android.hardware.neuralnetworks@1.3-service-armnn.rc
+LOCAL_MODULE_TAGS := optional
+LOCAL_ARM_MODE := arm
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_PROPRIETARY_MODULE := true
+# Mark source files as dependent on Android.mk
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
+LOCAL_C_INCLUDES := \
+ $(ARMNN_HEADER_PATH) \
+ $(ARMNN_THIRD_PARTY_PATH) \
+ $(NN_HEADER_PATH)
+
+LOCAL_CFLAGS := \
+ -std=$(CPP_VERSION) \
+ -fexceptions \
+ -DARMNN_ANDROID_NN_V1_3 \
+ -DARMNN_ANDROID_R
+
+ifeq ($(ARMNN_DRIVER_DEBUG),1)
+LOCAL_CFLAGS += \
+ -UNDEBUG
+endif # ARMNN_DRIVER_DEBUG == 1
+
+LOCAL_SRC_FILES := \
+ service.cpp
+
+LOCAL_STATIC_LIBRARIES := \
+ libneuralnetworks_common \
+ arm_compute_library
+
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+ libarmnn-driver@1.3
+
+LOCAL_SHARED_LIBRARIES := \
+ libbase \
+ libhidlbase \
+ libhidltransport \
+ libhidlmemory \
+ libdl \
+ libhardware \
+ liblog \
+ libtextclassifier_hash \
+ libutils \
+ libnativewindow \
+ libui \
+ libfmq \
+ libcutils \
+ libsync \
+ android.hidl.allocator@1.0 \
+ android.hidl.memory@1.0 \
+ android.hardware.neuralnetworks@1.0 \
+ android.hardware.neuralnetworks@1.1 \
+ android.hardware.neuralnetworks@1.2 \
+ android.hardware.neuralnetworks@1.3
+
+ifeq ($(ARMNN_INCLUDE_LIBOPENCL),1)
+LOCAL_SHARED_LIBRARIES+= \
+ libOpenCL
+endif
+
+include $(BUILD_EXECUTABLE)
+
+endif # PLATFORM_VERSION == R
+
##########################
# armnn module and tests #
##########################