Remove neuralnetworks HAL from frameworks/ml/nn/hardware/interfaces

The neuralnetworks hal was placed in
frameworks/ml/nn/hardware/interfaces while VTS tests were being
developed.

This CL removes it from frameworks/ml/nn/hardware/interfaces
and another CL moves it to hardware/interfaces.

VTS tests included in a sibling CL in this topic.

Bug: 63905942
Test: mm -j40
Change-Id: Id0ea602ef5dab34a43388d0312eee668a0bd2df4
diff --git a/Android.bp b/Android.bp
index 3e6c1bf..dfe49a5 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,7 +16,6 @@
 
 subdirs = [
     "common",
-    "hardware/interfaces/neuralnetworks",
     "runtime",
     "sample_driver",
 ]
diff --git a/hardware/interfaces/neuralnetworks/1.0/Android.bp b/hardware/interfaces/neuralnetworks/1.0/Android.bp
deleted file mode 100644
index d4c605b..0000000
--- a/hardware/interfaces/neuralnetworks/1.0/Android.bp
+++ /dev/null
@@ -1,70 +0,0 @@
-// This file is autogenerated by hidl-gen. Do not edit manually.
-
-filegroup {
-    name: "[email protected]_hal",
-    srcs: [
-        "types.hal",
-        "IDevice.hal",
-        "IPreparedModel.hal",
-    ],
-}
-
-genrule {
-    name: "[email protected]_genc++",
-    tools: ["hidl-gen"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-sources -randroid.hardware:frameworks/ml/nn/hardware/interfaces -randroid.hidl:system/libhidl/transport [email protected]",
-    srcs: [
-        ":[email protected]_hal",
-    ],
-    out: [
-        "android/hardware/neuralnetworks/1.0/types.cpp",
-        "android/hardware/neuralnetworks/1.0/DeviceAll.cpp",
-        "android/hardware/neuralnetworks/1.0/PreparedModelAll.cpp",
-    ],
-}
-
-genrule {
-    name: "[email protected]_genc++_headers",
-    tools: ["hidl-gen"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-headers -randroid.hardware:frameworks/ml/nn/hardware/interfaces -randroid.hidl:system/libhidl/transport [email protected]",
-    srcs: [
-        ":[email protected]_hal",
-    ],
-    out: [
-        "android/hardware/neuralnetworks/1.0/types.h",
-        "android/hardware/neuralnetworks/1.0/hwtypes.h",
-        "android/hardware/neuralnetworks/1.0/IDevice.h",
-        "android/hardware/neuralnetworks/1.0/IHwDevice.h",
-        "android/hardware/neuralnetworks/1.0/BnHwDevice.h",
-        "android/hardware/neuralnetworks/1.0/BpHwDevice.h",
-        "android/hardware/neuralnetworks/1.0/BsDevice.h",
-        "android/hardware/neuralnetworks/1.0/IPreparedModel.h",
-        "android/hardware/neuralnetworks/1.0/IHwPreparedModel.h",
-        "android/hardware/neuralnetworks/1.0/BnHwPreparedModel.h",
-        "android/hardware/neuralnetworks/1.0/BpHwPreparedModel.h",
-        "android/hardware/neuralnetworks/1.0/BsPreparedModel.h",
-    ],
-}
-
-cc_library_shared {
-    name: "[email protected]",
-    defaults: ["hidl-module-defaults"],
-    generated_sources: ["[email protected]_genc++"],
-    generated_headers: ["[email protected]_genc++_headers"],
-    export_generated_headers: ["[email protected]_genc++_headers"],
-    vendor_available: true,
-    shared_libs: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "liblog",
-        "libutils",
-        "libcutils",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-    ],
-}
diff --git a/hardware/interfaces/neuralnetworks/1.0/IDevice.hal b/hardware/interfaces/neuralnetworks/1.0/IDevice.hal
deleted file mode 100644
index b826b23..0000000
--- a/hardware/interfaces/neuralnetworks/1.0/IDevice.hal
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * 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.
- */
-
-/* This HAL is a work in progress */
-
-package [email protected];
-
-import IPreparedModel;
-
-interface IDevice {
-    initialize() generates(Capabilities capabilities);
-
-    getSupportedSubgraph(Model model) generates(vec<bool> supported);
-
-    prepareModel(Model model) generates(IPreparedModel preparedModel);
-
-    getStatus() generates(DeviceStatus status);
-};
diff --git a/hardware/interfaces/neuralnetworks/1.0/IPreparedModel.hal b/hardware/interfaces/neuralnetworks/1.0/IPreparedModel.hal
deleted file mode 100644
index 566d6ac..0000000
--- a/hardware/interfaces/neuralnetworks/1.0/IPreparedModel.hal
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * 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.
- */
-
-/* This HAL is a work in progress */
-
-package [email protected];
-
-interface IPreparedModel {
-    // TODO: The execution is synchronous.  Change that to have a callback on completion.
-    // Multiple threads can call this execute function concurrently.
-    execute(Request request) generates(bool success);
-};
diff --git a/hardware/interfaces/neuralnetworks/1.0/types.hal b/hardware/interfaces/neuralnetworks/1.0/types.hal
deleted file mode 100644
index ccc17f1..0000000
--- a/hardware/interfaces/neuralnetworks/1.0/types.hal
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * 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.
- */
-
-/* This HAL is a work in progress */
-
-package [email protected];
-
-// The types an operand can have.
-// These values are the same as found in the NeuralNetworks.h file.
-// When modifying, be sure to update HAL_NUM_OPERAND_TYPES in HalIntefaces.h.
-enum OperandType : uint32_t {
-    FLOAT16                   = 0,
-    FLOAT32                   = 1,
-    INT8                      = 2,
-    UINT8                     = 3,
-    INT16                     = 4,
-    UINT16                    = 5,
-    INT32                     = 6,
-    UINT32                    = 7,
-    TENSOR_FLOAT16            = 8,
-    TENSOR_FLOAT32            = 9,
-    TENSOR_SYMMETRICAL_QUANT8 = 10,
-};
-
-// The type of operations.  Unlike the operation types found in
-// NeuralNetworks.h file, these specify the data type they operate on.
-// This is done to simplify the work of drivers.
-// TODO: Currently they are the same.  Add a conversion when finalizing the model.
-// When modifying, be sure to update HAL_NUM_OPERATION_TYPES in HalIntefaces.h.
-enum OperationType : uint32_t {
-    AVERAGE_POOL_FLOAT32                 = 0,
-    CONCATENATION_FLOAT32                = 1,
-    CONV_FLOAT32                         = 2,
-    DEPTHWISE_CONV_FLOAT32               = 3,
-    MAX_POOL_FLOAT32                     = 4,
-    L2_POOL_FLOAT32                      = 5,
-    DEPTH_TO_SPACE_FLOAT32               = 6,
-    SPACE_TO_DEPTH_FLOAT32               = 7,
-    LOCAL_RESPONSE_NORMALIZATION_FLOAT32 = 8,
-    SOFTMAX_FLOAT32                      = 9,
-    RESHAPE_FLOAT32                      = 10,
-    SPLIT_FLOAT32                        = 11,
-    FAKE_QUANT_FLOAT32                   = 12,
-    ADD_FLOAT32                          = 13,
-    FULLY_CONNECTED_FLOAT32              = 14,
-    CAST_FLOAT32                         = 15,
-    MUL_FLOAT32                          = 16,
-    L2_NORMALIZATION_FLOAT32             = 17,
-    LOGISTIC_FLOAT32                     = 18,
-    RELU_FLOAT32                         = 19,
-    RELU6_FLOAT32                        = 20,
-    RELU1_FLOAT32                        = 21,
-    TANH_FLOAT32                         = 22,
-    DEQUANTIZE_FLOAT32                   = 23,
-    FLOOR_FLOAT32                        = 24,
-    GATHER_FLOAT32                       = 25,
-    RESIZE_BILINEAR_FLOAT32              = 26,
-    LSH_PROJECTION_FLOAT32               = 27,
-    LSTM_FLOAT32                         = 28,
-    SVDF_FLOAT32                         = 29,
-    RNN_FLOAT32                          = 30,
-    N_GRAM_FLOAT32                       = 31,
-    LOOKUP_FLOAT32                       = 32,
-};
-
-// Two special values that can be used instead of a regular poolIndex.
-enum LocationValues : uint32_t {
-    // The location will be specified at runtime. It's either a temporary
-    // variable, an input, or an output.
-    LOCATION_AT_RUN_TIME = 0xFFFFFFFF,
-    // The operand's value is stored in the
-    // TODO: Only for old
-    LOCATION_SAME_BLOCK = 0xFFFFFFFE
-};
-
-// Status of a device.
-enum DeviceStatus : uint32_t {
-    AVAILABLE,
-    BUSY,
-    OFFLINE,
-    UNKNOWN  // Do we need this?
-};
-
-// For the reference workload
-// Used by a driver to report its performance characteristics.
-// TODO revisit the data types and scales.
-struct PerformanceInfo {
-    float execTime;    // in nanoseconds
-    float powerUsage;  // in picoJoules
-};
-
-// The capabilities of a driver.
-struct Capabilities {
-    vec<OperationType> supportedOperationTypes;
-    // TODO Do the same for baseline model IDs
-    bool cachesCompilation;
-    // TODO revisit the data types and scales.
-    float bootupTime;  // in nanoseconds
-    PerformanceInfo float16Performance;
-    PerformanceInfo float32Performance;
-    PerformanceInfo quantized8Performance;
-};
-
-// Describes the location of a data object.
-struct DataLocation {
-    // The index of the memory pool where this location is found.
-    // Two special values can also be used.  See the LOCATION_* constants above.
-    uint32_t poolIndex;
-    // Offset in bytes from the start of the pool.
-    uint32_t offset;
-    // The length of the data, in bytes.
-    uint32_t length;
-};
-
-struct Operand {
-    OperandType type;
-    vec<uint32_t> dimensions;
-
-    // The number of operations that uses this operand as input.
-    // TODO It would be nice to track the actual consumers, e.g. vec<uint32_t> consumers;
-    uint32_t numberOfConsumers;
-
-    float scale;
-    int32_t zeroPoint;
-
-    // Where to find the data for this operand.
-    DataLocation location;
-};
-
-// Describes one operation of the graph.
-struct Operation {
-    // The type of operation.
-    OperationType type;
-    // Describes the table that contains the indexes of the inputs of the
-    // operation. The offset is the index in the operandIndexes table.
-    vec<uint32_t> inputs;
-    // Describes the table that contains the indexes of the outputs of the
-    // operation. The offset is the index in the operandIndexes table.
-    vec<uint32_t> outputs;
-};
-
-struct InputOutputInfo {
-    DataLocation location;
-    // If dimensions.size() > 0, we have updated dimensions.
-    vec<uint32_t> dimensions;
-};
-
-struct Model {
-    vec<Operand> operands;
-    vec<Operation> operations;
-    vec<uint32_t> inputIndexes;
-    vec<uint32_t> outputIndexes;
-    vec<uint8_t> operandValues;
-    vec<memory> pools;
-};
-
-struct Request {
-    vec<InputOutputInfo> inputs;
-    vec<InputOutputInfo> outputs;
-    vec<memory> pools;
-};
diff --git a/hardware/interfaces/neuralnetworks/Android.bp b/hardware/interfaces/neuralnetworks/Android.bp
deleted file mode 100644
index bbb3e4b..0000000
--- a/hardware/interfaces/neuralnetworks/Android.bp
+++ /dev/null
@@ -1,4 +0,0 @@
-// This is an autogenerated file, do not edit.
-subdirs = [
-    "1.0",
-]