Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
2a31e52b
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看板
提交
2a31e52b
编写于
6月 30, 2020
作者:
Y
yujianfeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Adjust the thread num to compute optimizer in cpu
上级
fe82d821
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
11 addition
and
14 deletion
+11
-14
mindspore/ccsrc/kernel/common_utils.cc
mindspore/ccsrc/kernel/common_utils.cc
+4
-3
mindspore/ccsrc/kernel/common_utils.h
mindspore/ccsrc/kernel/common_utils.h
+1
-1
mindspore/ccsrc/kernel/cpu/sparse_apply_adam_cpu_kernel.cc
mindspore/ccsrc/kernel/cpu/sparse_apply_adam_cpu_kernel.cc
+3
-4
mindspore/ccsrc/kernel/cpu/sparse_apply_ftrl_cpu_kernel.cc
mindspore/ccsrc/kernel/cpu/sparse_apply_ftrl_cpu_kernel.cc
+1
-2
mindspore/ccsrc/kernel/cpu/sparse_apply_lazy_adam_cpu_kernel.cc
...ore/ccsrc/kernel/cpu/sparse_apply_lazy_adam_cpu_kernel.cc
+1
-2
mindspore/ccsrc/kernel/cpu/sparse_apply_proximal_adagrad_cpu_kernel.cc
...rc/kernel/cpu/sparse_apply_proximal_adagrad_cpu_kernel.cc
+1
-2
未找到文件。
mindspore/ccsrc/kernel/common_utils.cc
浏览文件 @
2a31e52b
...
@@ -876,12 +876,13 @@ bool IsWeightBoundary(const AnfNodePtr &node) {
...
@@ -876,12 +876,13 @@ bool IsWeightBoundary(const AnfNodePtr &node) {
return
false
;
return
false
;
}
}
void
MultiThreadCompute
(
const
MultiThreadComputeFunc
&
func
,
MultiThreadComputeParams
*
params
,
size_t
thread_num
,
void
MultiThreadCompute
(
const
MultiThreadComputeFunc
&
func
,
MultiThreadComputeParams
*
params
,
size_t
total_compute_size
)
{
size_t
total_compute_size
)
{
const
size_t
kThreadNum
=
24
;
std
::
vector
<
std
::
thread
>
threads
;
std
::
vector
<
std
::
thread
>
threads
;
threads
.
reserve
(
thread_n
um
);
threads
.
reserve
(
kThreadN
um
);
size_t
start
=
0
;
size_t
start
=
0
;
size_t
once_compute_size
=
(
total_compute_size
+
thread_num
-
1
)
/
thread_n
um
;
size_t
once_compute_size
=
(
total_compute_size
+
kThreadNum
-
1
)
/
kThreadN
um
;
while
(
start
<
total_compute_size
)
{
while
(
start
<
total_compute_size
)
{
size_t
end
=
(
start
+
once_compute_size
)
>
total_compute_size
?
total_compute_size
:
(
start
+
once_compute_size
);
size_t
end
=
(
start
+
once_compute_size
)
>
total_compute_size
?
total_compute_size
:
(
start
+
once_compute_size
);
threads
.
emplace_back
(
std
::
thread
(
func
,
params
,
start
,
end
));
threads
.
emplace_back
(
std
::
thread
(
func
,
params
,
start
,
end
));
...
...
mindspore/ccsrc/kernel/common_utils.h
浏览文件 @
2a31e52b
...
@@ -128,7 +128,7 @@ void GetValidKernelNodes(const FuncGraphPtr &func_graph, std::vector<AnfNodePtr>
...
@@ -128,7 +128,7 @@ void GetValidKernelNodes(const FuncGraphPtr &func_graph, std::vector<AnfNodePtr>
bool
GetInputTensorValue
(
const
AnfNodePtr
&
anf_node
,
size_t
input_idx
,
nlohmann
::
json
*
const
node_json
);
bool
GetInputTensorValue
(
const
AnfNodePtr
&
anf_node
,
size_t
input_idx
,
nlohmann
::
json
*
const
node_json
);
void
GetGraphRealOutput
(
const
FuncGraphPtr
&
func_graph
,
std
::
vector
<
std
::
pair
<
AnfNodePtr
,
size_t
>>
*
node_list
);
void
GetGraphRealOutput
(
const
FuncGraphPtr
&
func_graph
,
std
::
vector
<
std
::
pair
<
AnfNodePtr
,
size_t
>>
*
node_list
);
bool
IsWeightBoundary
(
const
AnfNodePtr
&
node
);
bool
IsWeightBoundary
(
const
AnfNodePtr
&
node
);
void
MultiThreadCompute
(
const
MultiThreadComputeFunc
&
func
,
MultiThreadComputeParams
*
params
,
size_t
thread_num
,
void
MultiThreadCompute
(
const
MultiThreadComputeFunc
&
func
,
MultiThreadComputeParams
*
params
,
size_t
total_compute_size
);
size_t
total_compute_size
);
}
// namespace kernel
}
// namespace kernel
}
// namespace mindspore
}
// namespace mindspore
...
...
mindspore/ccsrc/kernel/cpu/sparse_apply_adam_cpu_kernel.cc
浏览文件 @
2a31e52b
...
@@ -155,15 +155,14 @@ bool SparseApplyAdamCPUKernel::Launch(const std::vector<kernel::AddressPtr> &inp
...
@@ -155,15 +155,14 @@ bool SparseApplyAdamCPUKernel::Launch(const std::vector<kernel::AddressPtr> &inp
input_params
.
v_
=
v
;
input_params
.
v_
=
v
;
input_params
.
beta1_
=
beta1
;
input_params
.
beta1_
=
beta1
;
input_params
.
beta2_
=
beta2
;
input_params
.
beta2_
=
beta2
;
const
size_t
kThreadNum
=
16
;
MultiThreadCompute
(
ComputeMomentum
,
&
input_params
,
total_dim_size
);
MultiThreadCompute
(
ComputeMomentum
,
&
input_params
,
kThreadNum
,
total_dim_size
);
input_params
.
m_t_
=
m_t
;
input_params
.
m_t_
=
m_t
;
input_params
.
use_nesterov_
=
use_nesterov_
;
input_params
.
use_nesterov_
=
use_nesterov_
;
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
MultiThreadCompute
(
ComputeAdam
,
&
input_params
,
kThreadNum
,
unique_sparse_grad
.
indices_size_
);
MultiThreadCompute
(
ComputeAdam
,
&
input_params
,
unique_sparse_grad
.
indices_size_
);
if
(
use_nesterov_
)
{
if
(
use_nesterov_
)
{
input_params
.
m_
=
input_params
.
m_t_
;
input_params
.
m_
=
input_params
.
m_t_
;
...
@@ -171,7 +170,7 @@ bool SparseApplyAdamCPUKernel::Launch(const std::vector<kernel::AddressPtr> &inp
...
@@ -171,7 +170,7 @@ bool SparseApplyAdamCPUKernel::Launch(const std::vector<kernel::AddressPtr> &inp
input_params
.
var_
=
var
;
input_params
.
var_
=
var
;
input_params
.
lr_
=
lr
;
input_params
.
lr_
=
lr
;
input_params
.
epsilon_
=
epsilon
;
input_params
.
epsilon_
=
epsilon
;
MultiThreadCompute
(
ComputeWeight
,
&
input_params
,
kThreadNum
,
total_dim_size
);
MultiThreadCompute
(
ComputeWeight
,
&
input_params
,
total_dim_size
);
return
true
;
return
true
;
}
}
}
// namespace kernel
}
// namespace kernel
...
...
mindspore/ccsrc/kernel/cpu/sparse_apply_ftrl_cpu_kernel.cc
浏览文件 @
2a31e52b
...
@@ -145,8 +145,7 @@ bool SparseApplyFtrlCPUKernel::Launch(const std::vector<kernel::AddressPtr> &inp
...
@@ -145,8 +145,7 @@ bool SparseApplyFtrlCPUKernel::Launch(const std::vector<kernel::AddressPtr> &inp
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
const
size_t
kThreadNum
=
16
;
MultiThreadCompute
(
ComputeFtrl
,
&
input_params
,
unique_sparse_grad
.
indices_size_
);
MultiThreadCompute
(
ComputeFtrl
,
&
input_params
,
kThreadNum
,
unique_sparse_grad
.
indices_size_
);
return
true
;
return
true
;
}
}
}
// namespace kernel
}
// namespace kernel
...
...
mindspore/ccsrc/kernel/cpu/sparse_apply_lazy_adam_cpu_kernel.cc
浏览文件 @
2a31e52b
...
@@ -139,8 +139,7 @@ bool SparseApplyLazyAdamCPUKernel::Launch(const std::vector<kernel::AddressPtr>
...
@@ -139,8 +139,7 @@ bool SparseApplyLazyAdamCPUKernel::Launch(const std::vector<kernel::AddressPtr>
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
const
size_t
kThreadNum
=
16
;
MultiThreadCompute
(
ComputeLazyAdam
,
&
input_params
,
unique_sparse_grad
.
indices_size_
);
MultiThreadCompute
(
ComputeLazyAdam
,
&
input_params
,
kThreadNum
,
unique_sparse_grad
.
indices_size_
);
return
true
;
return
true
;
}
}
}
// namespace kernel
}
// namespace kernel
...
...
mindspore/ccsrc/kernel/cpu/sparse_apply_proximal_adagrad_cpu_kernel.cc
浏览文件 @
2a31e52b
...
@@ -132,8 +132,7 @@ bool SparseApplyProximalAdagradCPUKernel::Launch(const std::vector<kernel::Addre
...
@@ -132,8 +132,7 @@ bool SparseApplyProximalAdagradCPUKernel::Launch(const std::vector<kernel::Addre
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
sparse_grad_
=
unique_sparse_grad
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_first_dim_size_
=
var_first_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
input_params
.
var_outer_dim_size_
=
var_outer_dim_size_
;
const
size_t
kThreadNum
=
16
;
MultiThreadCompute
(
ComputeProximalAdagrad
,
&
input_params
,
unique_sparse_grad
.
indices_size_
);
MultiThreadCompute
(
ComputeProximalAdagrad
,
&
input_params
,
kThreadNum
,
unique_sparse_grad
.
indices_size_
);
return
true
;
return
true
;
}
}
}
// namespace kernel
}
// namespace kernel
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录