提交 c5a7471e 编写于 作者: Q qijun

add math_function_test

上级 6e001078
...@@ -11,3 +11,6 @@ else() ...@@ -11,3 +11,6 @@ else()
cc_library(math_function SRCS math_function.cc DEPS cblas device_context) cc_library(math_function SRCS math_function.cc DEPS cblas device_context)
endif() endif()
endif() endif()
nv_test(math_function_test SRCS math_function_test.cc DEPS math_function)
#include "paddle/operators/math/math_function.h"
#include "gtest/gtest.h"
#ifndef PADDLE_ONLY_CPU
TEST(math_function, GPU) {
paddle::framework::Tensor input1;
paddle::framework::Tensor input1_gpu;
paddle::framework::Tensor input2_gpu;
paddle::framework::Tensor out_gpu;
paddle::framework::Tensor out;
auto* cpu_place = new paddle::platform::CPUPlace();
float* input1_ptr = input1.mutable_data<float>({2, 2}, *cpu_place);
float arr[4] = {0, 1, 2, 3};
auto* gpu_place = new paddle::platform::GPUPlace(0);
paddle::platform::DeviceContext* context = new CUDADeviceContext(gpu_place);
input1_gpu.CopyFrom<float>(input1, *gpu_place);
input2_gpu.CopyFrom<float>(input1, *gpu_place);
out_gpu.CopyFrom<float>(input1, *gpu_place);
matmul<paddle::platform::GPUPlace, float>(input1_gpu, false, input2_gpu,
false, 1, &out_gpu, 0, context);
out.CopyFrom<float>(out_gpu, *cpu_place);
float* out_ptr = out.data<float>();
EXPECT_EQ(out_ptr[0], 2);
EXPECT_EQ(out_ptr[1], 3);
EXPECT_EQ(out_ptr[2], 6);
EXPECT_EQ(out_ptr[3], 11);
}
#endif
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册