Skip to content

Commit 080ff0c

Browse files
committed
two tests for cpu and gpu separately
1 parent 22dfa5f commit 080ff0c

File tree

3 files changed

+50
-35
lines changed

3 files changed

+50
-35
lines changed

paddle/math/tests/CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,19 @@ add_simple_unittest(test_CpuGpuVector)
1818
add_simple_unittest(test_Allocator)
1919

2020
if(WITH_GPU)
21+
nv_test(test_float16_gpu SRCS test_float16.cu)
2122
CUDA_ADD_EXECUTABLE(test_Tensor test_Tensor.cu)
2223
link_paddle_test(test_Tensor)
2324
CUDA_ADD_EXECUTABLE(test_lazyAssign test_lazyAssign.cu)
2425
link_paddle_test(test_lazyAssign)
25-
CUDA_ADD_EXECUTABLE(test_float16 test_float16.cu)
26-
link_paddle_test(test_float16)
2726
else()
2827
compile_cu_as_cpp(test_Tensor.cu)
2928
add_unittest(test_Tensor test_Tensor.cu)
3029
compile_cu_as_cpp(test_lazyAssign.cu)
3130
add_unittest(test_lazyAssign test_lazyAssign.cu)
32-
compile_cu_as_cpp(test_float16.cu)
33-
add_unittest(test_float16 test_float16.cu)
3431
endif(WITH_GPU)
3532

33+
cc_test(test_float16 SRCS test_float16.cpp)
3634
add_simple_unittest(test_FPException)
3735
add_simple_unittest(test_GpuProfiler)
3836
add_simple_unittest(test_BaseMatrix)

paddle/math/tests/test_float16.cpp

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserve.
2+
Licensed under the Apache License, Version 2.0 (the "License");
3+
you may not use this file except in compliance with the License.
4+
You may obtain a copy of the License at
5+
http://www.apache.org/licenses/LICENSE-2.0
6+
Unless required by applicable law or agreed to in writing, software
7+
distributed under the License is distributed on an "AS IS" BASIS,
8+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9+
See the License for the specific language governing permissions and
10+
limitations under the License. */
11+
12+
#include <gtest/gtest.h>
13+
#include "paddle/math/float16.h"
14+
15+
namespace paddle {
16+
17+
TEST(float16, conversion_cpu) {
18+
// Conversion to and from Eigen::half
19+
EXPECT_EQ(float16(Eigen::half(float16(1.0f))).x, 0x3c00);
20+
EXPECT_EQ(float16(Eigen::half(float16(0.5f))).x, 0x3800);
21+
EXPECT_EQ(float16(Eigen::half(float16(0.33333f))).x, 0x3555);
22+
EXPECT_EQ(float16(Eigen::half(float16(0.0f))).x, 0x0000);
23+
EXPECT_EQ(float16(Eigen::half(float16(-0.0f))).x, 0x8000);
24+
EXPECT_EQ(float16(Eigen::half(float16(65504.0f))).x, 0x7bff);
25+
EXPECT_EQ(float16(Eigen::half(float16(65536.0f))).x, 0x7c00);
26+
27+
// Conversion from float
28+
EXPECT_EQ(float16(1.0f).x, 0x3c00);
29+
EXPECT_EQ(float16(0.5f).x, 0x3800);
30+
EXPECT_EQ(float16(0.33333f).x, 0x3555);
31+
EXPECT_EQ(float16(0.0f).x, 0x0000);
32+
EXPECT_EQ(float16(-0.0f).x, 0x8000);
33+
EXPECT_EQ(float16(65504.0f).x, 0x7bff);
34+
EXPECT_EQ(float16(65536.0f).x, 0x7c00);
35+
36+
// Conversion from double
37+
38+
// Conversion from int
39+
40+
// Conversion from bool
41+
}
42+
43+
TEST(float16, arithmetic_cpu) { EXPECT_EQ(float(float16(2) + float16(2)), 4); }
44+
45+
TEST(float16, comparison_cpu) { EXPECT_TRUE(float16(1.0f) > float16(0.5f)); }
46+
47+
} // namespace paddle

paddle/math/tests/test_float16.cu

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -39,40 +39,10 @@ TEST(float16, conversion_gpu) {
3939

4040
// Conversion from bool
4141
}
42+
#endif
4243

4344
TEST(float16, arithmetic_gpu) { EXPECT_EQ(float(float16(2) + float16(2)), 4); }
4445

4546
TEST(float16, comparison_gpu) { EXPECT_TRUE(float16(1.0f) > float16(0.5f)); }
46-
#endif
47-
48-
TEST(float16, conversion_cpu) {
49-
// Conversion to and from Eigen::half
50-
EXPECT_EQ(float16(Eigen::half(float16(1.0f))).x, 0x3c00);
51-
EXPECT_EQ(float16(Eigen::half(float16(0.5f))).x, 0x3800);
52-
EXPECT_EQ(float16(Eigen::half(float16(0.33333f))).x, 0x3555);
53-
EXPECT_EQ(float16(Eigen::half(float16(0.0f))).x, 0x0000);
54-
EXPECT_EQ(float16(Eigen::half(float16(-0.0f))).x, 0x8000);
55-
EXPECT_EQ(float16(Eigen::half(float16(65504.0f))).x, 0x7bff);
56-
EXPECT_EQ(float16(Eigen::half(float16(65536.0f))).x, 0x7c00);
57-
58-
// Conversion from float
59-
EXPECT_EQ(float16(1.0f).x, 0x3c00);
60-
EXPECT_EQ(float16(0.5f).x, 0x3800);
61-
EXPECT_EQ(float16(0.33333f).x, 0x3555);
62-
EXPECT_EQ(float16(0.0f).x, 0x0000);
63-
EXPECT_EQ(float16(-0.0f).x, 0x8000);
64-
EXPECT_EQ(float16(65504.0f).x, 0x7bff);
65-
EXPECT_EQ(float16(65536.0f).x, 0x7c00);
66-
67-
// Conversion from double
68-
69-
// Conversion from int
70-
71-
// Conversion from bool
72-
}
73-
74-
TEST(float16, arithmetic_cpu) { EXPECT_EQ(float(float16(2) + float16(2)), 4); }
75-
76-
TEST(float16, comparison_cpu) { EXPECT_TRUE(float16(1.0f) > float16(0.5f)); }
7747

7848
} // namespace paddle

0 commit comments

Comments
 (0)