Skip to content

Commit a5eb6f3

Browse files
author
0x45f
committed
add my code in svd_helper.h
1 parent eeb6489 commit a5eb6f3

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

paddle/fluid/operators/matrix_rank_op.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ class MatrixRankCPUKernel : public framework::OpKernel<T> {
213213

214214
Tensor temp_rtol_tensor;
215215
framework::TensorFromVector<T>(std::vector<T>{rtol_T}, &temp_rtol_tensor);
216-
Tensor rtol_tensor = dito_T.mul(temp_rtol_tensor, max_eigenvalue_tensor);
216+
Tensor rtol_tensor = dito_T.Mul(temp_rtol_tensor, max_eigenvalue_tensor);
217217
Tensor tol_tensor;
218218
tol_tensor.mutable_data<T>(dim_out, context.GetPlace());
219219
ElementwiseComputeEx<GreaterElementFunctor<T>, platform::CPUDeviceContext,
@@ -239,9 +239,9 @@ class MatrixRankCPUKernel : public framework::OpKernel<T> {
239239
auto dito_int =
240240
math::DeviceIndependenceTensorOperations<platform::CPUDeviceContext,
241241
int64_t>(context);
242-
std::vector<int> res_shape = framework::vectorize<int>(dim_out);
243-
Tensor res = dito_int.ReduceSum(compare_result, res_shape);
244-
out->ShareDataWith(res);
242+
std::vector<int> result_shape = framework::vectorize<int>(dim_out);
243+
Tensor result = dito_int.ReduceSum(compare_result, result_shape);
244+
out->ShareDataWith(result);
245245
}
246246
};
247247

paddle/fluid/operators/matrix_rank_op.cu

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class MatrixRankGPUKernel : public framework::OpKernel<T> {
116116
Tensor temp_rtol_tensor;
117117
framework::TensorFromVector<T>(std::vector<T>{rtol_T},
118118
context.device_context(), &temp_rtol_tensor);
119-
Tensor rtol_tensor = dito_T.mul(temp_rtol_tensor, max_eigenvalue_tensor);
119+
Tensor rtol_tensor = dito_T.Mul(temp_rtol_tensor, max_eigenvalue_tensor);
120120
Tensor tol_tensor;
121121
tol_tensor.mutable_data<T>(dim_out, context.GetPlace());
122122
ElementwiseComputeEx<GreaterElementFunctor<T>, platform::CUDADeviceContext,
@@ -143,9 +143,9 @@ class MatrixRankGPUKernel : public framework::OpKernel<T> {
143143
auto dito_int =
144144
math::DeviceIndependenceTensorOperations<platform::CUDADeviceContext,
145145
int64_t>(context);
146-
std::vector<int> res_shape = framework::vectorize<int>(dim_out);
147-
Tensor res = dito_int.ReduceSum(compare_result, res_shape);
148-
out->ShareDataWith(res);
146+
std::vector<int> result_shape = framework::vectorize<int>(dim_out);
147+
Tensor result = dito_int.ReduceSum(compare_result, result_shape);
148+
out->ShareDataWith(result);
149149
}
150150

151151
void GesvdjBatched(const platform::CUDADeviceContext& dev_ctx, int batchSize,

paddle/fluid/operators/svd_helper.h

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ void EigenSvd(const T* X, T* U, T* VH, T* S, int rows, int cols,
4848
svd(2, 2, flag);
4949
/*NOTE(xiongkun03) Eigen::Matrix API need non-const pointer.*/
5050
T* input = const_cast<T*>(X);
51-
This conversation was marked as resolved by Aurelius84
5251
auto m = Eigen::Map<
5352
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>>(
5453
input, rows, cols);
@@ -314,6 +313,22 @@ struct DeviceIndependenceTensorOperations {
314313
return CreateOpRunAndReturnTensor("slice", inputs, attrs, out_shape);
315314
}
316315

316+
framework::Tensor ReduceSum(const framework::Tensor& x,
317+
std::vector<int> out_dim) {
318+
framework::AttributeMap attrs;
319+
attrs["dim"] = std::vector<int>{-1};
320+
NameInTensorMap inputs({{"X", {&x}}});
321+
return CreateOpRunAndReturnTensor("reduce_sum", inputs, attrs, out_dim);
322+
}
323+
324+
framework::Tensor ReduceMax(const framework::Tensor& x,
325+
std::vector<int> out_dim) {
326+
framework::AttributeMap attrs;
327+
attrs["dim"] = std::vector<int>{-1};
328+
NameInTensorMap inputs({{"X", {&x}}});
329+
return CreateOpRunAndReturnTensor("reduce_max", inputs, attrs, out_dim);
330+
}
331+
317332
private:
318333
const framework::ExecutionContext& context;
319334
BlasT<DeviceContext, T> GetBlas() {
@@ -370,4 +385,4 @@ struct DeviceIndependenceTensorOperations {
370385
};
371386
} // namespace math
372387
} // namespace operators
373-
} // namespace paddle
388+
} // namespace paddle

paddle/fluid/platform/dynload/cusolver.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,6 @@ CUSOLVER_ROUTINE_EACH_R1(DECLARE_DYNAMIC_LOAD_CUSOLVER_WRAP)
6868

6969
#if CUDA_VERSION >= 9020
7070
#define CUSOLVER_ROUTINE_EACH_R2(__macro) \
71-
__macro(cusolverDnCreateGesvdjInfo); \
72-
__macro(cusolverDnSgesvdj_bufferSize); \
73-
__macro(cusolverDnDgesvdj_bufferSize); \
74-
__macro(cusolverDnSgesvdj); \
75-
__macro(cusolverDnDgesvdj); \
76-
__macro(cusolverDnDestroyGesvdjInfo); \
7771
__macro(cusolverDnCreateSyevjInfo); \
7872
__macro(cusolverDnSsyevj_bufferSize); \
7973
__macro(cusolverDnDsyevj_bufferSize); \

0 commit comments

Comments
 (0)