MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / LoadNnApi

Function LoadNnApi

tensorflow/lite/nnapi/nnapi_implementation.cc:106–224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104 LoadFunction(handle, symbol, /*optional*/ false));
105
106const NnApi LoadNnApi() {
107 NnApi nnapi = {};
108 nnapi.android_sdk_version = 0;
109
110#ifdef __ANDROID__
111 nnapi.android_sdk_version = GetAndroidSdkVersion();
112 if (nnapi.android_sdk_version < 27) {
113 NNAPI_LOG("nnapi error: requires android sdk version to be at least %d",
114 27);
115 nnapi.nnapi_exists = false;
116 return nnapi;
117 }
118#endif // __ANDROID__
119
120 void* libneuralnetworks = nullptr;
121 // TODO(b/123243014): change RTLD_LOCAL? Assumes there can be multiple
122 // instances of nn api RT
123 libneuralnetworks = dlopen("libneuralnetworks.so", RTLD_LAZY | RTLD_LOCAL);
124 if (libneuralnetworks == nullptr) {
125 NNAPI_LOG("nnapi error: unable to open library %s", "libneuralnetworks.so");
126 }
127
128 nnapi.nnapi_exists = libneuralnetworks != nullptr;
129
130 // API 27 (NN 1.0) methods.
131 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksMemory_createFromFd);
132 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksMemory_free);
133 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksModel_create);
134 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksModel_free);
135 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksModel_finish);
136 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksModel_addOperand);
137 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksModel_setOperandValue);
138 LOAD_FUNCTION_OPTIONAL(
139 libneuralnetworks,
140 ANeuralNetworksModel_setOperandSymmPerChannelQuantParams);
141 LOAD_FUNCTION(libneuralnetworks,
142 ANeuralNetworksModel_setOperandValueFromMemory);
143 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksModel_addOperation);
144 LOAD_FUNCTION(libneuralnetworks,
145 ANeuralNetworksModel_identifyInputsAndOutputs);
146 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksCompilation_create);
147 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksCompilation_free);
148 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksCompilation_setPreference);
149 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksCompilation_finish);
150 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksExecution_create);
151 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksExecution_free);
152 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksExecution_setInput);
153 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksExecution_setInputFromMemory);
154 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksExecution_setOutput);
155 LOAD_FUNCTION(libneuralnetworks,
156 ANeuralNetworksExecution_setOutputFromMemory);
157 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksExecution_startCompute);
158 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksEvent_wait);
159 LOAD_FUNCTION(libneuralnetworks, ANeuralNetworksEvent_free);
160
161 // ASharedMemory_create has different implementations in Android depending on
162 // the partition. Generally it can be loaded from libandroid.so but in vendor
163 // partition (e.g. if a HAL wants to use NNAPI) it is only accessible through

Callers 1

NnApiImplementationFunction · 0.85

Calls 1

GetAndroidSdkVersionFunction · 0.85

Tested by

no test coverage detected