Browse Source

fix bug: init opencl failed back to CPU mode

tags/v1.1.0
chenzupeng 5 years ago
parent
commit
04378690d8
2 changed files with 5 additions and 2 deletions
  1. +1
    -0
      mindspore/lite/src/lite_session.cc
  2. +4
    -2
      mindspore/lite/src/runtime/kernel/opencl/subgraph_opencl_kernel.cc

+ 1
- 0
mindspore/lite/src/lite_session.cc View File

@@ -380,6 +380,7 @@ int LiteSession::Init(const Context *context) {
auto opencl_runtime = ocl_runtime_wrap_.GetInstance();
opencl_runtime->SetFp16Enable(gpu_device_info.enable_float16_);
if (opencl_runtime->Init() != RET_OK) {
this->context_->device_list_ = {{DT_CPU, {gpu_device_info.enable_float16_, MID_CPU}}};
MS_LOG(WARNING) << "Init OpenCL runtime failed, change to CPU mode.";
} else {
MS_LOG(INFO) << "Init OpenCL runtime success.";


+ 4
- 2
mindspore/lite/src/runtime/kernel/opencl/subgraph_opencl_kernel.cc View File

@@ -101,6 +101,10 @@ int SubGraphOpenCLKernel::GenToFormatOp(const std::vector<lite::Tensor *> &in_te
out_convert_ops->clear();
MS_ASSERT(in_tensors.size() == to_kernels.size());
MS_ASSERT(in_tensors.size() == from_kernels.size());
std::vector<std::vector<kernel::LiteKernel *>> loop_kernels;
if (mem_type == OpenCLMemType::BUF) {
GetKernelFromToTensor(in_tensors, nodes_, &loop_kernels, true);
}

ReplaceOutTensorAndKernelToNull(in_tensors, in_kernels, mem_type);

@@ -163,8 +167,6 @@ int SubGraphOpenCLKernel::GenToFormatOp(const std::vector<lite::Tensor *> &in_te

// replace in_tensor of inner kernel which use out tensor
if (mem_type == OpenCLMemType::BUF) {
std::vector<std::vector<kernel::LiteKernel *>> loop_kernels;
GetKernelFromToTensor(in_tensors, nodes_, &loop_kernels, true);
for (auto &iv : loop_kernels[i]) {
auto tensors = iv->in_tensors();
auto jv = std::find(tensors.begin(), tensors.end(), in_tensors.at(i));


Loading…
Cancel
Save