[PluggableDevice] Always link kernels_experimental c api
Hi @gbaned can you help to check the PR process? It's approved but the states is still "Assigned Reviewer". Hi @Zantares Sorry for the delay, can you please take a look on below internal errors? Thank you!

Traceback (most recent call last):
  File "/tensorflow/lite/python/analyzer_test.py", line 224, in testTxtWithEinsum
    self.assertIn('Op#0 RESHAPE(T#1, T#4[512, 512]) -> [T#5]', txt)
AssertionError: 'Op#0 RESHAPE(T#1, T#4[512, 512]) -> [T#5]' not found in "=== TFLite ModelAnalyzer ===\n\nYour TFLite model has '1' subgraph(s). In the subgraph description below,\nT# represents the Tensor numbers. For example, in Subgraph#0, the RESHAPE op takes\ntensor #1 and tensor #3 as input and produces tensor #4 as output.\n\nSubgraph#0 main(T#0, T#1) -> [T#6]\n  Op#0 RESHAPE(T#1, T#3[512, 512]) -> [T#4]\n  Op#1 BATCH_MATMUL(T#0, T#4) -> [T#5]\n  Op#2 RESHAPE(T#5, T#2[1, 100, 8, 64]) -> [T#6]\n\nTensors of Subgraph#0\n  T#0(lhs) shape:[1, 100, 512], type:FLOAT32\n  T#1(rhs) shape:[512, 8, 64], type:FLOAT32\n  T#2(einsum/Einsum) shape:[4], type:INT32 RO 16 bytes, buffer: 3, data:[1, 100, 8, 64]\n  T#3(einsum/Einsum1) shape:[2], type:INT32 RO 8 bytes, buffer: 4, data:[512, 512]\n  T#4(einsum/Einsum2) shape:[512, 512], type:FLOAT32\n  T#5(einsum/Einsum3) shape:[1, 100, 512], type:FLOAT32\n  T#6(Identity) shape:[1, 100, 8, 64], type:FLOAT32\n\n---------------------------------------------------------------\n              Model size:       1204 bytes\n    Non-data buffer size:       1080 bytes (89.70 %)\n  Total data buffer size:        124 bytes (10.30 %)\n    (Zero value buffers):          0 bytes (00.00 %)\n\n* Buffers of TFLite model are mostly used for constant tensors.\n  And zero value buffers are buffers filled with zeros.\n  Non-data buffers area are used to store operators, subgraphs and etc.\n  You can find more details from https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/schema/schema.fbs\n\n" > Hi @Zantares Sorry for the delay, can you please take a look on below internal errors? Thank you!
> 
> Traceback (most recent call last): File "/tensorflow/lite/python/analyzer_test.py", line 224, in testTxtWithEinsum self.assertIn('Op#0 RESHAPE(T#1, T#4[512, 512]) -> [T#5]', txt) AssertionError: 'Op#0 RESHAPE(T#1, T#4[512, 512]) -> [T#5]' not found in "=== TFLite ModelAnalyzer ===\n\nYour TFLite model has '1' subgraph(s). In the subgraph description below,\nT# represents the Tensor numbers. For example, in Subgraph#0, the RESHAPE op takes\ntensor #1 and tensor #3 as input and produces tensor #4 as output.\n\nSubgraph#0 main(T#0, T#1) -> [T#6]\n Op#0 RESHAPE(T#1, T#3[512, 512]) -> [T#4]\n Op#1 BATCH_MATMUL(T#0, T#4) -> [T#5]\n Op#2 RESHAPE(T#5, T#2[1, 100, 8, 64]) -> [T#6]\n\nTensors of Subgraph#0\n T#0(lhs) shape:[1, 100, 512], type:FLOAT32\n T#1(rhs) shape:[512, 8, 64], type:FLOAT32\n T#2(einsum/Einsum) shape:[4], type:INT32 RO 16 bytes, buffer: 3, data:[1, 100, 8, 64]\n T#3(einsum/Einsum1) shape:[2], type:INT32 RO 8 bytes, buffer: 4, data:[512, 512]\n T#4(einsum/Einsum2) shape:[512, 512], type:FLOAT32\n T#5(einsum/Einsum3) shape:[1, 100, 512], type:FLOAT32\n T#6(Identity) shape:[1, 100, 8, 64], type:FLOAT32\n\n---------------------------------------------------------------\n Model size: 1204 bytes\n Non-data buffer size: 1080 bytes (89.70 %)\n Total data buffer size: 124 bytes (10.30 %)\n (Zero value buffers): 0 bytes (00.00 %)\n\n* Buffers of TFLite model are mostly used for constant tensors.\n And zero value buffers are buffers filled with zeros.\n Non-data buffers area are used to store operators, subgraphs and etc.\n You can find more details from [https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/schema/schema.fbs\n\n](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/schema/schema.fbs%5Cn%5Cn)"

Seems this internal error is not related to this PR, I have merged the newest master to see if it can be fixed, thanks! Hi @penpornk may you reapprove this PR?  Hi @penpornk Can you please review this PR ? Thank you!
[PluggableDevice](https://github.com/tensorflow/community/blob/master/rfcs/20200624-pluggable-device-for-tensorflow.md) architecture relies on C APIs to communicate with the TensorFlow binary. To support pluggable device for third party like tensorflow serving, we need add always_link=1 for kernels_experimental.

Signed-off-by: Lu Teng [teng.lu@intel.com](mailto:teng.lu@intel.com)