!8133 [MS][LITE][GPU]fix bug: init opencl failed back to CPU mode

Merge pull request !8133 from chenzupeng/master-lite
pull/8133/MERGE
mindspore-ci-bot 4 years ago committed by Gitee
commit cc11f72274

@ -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.";

@ -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