!3658 set output format to nhwc4

Merge pull request !3658 from wandongdong/master_ori
pull/3658/MERGE
mindspore-ci-bot 5 years ago committed by Gitee
commit 08d8c1031d

@ -82,10 +82,13 @@ int ArithmeticOpenCLKernel::Init() {
ocl_runtime->LoadSource(program_name, source); ocl_runtime->LoadSource(program_name, source);
ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options); ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options);
#endif #endif
outputs_[0]->SetFormat(schema::Format_NHWC4);
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return 0; return 0;
} }
int ArithmeticOpenCLKernel::Run() { int ArithmeticOpenCLKernel::Run() {
MS_LOG(DEBUG) << this->Name() << " Running!";
uint32_t element_num = outputs_[0]->ElementsC4Num(); uint32_t element_num = outputs_[0]->ElementsC4Num();
auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance(); auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance();
std::vector<size_t> global = {element_num}; std::vector<size_t> global = {element_num};

@ -35,7 +35,7 @@ int ConcatOpenCLKernel::Init() {
} }
auto param = reinterpret_cast<ConcatParameter *>(this->opParameter); auto param = reinterpret_cast<ConcatParameter *>(this->opParameter);
MS_LOG(INFO) << "concat at axis=: " << param->axis_; MS_LOG(DEBUG) << "concat at axis=: " << param->axis_;
if (param->axis_ != 0 && param->axis_ != 3) { if (param->axis_ != 0 && param->axis_ != 3) {
MS_LOG(ERROR) << "only support axis=0 or axis=3"; MS_LOG(ERROR) << "only support axis=0 or axis=3";
} }
@ -55,6 +55,8 @@ int ConcatOpenCLKernel::Init() {
ocl_runtime->LoadSource(program_name, source); ocl_runtime->LoadSource(program_name, source);
ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options); ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options);
#endif #endif
outputs_[0]->SetFormat(schema::Format_NHWC4);
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return 0; return 0;
} }
@ -88,6 +90,7 @@ int ConcatOpenCLKernel::Run_axis0() {
} }
int ConcatOpenCLKernel::Run() { int ConcatOpenCLKernel::Run() {
MS_LOG(DEBUG) << this->Name() << " Running!";
auto param = reinterpret_cast<ConcatParameter *>(this->opParameter); auto param = reinterpret_cast<ConcatParameter *>(this->opParameter);
if (param->axis_ == 0) { if (param->axis_ == 0) {
return Run_axis0(); return Run_axis0();

@ -69,6 +69,8 @@ int Conv2dTransposeOpenCLKernel::Init() {
PadWeight(); PadWeight();
allocator->UnmapBuffer(padWeight_); allocator->UnmapBuffer(padWeight_);
allocator->UnmapBuffer(bias_); allocator->UnmapBuffer(bias_);
outputs_[0]->SetFormat(schema::Format_NHWC4);
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return 0; return 0;
} }
@ -120,6 +122,7 @@ void Conv2dTransposeOpenCLKernel::PadWeight() {
} }
int Conv2dTransposeOpenCLKernel::Run() { int Conv2dTransposeOpenCLKernel::Run() {
MS_LOG(DEBUG) << this->Name() << " Running!";
std::vector<int> shapex = inputs_[0]->shape(); std::vector<int> shapex = inputs_[0]->shape();
int n = shapex[0]; int n = shapex[0];
if (n > 1) { if (n > 1) {

@ -38,12 +38,8 @@ int ConvolutionOpenCLKernel::Init() {
MS_LOG(ERROR) << "ConvolutionOpenCLKernel only support Batch=1!"; MS_LOG(ERROR) << "ConvolutionOpenCLKernel only support Batch=1!";
} }
auto io_NHWC = inputs_[0]->GetFormat() == schema::Format_NHWC && outputs_[0]->GetFormat() == schema::Format_NHWC; outputs_[0]->SetFormat(schema::Format_NHWC4);
auto io_NHWC4 = inputs_[0]->GetFormat() == schema::Format_NHWC4 && outputs_[0]->GetFormat() == schema::Format_NHWC4; io_dataformat_ = outputs_[0]->GetFormat();
if (!io_NHWC && !io_NHWC4) {
MS_LOG(ERROR) << "input and output data_format is invalid!";
}
io_dataformat_ = inputs_[0]->GetFormat();
if (inputs_[1]->GetFormat() != schema::Format_KHWC) { if (inputs_[1]->GetFormat() != schema::Format_KHWC) {
MS_LOG(ERROR) << "weight data_format is invalid!"; MS_LOG(ERROR) << "weight data_format is invalid!";
@ -62,6 +58,7 @@ int ConvolutionOpenCLKernel::Init() {
#endif #endif
this->InitBuffer(); this->InitBuffer();
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return 0; return 0;
} }
int ConvolutionOpenCLKernel::InitBuffer() { int ConvolutionOpenCLKernel::InitBuffer() {
@ -123,7 +120,7 @@ int ConvolutionOpenCLKernel::InitBuffer() {
int ConvolutionOpenCLKernel::ReSize() { return 0; } int ConvolutionOpenCLKernel::ReSize() { return 0; }
int ConvolutionOpenCLKernel::Run() { int ConvolutionOpenCLKernel::Run() {
MS_LOG(INFO) << "ConvolutionOpenCLKernel::Run()"; MS_LOG(DEBUG) << this->Name() << " Running!";
auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance(); auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance();
auto param = reinterpret_cast<ConvParameter *>(opParameter); auto param = reinterpret_cast<ConvParameter *>(opParameter);

@ -58,6 +58,7 @@ int DepthwiseConv2dOpenCLKernel::Init() {
ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options); ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options);
#endif #endif
this->InitBuffer(); this->InitBuffer();
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return 0; return 0;
} }
int DepthwiseConv2dOpenCLKernel::InitBuffer() { int DepthwiseConv2dOpenCLKernel::InitBuffer() {
@ -100,6 +101,7 @@ int DepthwiseConv2dOpenCLKernel::ReSize() {
} }
int DepthwiseConv2dOpenCLKernel::Run() { int DepthwiseConv2dOpenCLKernel::Run() {
MS_LOG(DEBUG) << this->Name() << " Running!";
auto parameter = reinterpret_cast<ConvParameter*>(opParameter); auto parameter = reinterpret_cast<ConvParameter*>(opParameter);
auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance(); auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance();
size_t CO4 = UP_DIV(outputs_[0]->Channel(), C4NUM); size_t CO4 = UP_DIV(outputs_[0]->Channel(), C4NUM);

@ -66,6 +66,8 @@ int MatMulOpenCLKernel::Init() {
if (hasBias_) { if (hasBias_) {
allocator->UnmapBuffer(bias_); allocator->UnmapBuffer(bias_);
} }
outputs_[0]->SetFormat(schema::Format_NHWC4);
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return 0; return 0;
} }
@ -100,6 +102,7 @@ void MatMulOpenCLKernel::PadWeight() {
} }
int MatMulOpenCLKernel::Run() { int MatMulOpenCLKernel::Run() {
MS_LOG(DEBUG) << this->Name() << " Running!";
std::vector<int> shapex = inputs_[0]->shape(); std::vector<int> shapex = inputs_[0]->shape();
int n = shapex[0]; int n = shapex[0];
if (n > 1) { if (n > 1) {

@ -59,8 +59,6 @@ int PoolingOpenCLKernel::Init() {
MS_LOG(ERROR) << "Init `Pooling2d` kernel failed!"; MS_LOG(ERROR) << "Init `Pooling2d` kernel failed!";
return RET_INVALID_OP_NAME; return RET_INVALID_OP_NAME;
} }
auto in_format = inputs_[0]->GetFormat();
outputs_[0]->SetFormat(in_format);
auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance(); auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance();
#ifdef PROGRAM_WITH_IL #ifdef PROGRAM_WITH_IL
@ -70,6 +68,8 @@ int PoolingOpenCLKernel::Init() {
ocl_runtime->LoadSource(program_name, source); ocl_runtime->LoadSource(program_name, source);
ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options); ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options);
#endif #endif
outputs_[0]->SetFormat(schema::Format_NHWC4);
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return RET_OK; return RET_OK;
} }
@ -85,6 +85,7 @@ int PoolingOpenCLKernel::InitBuffer() { return 0; }
int PoolingOpenCLKernel::ReSize() { return 0; } int PoolingOpenCLKernel::ReSize() { return 0; }
int PoolingOpenCLKernel::Run() { int PoolingOpenCLKernel::Run() {
MS_LOG(DEBUG) << this->Name() << " Running!";
auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance(); auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance();
// attribute // attribute

@ -46,6 +46,8 @@ int SoftmaxOpenCLKernel::Init() {
ocl_runtime->LoadSource(program_name, source); ocl_runtime->LoadSource(program_name, source);
ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options); ocl_runtime->BuildKernel(kernel_, program_name, kernel_name, build_options);
#endif #endif
outputs_[0]->SetFormat(schema::Format_NHWC4);
MS_LOG(DEBUG) << kernel_name << " Init Done!";
return 0; return 0;
} }
@ -53,6 +55,7 @@ int SoftmaxOpenCLKernel::InitBuffer() { return 0; }
int SoftmaxOpenCLKernel::ReSize() { return 0; } int SoftmaxOpenCLKernel::ReSize() { return 0; }
int SoftmaxOpenCLKernel::Run() { int SoftmaxOpenCLKernel::Run() {
MS_LOG(DEBUG) << this->Name() << " Running!";
auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance(); auto ocl_runtime = lite::opencl::OpenCLRuntime::GetInstance();
auto allocator = ocl_runtime->GetAllocator(); auto allocator = ocl_runtime->GetAllocator();

Loading…
Cancel
Save