Merge "Revert "Making NN hardware interface libs "host supported"""

This commit is contained in:
Michael Butler 2021-08-05 00:00:07 +00:00 committed by Gerrit Code Review
commit e0b2d17cbf
11 changed files with 30 additions and 133 deletions

View file

@ -44,7 +44,6 @@ cc_library_static {
cc_test {
name: "neuralnetworks_utils_hal_1_0_test",
host_supported: true,
srcs: ["test/*.cpp"],
static_libs: [
"android.hardware.neuralnetworks@1.0",
@ -63,12 +62,8 @@ cc_test {
"libhidlbase",
"libhidlmemory",
"liblog",
"libnativewindow",
"libutils",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
},
test_suites: ["general-tests"],
}

View file

@ -25,10 +25,19 @@ package {
cc_defaults {
name: "neuralnetworks_vts_functional_defaults",
defaults: [
"VtsHalTargetTestDefaults",
"neuralnetworks_float16",
],
defaults: ["VtsHalTargetTestDefaults"],
arch: {
x86: {
cflags: [ "-D_Float16=__fp16",
"-Xclang", "-fnative-half-type",
"-Xclang", "-fallow-half-arguments-and-returns" ],
},
x86_64: {
cflags: [ "-D_Float16=__fp16",
"-Xclang", "-fnative-half-type",
"-Xclang", "-fallow-half-arguments-and-returns" ],
},
},
}
cc_library_static {
@ -74,7 +83,6 @@ cc_test {
"libnativewindow",
],
static_libs: [
"VtsHalNeuralNetworksV1_0_utils",
"android.hardware.neuralnetworks@1.0",
"android.hidl.allocator@1.0",
"android.hidl.memory@1.0",
@ -82,6 +90,7 @@ cc_test {
"libhidlmemory",
"libneuralnetworks_generated_test_harness",
"libneuralnetworks_utils",
"VtsHalNeuralNetworksV1_0_utils",
],
whole_static_libs: [
"neuralnetworks_generated_V1_0_example",
@ -89,8 +98,5 @@ cc_test {
header_libs: [
"libneuralnetworks_headers",
],
test_suites: [
"general-tests",
"vts",
],
test_suites: ["general-tests", "vts"],
}

View file

@ -46,7 +46,6 @@ cc_library_static {
cc_test {
name: "neuralnetworks_utils_hal_1_1_test",
host_supported: true,
srcs: ["test/*.cpp"],
static_libs: [
"android.hardware.neuralnetworks@1.0",
@ -67,12 +66,8 @@ cc_test {
"libhidlbase",
"libhidlmemory",
"liblog",
"libnativewindow",
"libutils",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
},
test_suites: ["general-tests"],
}

View file

@ -28,19 +28,18 @@ cc_test {
defaults: ["neuralnetworks_vts_functional_defaults"],
srcs: [
"BasicTests.cpp",
"GeneratedTestHarness.cpp",
"TestAssertions.cpp",
"TestMain.cpp",
"ValidateModel.cpp",
"ValidateRequest.cpp",
"VtsHalNeuralnetworks.cpp",
"GeneratedTestHarness.cpp",
],
shared_libs: [
"libfmq",
"libnativewindow",
],
static_libs: [
"VtsHalNeuralNetworksV1_0_utils",
"android.hardware.neuralnetworks@1.0",
"android.hardware.neuralnetworks@1.1",
"android.hidl.allocator@1.0",
@ -49,6 +48,7 @@ cc_test {
"libhidlmemory",
"libneuralnetworks_generated_test_harness",
"libneuralnetworks_utils",
"VtsHalNeuralNetworksV1_0_utils",
],
whole_static_libs: [
"neuralnetworks_generated_V1_0_example",
@ -57,8 +57,5 @@ cc_test {
header_libs: [
"libneuralnetworks_headers",
],
test_suites: [
"general-tests",
"vts",
],
test_suites: ["general-tests", "vts"],
}

View file

@ -50,21 +50,10 @@ cc_library_static {
cflags: ["-DNN_DEBUGGABLE"],
},
},
target: {
host: {
cflags: [
"-D__INTRODUCED_IN(x)=",
"-D__assert(a,b,c)=",
// We want all the APIs to be available on the host.
"-D__ANDROID_API__=10000",
],
},
},
}
cc_test {
name: "neuralnetworks_utils_hal_1_2_test",
host_supported: true,
srcs: ["test/*.cpp"],
static_libs: [
"android.hardware.neuralnetworks@1.0",
@ -87,12 +76,8 @@ cc_test {
"libhidlbase",
"libhidlmemory",
"liblog",
"libnativewindow",
"libutils",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
},
test_suites: ["general-tests"],
}

View file

@ -47,21 +47,10 @@ cc_library_static {
export_static_lib_headers: [
"neuralnetworks_utils_hal_common",
],
target: {
host: {
cflags: [
"-D__INTRODUCED_IN(x)=",
"-D__assert(a,b,c)=",
// We want all the APIs to be available on the host.
"-D__ANDROID_API__=10000",
],
},
},
}
cc_test {
name: "neuralnetworks_utils_hal_1_3_test",
host_supported: true,
srcs: ["test/*.cpp"],
static_libs: [
"android.hardware.neuralnetworks@1.0",
@ -86,12 +75,8 @@ cc_test {
"libhidlbase",
"libhidlmemory",
"liblog",
"libnativewindow",
"libutils",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
},
test_suites: ["general-tests"],
}

View file

@ -9,7 +9,6 @@ package {
aidl_interface {
name: "android.hardware.neuralnetworks",
host_supported: true,
vendor_available: true,
srcs: [
"android/hardware/neuralnetworks/*.aidl",

View file

@ -41,12 +41,8 @@ cc_library_static {
"android.hardware.neuralnetworks-V1-ndk",
"libbinder_ndk",
"libhidlbase",
"libnativewindow",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
},
}
cc_test {
@ -74,21 +70,9 @@ cc_test {
"libhidlbase",
"libhidlmemory",
"liblog",
"libnativewindow",
"libutils",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
host: {
cflags: [
"-D__INTRODUCED_IN(x)=",
"-D__assert(a,b,c)=",
// We want all the APIs to be available on the host.
"-D__ANDROID_API__=10000",
],
},
},
cflags: [
/* GMOCK defines functions for printing all MOCK_DEVICE arguments and
* MockDevice contains a string pointer which triggers a warning in the

View file

@ -25,6 +25,7 @@
#include <android-base/mapped_file.h>
#include <android-base/unique_fd.h>
#include <android/binder_auto_utils.h>
#include <android/hardware_buffer.h>
#include <cutils/native_handle.h>
#include <nnapi/OperandTypes.h>
#include <nnapi/OperationTypes.h>
@ -35,6 +36,7 @@
#include <nnapi/Validation.h>
#include <nnapi/hal/CommonUtils.h>
#include <nnapi/hal/HandleError.h>
#include <vndk/hardware_buffer.h>
#include <algorithm>
#include <chrono>
@ -46,11 +48,6 @@
#include "Utils.h"
#ifdef __ANDROID__
#include <android/hardware_buffer.h>
#include <vndk/hardware_buffer.h>
#endif // __ANDROID__
#define VERIFY_NON_NEGATIVE(value) \
while (UNLIKELY(value < 0)) return NN_ERROR()
@ -122,7 +119,6 @@ struct NativeHandleDeleter {
using UniqueNativeHandle = std::unique_ptr<native_handle_t, NativeHandleDeleter>;
#ifdef __ANDROID__
GeneralResult<UniqueNativeHandle> nativeHandleFromAidlHandle(const NativeHandle& handle) {
auto nativeHandle = UniqueNativeHandle(dupFromAidl(handle));
if (nativeHandle.get() == nullptr) {
@ -135,7 +131,6 @@ GeneralResult<UniqueNativeHandle> nativeHandleFromAidlHandle(const NativeHandle&
}
return nativeHandle;
}
#endif // __ANDROID__
} // anonymous namespace
@ -376,7 +371,6 @@ GeneralResult<SharedMemory> unvalidatedConvert(const aidl_hal::Memory& memory) {
return createSharedMemoryFromFd(size, prot, fd, offset);
}
case Tag::hardwareBuffer: {
#ifdef __ANDROID__
const auto& hardwareBuffer = memory.get<Tag::hardwareBuffer>();
const UniqueNativeHandle handle =
@ -399,11 +393,6 @@ GeneralResult<SharedMemory> unvalidatedConvert(const aidl_hal::Memory& memory) {
}
return createSharedMemoryFromAHWB(ahwb, /*takeOwnership=*/true);
#else // __ANDROID__
LOG(FATAL) << "GeneralResult<SharedMemory> unvalidatedConvert(const aidl_hal::Memory& "
"memory): Not Available on Host Build";
return NN_ERROR() << "createFromHandle failed";
#endif // __ANDROID__
}
}
return NN_ERROR() << "Unrecognized Memory::Tag: " << memory.getTag();
@ -623,7 +612,6 @@ struct overloaded : Ts... {
template <class... Ts>
overloaded(Ts...)->overloaded<Ts...>;
#ifdef __ANDROID__
nn::GeneralResult<common::NativeHandle> aidlHandleFromNativeHandle(
const native_handle_t& nativeHandle) {
auto handle = ::android::dupToAidl(&nativeHandle);
@ -633,7 +621,6 @@ nn::GeneralResult<common::NativeHandle> aidlHandleFromNativeHandle(
}
return handle;
}
#endif // __ANDROID__
nn::GeneralResult<Memory> unvalidatedConvert(const nn::Memory::Ashmem& memory) {
if constexpr (std::numeric_limits<size_t>::max() > std::numeric_limits<int64_t>::max()) {
@ -681,7 +668,6 @@ nn::GeneralResult<Memory> unvalidatedConvert(const nn::Memory::Fd& memory) {
}
nn::GeneralResult<Memory> unvalidatedConvert(const nn::Memory::HardwareBuffer& memory) {
#ifdef __ANDROID__
const native_handle_t* nativeHandle = AHardwareBuffer_getNativeHandle(memory.handle.get());
if (nativeHandle == nullptr) {
return (NN_ERROR() << "unvalidatedConvert failed because AHardwareBuffer_getNativeHandle "
@ -709,12 +695,6 @@ nn::GeneralResult<Memory> unvalidatedConvert(const nn::Memory::HardwareBuffer& m
.handle = std::move(handle),
};
return Memory::make<Memory::Tag::hardwareBuffer>(std::move(hardwareBuffer));
#else // __ANDROID__
LOG(FATAL) << "nn::GeneralResult<Memory> unvalidatedConvert(const nn::Memory::HardwareBuffer& "
"memory): Not Available on Host Build";
(void)memory;
return (NN_ERROR() << "unvalidatedConvert failed").operator nn::GeneralResult<Memory>();
#endif // __ANDROID__
}
nn::GeneralResult<Memory> unvalidatedConvert(const nn::Memory::Unknown& /*memory*/) {

View file

@ -37,18 +37,13 @@ cc_library_static {
shared_libs: [
"android.hardware.neuralnetworks-V1-ndk",
"libhidlbase",
"libnativewindow",
"libbinder_ndk",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
},
}
cc_test {
name: "neuralnetworks_utils_hal_common_test",
host_supported: true,
srcs: ["test/*.cpp"],
static_libs: [
"android.hardware.neuralnetworks@1.0",
@ -66,12 +61,8 @@ cc_test {
"libhidlbase",
"libhidlmemory",
"liblog",
"libnativewindow",
"libutils",
],
target: {
android: {
shared_libs: ["libnativewindow"],
},
},
test_suites: ["general-tests"],
}

View file

@ -20,12 +20,14 @@
#include <android-base/logging.h>
#include <android-base/unique_fd.h>
#include <android/hardware_buffer.h>
#include <hidl/HidlSupport.h>
#include <nnapi/Result.h>
#include <nnapi/SharedMemory.h>
#include <nnapi/TypeUtils.h>
#include <nnapi/Types.h>
#include <nnapi/Validation.h>
#include <vndk/hardware_buffer.h>
#include <algorithm>
#include <any>
@ -34,11 +36,6 @@
#include <variant>
#include <vector>
#ifdef __ANDROID__
#include <android/hardware_buffer.h>
#include <vndk/hardware_buffer.h>
#endif // __ANDROID__
namespace android::hardware::neuralnetworks::utils {
namespace {
@ -142,7 +139,6 @@ nn::GeneralResult<hidl_memory> createHidlMemoryFrom(const nn::Memory::Fd& memory
}
nn::GeneralResult<hidl_memory> createHidlMemoryFrom(const nn::Memory::HardwareBuffer& memory) {
#ifdef __ANDROID__
const auto* ahwb = memory.handle.get();
AHardwareBuffer_Desc bufferDesc;
AHardwareBuffer_describe(ahwb, &bufferDesc);
@ -156,12 +152,6 @@ nn::GeneralResult<hidl_memory> createHidlMemoryFrom(const nn::Memory::HardwareBu
hidl_handle copiedHandle(hidlHandle);
return hidl_memory(name, std::move(copiedHandle), size);
#else // __ANDROID__
LOG(FATAL) << "nn::GeneralResult<hidl_memory> createHidlMemoryFrom(const "
"nn::Memory::HardwareBuffer& memory): Not Available on Host Build";
(void)memory;
return (NN_ERROR() << "createHidlMemoryFrom failed").operator nn::GeneralResult<hidl_memory>();
#endif // __ANDROID__
}
nn::GeneralResult<hidl_memory> createHidlMemoryFrom(const nn::Memory::Unknown& memory) {
@ -343,11 +333,9 @@ nn::GeneralResult<hidl_memory> createHidlMemoryFromSharedMemory(const nn::Shared
return std::visit([](const auto& x) { return createHidlMemoryFrom(x); }, memory->handle);
}
#ifdef __ANDROID__
static uint32_t roundUpToMultiple(uint32_t value, uint32_t multiple) {
return (value + multiple - 1) / multiple * multiple;
}
#endif // __ANDROID__
nn::GeneralResult<nn::SharedMemory> createSharedMemoryFromHidlMemory(const hidl_memory& memory) {
CHECK_LE(memory.size(), std::numeric_limits<size_t>::max());
@ -399,7 +387,6 @@ nn::GeneralResult<nn::SharedMemory> createSharedMemoryFromHidlMemory(const hidl_
return std::make_shared<const nn::Memory>(nn::Memory{.handle = std::move(handle)});
}
#ifdef __ANDROID__
const auto size = memory.size();
const auto format = AHARDWAREBUFFER_FORMAT_BLOB;
const auto usage = AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN | AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN;
@ -436,13 +423,6 @@ nn::GeneralResult<nn::SharedMemory> createSharedMemoryFromHidlMemory(const hidl_
}
return nn::createSharedMemoryFromAHWB(hardwareBuffer, /*takeOwnership=*/true);
#else // __ANDROID__
LOG(FATAL) << "nn::GeneralResult<nn::SharedMemory> createSharedMemoryFromHidlMemory(const "
"hidl_memory& memory): Not Available on Host Build";
return (NN_ERROR() << "createSharedMemoryFromHidlMemory failed")
.
operator nn::GeneralResult<nn::SharedMemory>();
#endif // __ANDROID__
}
nn::GeneralResult<hidl_handle> hidlHandleFromSharedHandle(const nn::Handle& handle) {