message: Changed the way of finding how many delegate kernels are created w.r.t. using an external delegate so that the output message would become not confusing.
  See the detailed discussion in
diff: @@ -616,6 +616,10 @@ TfLiteStatus BenchmarkTfLiteModel::Init() {
  interpreter_->SetAllowFp16PrecisionForFp32(params_.Get<bool>("allow_fp16"));
  owned_delegates_.clear();
  +
  + // Contains all ids of TfLiteNodes that have been checked to see whether it's
  + // delegated or not.
  + std::unordered_set<int> checked_node_ids;
  for (const auto& delegate_provider :
  tools::GetRegisteredDelegateProviders()) {
  auto delegate = delegate_provider->CreateTfLiteDelegate(params_);
  @@ -632,10 +636,19 @@ TfLiteStatus BenchmarkTfLiteModel::Init() {
  int num_delegated_kernels = 0;
  for (int i = 0; i < interpreter_->execution_plan().size(); ++i) {
  int node_id = interpreter_->execution_plan()[i];
  + if (checked_node_ids.find(node_id) != checked_node_ids.end()) {
  + continue;
  + }
  const TfLiteNode& node =
  interpreter_->node_and_registration(node_id)->first;
  - if (delegate.get() == node.delegate) {
  +
  + // Note that the 'delegate' here could be an ExternalDelegateWrapper
  + // object that wraps an actual external delegate, in which case,
  + // 'node.delegate' will be different from 'delegate' because
  + // 'node.delegate' refers to the actual external delegate.
  + if (node.delegate != nullptr) {
  num_delegated_kernels++;
  + checked_node_ids.insert(node_id);
  }
  }
  bool fully_delegated = (num_delegated_kernels == 1 &&
  