[NextPluggableDevice]fix NextPluggableDevice allocator(use pjrt allocator) and Sync()
  @jyingl3 @penpornk  can you help to take a look? thanks @jyingl3 I saw the PR is stuck with some internal checks Failed, if there is something need to be fixed in my PR, please let me know, thanks. Thanks Zhoulong! Could you update tensorflow/tensorflow/core/common_runtime/next_pluggable_device/BUILD to include tensorflow/core/tfrt/common:async_value_tensor? Sorry not noticing it earlier. Thank you! > Thanks Zhoulong! Could you update tensorflow/tensorflow/core/common_runtime/next_pluggable_device/BUILD to include tensorflow/core/tfrt/common:async_value_tensor? Sorry not noticing it earlier. Thank you!

@jyingl3  done, please have a look. thanks Hi Zhoulong, we are actively testing some TPU implementation that uses NPD to meet deadline and worry this change may cause breakage. Hope you don't mind if we withhold merging this change temporarily.  > Hi Zhoulong, we are actively testing some TPU implementation that uses NPD to meet deadline and worry this change may cause breakage. Hope you don't mind if we withhold merging this change temporarily.

sure, we will wait. Thanks hi, @jyingl3 , is there any update on this pr? thanks Thank you Zhoulong and sorry for the delay. Could you add a new flag so that the allocator can be switched? Left a comment about that. Thank you!!
use AsyncValueAllocator if context is using PJRT runtime. And fix Sync() to call done callback to avoid hang issue in direct session.