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

Method Convert

tensorflow/lite/delegates/gpu/cl/kernels/converter.cc:386–416  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

384 }
385
386 Status Convert(const TensorObject& input_obj,
387 const TensorObject& output_obj) override {
388 auto cpu_input = absl::get_if<CpuMemory>(&input_obj);
389 auto cpu_output = absl::get_if<CpuMemory>(&output_obj);
390 if (cpu_input) {
391 auto texture_output = absl::get_if<OpenClTexture>(&output_obj);
392 if (texture_output) {
393 return queue_->EnqueueWriteImage(
394 texture_output->memobj, int3(region_[0], region_[1], region_[2]),
395 cpu_input->data);
396 }
397 auto buffer_output = absl::get_if<OpenClBuffer>(&output_obj);
398 if (buffer_output) {
399 return queue_->EnqueueWriteBuffer(
400 buffer_output->memobj, cpu_input->size_bytes, cpu_input->data);
401 }
402 } else if (cpu_output) {
403 auto texture_input = absl::get_if<OpenClTexture>(&input_obj);
404 if (texture_input) {
405 return queue_->EnqueueReadImage(
406 texture_input->memobj, int3(region_[0], region_[1], region_[2]),
407 cpu_output->data);
408 }
409 auto buffer_input = absl::get_if<OpenClBuffer>(&input_obj);
410 if (buffer_input) {
411 return queue_->EnqueueReadBuffer(
412 buffer_input->memobj, cpu_output->size_bytes, cpu_output->data);
413 }
414 }
415 return InternalError("Unexpected object");
416 }
417
418 private:
419 std::array<size_t, 3> region_;

Callers 2

CopyToExternalObjectMethod · 0.45

Calls 5

EnqueueWriteImageMethod · 0.80
EnqueueWriteBufferMethod · 0.80
EnqueueReadImageMethod · 0.80
EnqueueReadBufferMethod · 0.80
InternalErrorFunction · 0.50

Tested by

no test coverage detected