Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
6a14f52d
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6a14f52d
编写于
10月 31, 2017
作者:
H
hedaoyuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove SharedCpuMatrix in mobile inference.
上级
2d84c6ea
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
0 deletion
+14
-0
paddle/math/Matrix.cpp
paddle/math/Matrix.cpp
+12
-0
paddle/math/Matrix.h
paddle/math/Matrix.h
+2
-0
未找到文件。
paddle/math/Matrix.cpp
浏览文件 @
6a14f52d
...
...
@@ -451,6 +451,7 @@ void GpuMatrix::addSharedBias(Matrix& b, real scale) {
}
void
GpuMatrix
::
collectBias
(
Matrix
&
a
,
real
scale
)
{
#ifdef PADDLE_WITH_CUDA
CHECK_EQ
(
getHeight
(),
(
size_t
)
1
);
CHECK_EQ
(
width_
,
a
.
getWidth
());
GpuSparseMatrix
*
sMatPtr
=
dynamic_cast
<
GpuSparseMatrix
*>
(
&
a
);
...
...
@@ -461,6 +462,7 @@ void GpuMatrix::collectBias(Matrix& a, real scale) {
hl_sparse_matrix_s
A_d
=
sMatPtr
->
sMatrix_
.
get
();
hl_sparse_matrix_column_sum
(
data
,
A_d
,
sMatPtr
->
getHeight
(),
width_
,
scale
);
}
#endif
}
void
GpuMatrix
::
collectSharedBias
(
Matrix
&
a
,
real
scale
)
{
...
...
@@ -552,6 +554,7 @@ void GpuMatrix::mul(const GpuSparseMatrix& a,
const
GpuMatrix
&
b
,
real
scaleAB
,
real
scaleT
)
{
#ifdef PADDLE_WITH_CUDA
CHECK
(
isContiguous
());
CHECK
(
b
.
isContiguous
());
CHECK
(
b
.
useGpu_
==
true
)
<<
"Matrix type are not equal"
;
...
...
@@ -578,12 +581,14 @@ void GpuMatrix::mul(const GpuSparseMatrix& a,
b
.
height_
,
scaleAB
,
scaleT
);
#endif
}
void
GpuMatrix
::
mul
(
const
GpuMatrix
&
a
,
const
GpuSparseMatrix
&
b
,
real
scaleAB
,
real
scaleT
)
{
#ifdef PADDLE_WITH_CUDA
CHECK
(
isContiguous
());
CHECK
(
a
.
isContiguous
());
CHECK
(
a
.
useGpu_
==
true
)
<<
"Matrix type are not equal"
;
...
...
@@ -622,6 +627,7 @@ void GpuMatrix::mul(const GpuMatrix& a,
scaleAB
,
scaleT
);
}
#endif
}
/* this = a*b */
...
...
@@ -1548,6 +1554,7 @@ void GpuMatrix::bilinearBackward(const Matrix& out,
}
void
GpuMatrix
::
multiBinaryLabelCrossEntropy
(
Matrix
&
output
,
Matrix
&
label
)
{
#ifdef PADDLE_WITH_CUDA
GpuMatrix
*
outputPtr
=
dynamic_cast
<
GpuMatrix
*>
(
&
output
);
auto
labelPtr
=
dynamic_cast
<
GpuSparseMatrix
*>
(
&
label
);
...
...
@@ -1563,9 +1570,11 @@ void GpuMatrix::multiBinaryLabelCrossEntropy(Matrix& output, Matrix& label) {
hl_sparse_matrix_s
mat_d
=
labelPtr
->
sMatrix_
.
get
();
hl_matrix_multi_binary_cross_entropy
(
output_d
,
entropy_d
,
mat_d
,
height_
,
outputPtr
->
width_
);
#endif
}
void
GpuMatrix
::
multiBinaryLabelCrossEntropyBp
(
Matrix
&
output
,
Matrix
&
label
)
{
#ifdef PADDLE_WITH_CUDA
GpuMatrix
*
outputPtr
=
dynamic_cast
<
GpuMatrix
*>
(
&
output
);
auto
labelPtr
=
dynamic_cast
<
GpuSparseMatrix
*>
(
&
label
);
...
...
@@ -1581,6 +1590,7 @@ void GpuMatrix::multiBinaryLabelCrossEntropyBp(Matrix& output, Matrix& label) {
hl_sparse_matrix_s
mat_d
=
labelPtr
->
sMatrix_
.
get
();
hl_matrix_multi_binary_cross_entropy_bp
(
output_d
,
grad_d
,
mat_d
,
height_
,
width_
);
#endif
}
void
GpuMatrix
::
vol2Col
(
real
*
dataSrc
,
...
...
@@ -3226,6 +3236,7 @@ template void CpuMatrix::mul<CpuMatrix, CacheRowCpuMatrix>(CpuSparseMatrix* a,
real
scaleAB
,
real
scaleT
);
#ifndef PADDLE_MOBILE_INFERENCE
void
SharedCpuMatrix
::
mul
(
CpuSparseMatrix
*
a
,
CpuMatrix
*
b
,
real
scaleAB
,
...
...
@@ -3354,6 +3365,7 @@ void SharedCpuMatrix::initBlock(int blockNum) {
}
}
#endif
/* Add a (column) vector b to matrix a, column by column */
void
CpuMatrix
::
addColumnVector
(
const
Matrix
&
b
)
{
BaseMatrix
::
addColVector
(
const_cast
<
Matrix
&>
(
b
));
...
...
paddle/math/Matrix.h
浏览文件 @
6a14f52d
...
...
@@ -2065,6 +2065,7 @@ public:
};
class
SharedCpuMatrix
:
public
CpuMatrix
{
#ifndef PADDLE_MOBILE_INFERENCE
public:
/* blockNum is number of partitions of the matrix */
SharedCpuMatrix
(
int
blockNum
,
size_t
height
,
size_t
width
,
bool
trans
=
false
)
...
...
@@ -2111,6 +2112,7 @@ private:
ThreadLocal
<
CpuMatrixPtr
>
localBuf_
;
ThreadLocal
<
std
::
vector
<
int
>>
localBufRows_
;
ThreadLocal
<
std
::
vector
<
int
>>
blockSeq_
;
#endif
};
typedef
struct
{
unsigned
int
col
;
}
sparse_non_value_t
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录