Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
12847919
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
12847919
编写于
8月 20, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 20, 2020
浏览文件
操作
浏览文件
下载
差异文件
!4770 [MS][LITE][Develop] fix codex for opencl depthwise
Merge pull request !4770 from wandongdong/master
上级
2e936a27
877b4a97
变更
4
展开全部
显示空白变更内容
内联
并排
Showing
4 changed file
with
179 addition
and
251 deletion
+179
-251
mindspore/lite/src/runtime/kernel/opencl/cl/fp32/arithmetic_image2d.cl
...e/src/runtime/kernel/opencl/cl/fp32/arithmetic_image2d.cl
+2
-4
mindspore/lite/src/runtime/kernel/opencl/kernel/depthwise_conv2d.cc
...lite/src/runtime/kernel/opencl/kernel/depthwise_conv2d.cc
+0
-1
mindspore/lite/src/runtime/kernel/opencl/subgraph_opencl_kernel.cc
.../lite/src/runtime/kernel/opencl/subgraph_opencl_kernel.cc
+13
-11
mindspore/lite/test/ut/src/runtime/kernel/opencl/depthwise_conv2d_tests.cc
...st/ut/src/runtime/kernel/opencl/depthwise_conv2d_tests.cc
+164
-235
未找到文件。
mindspore/lite/src/runtime/kernel/opencl/cl/fp32/arithmetic_image2d.cl
浏览文件 @
12847919
#
define
divide_no_check
(
a,
b
)
(
a/b
)
__constant
sampler_t
smp_none
=
CLK_NORMALIZED_COORDS_FALSE
| CLK_ADDRESS_NONE |
CLK_FILTER_NEAREST
;
__kernel
void
ElementAdd
(
__read_only
image2d_t
input_a,
__read_only
image2d_t
input_b,
__write_only
image2d_t
output,
...
...
@@ -49,10 +50,7 @@ __kernel void ElementDiv(__read_only image2d_t input_a, __read_only image2d_t in
float4 a = read_imagef(input_a, smp_none, (int2)(X, Y));
float4 b = read_imagef(input_b, smp_none, (int2)(X, Y));
if (b == 0) {
return;
}
write_imagef(output, (int2)(X, Y), a / b);
write_imagef(output, (int2)(X, Y), divide_no_check(a, b));
}
__kernel void BoardcastArith(__read_only image2d_t input_a, float weight, float bias, __write_only image2d_t output,
...
...
mindspore/lite/src/runtime/kernel/opencl/kernel/depthwise_conv2d.cc
浏览文件 @
12847919
...
...
@@ -102,7 +102,6 @@ int DepthwiseConv2dOpenCLKernel::InitBuffer() {
allocator
->
UnmapBuffer
(
packed_weight_
);
// init bias
if
(
in_tensors_
.
size
()
==
kInputSize2
)
{
bias_data_
=
reinterpret_cast
<
FLOAT_t
*>
(
allocator
->
Malloc
(
C4NUM
*
CO4
*
sizeof
(
FLOAT_t
)));
bias_data_
=
reinterpret_cast
<
FLOAT_t
*>
(
allocator
->
MapBuffer
(
bias_data_
,
CL_MAP_WRITE
,
nullptr
,
true
));
...
...
mindspore/lite/src/runtime/kernel/opencl/subgraph_opencl_kernel.cc
浏览文件 @
12847919
...
...
@@ -15,7 +15,6 @@
*/
#include "src/runtime/kernel/opencl/subgraph_opencl_kernel.h"
#include <set>
#include "src/runtime/opencl/opencl_executor.h"
#include "src/runtime/opencl/opencl_runtime.h"
#include "src/runtime/kernel/opencl/utils.h"
...
...
@@ -92,6 +91,8 @@ int SubGraphOpenCLKernel::GenToFormatOp(const std::vector<lite::tensor::Tensor *
MS_ASSERT
(
parameter
);
if
(
parameter
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"SubGraphOpenCLKernel new parameter failed!"
;
delete
new_tensor
;
new_tensor
=
nullptr
;
return
RET_ERROR
;
}
parameter
->
src_format
=
src_format
;
...
...
@@ -109,6 +110,10 @@ int SubGraphOpenCLKernel::GenToFormatOp(const std::vector<lite::tensor::Tensor *
MS_ASSERT
(
in_convert_op
);
if
(
in_convert_op
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"SubGraphOpenCLKernel create op failed!"
;
delete
new_tensor
;
new_tensor
=
nullptr
;
delete
parameter
;
parameter
=
nullptr
;
return
RET_ERROR
;
}
auto
in_opencl_op
=
reinterpret_cast
<
OpenCLKernel
*>
(
in_convert_op
);
...
...
@@ -272,16 +277,16 @@ int SubGraphOpenCLKernel::UnInit() {
delete
tensor
;
}
}
for
(
const
auto
parameter
:
in_parameters_
)
{
if
(
parameter
!=
nullptr
)
{
delete
parameter
;
}
}
for
(
const
auto
op
:
in_convert_ops_
)
{
if
(
op
!=
nullptr
)
{
delete
op
;
}
}
for
(
const
auto
parameter
:
in_parameters_
)
{
if
(
parameter
!=
nullptr
)
{
delete
parameter
;
}
}
return
RET_OK
;
}
...
...
@@ -290,18 +295,15 @@ int SubGraphOpenCLKernel::InferShape() { return RET_OK; }
int
SubGraphOpenCLKernel
::
ReSize
()
{
return
RET_OK
;
}
int
SubGraphOpenCLKernel
::
Run
()
{
auto
ocl_runtime
=
lite
::
opencl
::
OpenCLRuntime
::
GetInstance
();
for
(
auto
&
tensor
:
in_tensors_
)
{
allocator_
->
UnmapBuffer
(
tensor
->
Data
());
}
lite
::
opencl
::
OpenCLExecutor
executor
;
executor
.
Run
(
in_tensors_
,
out_tensors_
,
nodes_
,
allocator_
);
ocl_runtime
->
SyncCommandQueue
();
for
(
auto
&
tensor
:
out_tensors_
)
{
void
*
data
=
allocator_
->
MapBuffer
(
tensor
->
Data
(),
CL_MAP_READ
,
nullptr
,
true
);
tensor
->
SetData
(
data
);
}
return
RET_OK
;
}
}
// namespace mindspore::kernel
mindspore/lite/test/ut/src/runtime/kernel/opencl/depthwise_conv2d_tests.cc
100755 → 100644
浏览文件 @
12847919
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录