@@ -22,114 +22,40 @@ void testCosSimForward(size_t height_x,
22
22
size_t height_y,
23
23
size_t width,
24
24
real scale) {
25
- FunctionCompare compare (" CosSimForward" , FuncConfig ().set (" scale" , scale));
26
-
27
- CpuMatrix cpu_arg1 (height_x, width);
28
- CpuMatrix gpu_arg1 (height_x, width);
29
- CpuMatrix cpu_arg2 (height_y, width);
30
- CpuMatrix gpu_arg2 (height_y, width);
31
- cpu_arg1.randomizeUniform ();
32
- gpu_arg1.copyFrom (cpu_arg1);
33
- cpu_arg2.randomizeUniform ();
34
- cpu_arg2.add (-0.5 );
35
- gpu_arg2.copyFrom (cpu_arg2);
36
- CpuMatrix cpu_out (height_x, 1 );
37
- GpuMatrix gpu_out (height_x, 1 );
38
-
39
- BufferArgs cpu_inputs;
40
- BufferArgs cpu_outputs;
41
- cpu_inputs.addArg (cpu_arg1);
42
- cpu_inputs.addArg (cpu_arg2);
43
- cpu_outputs.addArg (cpu_out, ASSIGN_TO);
44
-
45
- BufferArgs gpu_inputs;
46
- BufferArgs gpu_outputs;
47
- gpu_inputs.addArg (gpu_arg1);
48
- gpu_inputs.addArg (gpu_arg2);
49
- gpu_outputs.addArg (gpu_out, ASSIGN_TO);
50
-
51
- compare.getCpuFunction ()->calc (cpu_inputs, cpu_outputs);
52
- compare.getGpuFunction ()->calc (gpu_inputs, gpu_outputs);
53
-
54
- autotest::TensorCheckErr (cpu_out, gpu_out);
55
- }
56
-
57
- TEST (Matrix, cosSimForward) {
58
- for (auto height_x : {10 , 100 , 1000 }) {
59
- for (auto height_y : {1 , height_x}) {
60
- for (auto width : {10 , 100 , 1000 }) {
61
- for (auto scale : {1.0 , 2.0 }) {
62
- testCosSimForward (height_x, height_y, width, scale);
63
- }
64
- }
65
- }
66
- }
25
+ FunctionCompare test (" CosSimForward" , FuncConfig ().set (" scale" , scale));
26
+ // prepare input arguments
27
+ test.addInputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_x, width}));
28
+ test.addInputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_y, width}));
29
+ test.addOutputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_x, 1 }),
30
+ ASSIGN_TO);
31
+ // run Function
32
+ test.run ();
67
33
}
68
34
69
35
void testCosSimBackward (size_t height_x,
70
36
size_t height_y,
71
37
size_t width,
72
38
real scale) {
73
- FunctionCompare compare (" CosSimBackward" , FuncConfig ().set (" scale" , scale));
74
-
75
- CpuMatrix cpu_out_grad (height_x, 1 );
76
- CpuMatrix cpu_out_val (height_x, 1 );
77
- CpuMatrix cpu_in1_val (height_x, width);
78
- CpuMatrix cpu_in2_val (height_x, width);
79
- CpuMatrix cpu_in1_grad (height_x, width);
80
- CpuMatrix cpu_in2_grad (height_x, width);
81
-
82
- cpu_out_grad.randomizeUniform ();
83
- cpu_out_val.randomizeUniform ();
84
- cpu_in1_val.randomizeUniform ();
85
- cpu_in2_val.randomizeUniform ();
86
- cpu_in1_grad.randomizeUniform ();
87
- cpu_in2_grad.randomizeUniform ();
88
-
89
- GpuMatrix gpu_out_grad (height_x, 1 );
90
- GpuMatrix gpu_out_val (height_x, 1 );
91
- GpuMatrix gpu_in1_val (height_x, width);
92
- GpuMatrix gpu_in2_val (height_x, width);
93
- GpuMatrix gpu_in1_grad (height_x, width);
94
- GpuMatrix gpu_in2_grad (height_x, width);
95
-
96
- gpu_out_grad.copyFrom (cpu_out_grad);
97
- gpu_out_val.copyFrom (cpu_out_val);
98
- gpu_in1_val.copyFrom (cpu_in1_val);
99
- gpu_in2_val.copyFrom (cpu_in2_val);
100
- gpu_in1_grad.copyFrom (cpu_in1_grad);
101
- gpu_in2_grad.copyFrom (cpu_in2_grad);
102
-
103
- BufferArgs cpu_inputs;
104
- BufferArgs cpu_outputs;
105
- cpu_inputs.addArg (cpu_out_grad);
106
- cpu_inputs.addArg (cpu_out_val);
107
- cpu_inputs.addArg (cpu_in1_val);
108
- cpu_inputs.addArg (cpu_in2_val);
109
- cpu_outputs.addArg (cpu_in1_grad, ADD_TO);
110
- cpu_outputs.addArg (cpu_in2_grad, ADD_TO);
111
-
112
- BufferArgs gpu_inputs;
113
- BufferArgs gpu_outputs;
114
- gpu_inputs.addArg (gpu_out_grad);
115
- gpu_inputs.addArg (gpu_out_val);
116
- gpu_inputs.addArg (gpu_in1_val);
117
- gpu_inputs.addArg (gpu_in2_val);
118
- gpu_outputs.addArg (gpu_in1_grad, ADD_TO);
119
- gpu_outputs.addArg (gpu_in2_grad, ADD_TO);
120
-
121
- compare.getCpuFunction ()->calc (cpu_inputs, cpu_outputs);
122
- compare.getGpuFunction ()->calc (gpu_inputs, gpu_outputs);
123
-
124
- autotest::TensorCheckErr (cpu_in1_grad, gpu_in1_grad);
125
- autotest::TensorCheckErr (cpu_in2_grad, gpu_in2_grad);
39
+ FunctionCompare test (" CosSimBackward" , FuncConfig ().set (" scale" , scale));
40
+ // prepare input arguments
41
+ test.addInputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_x, 1 }));
42
+ test.addInputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_x, 1 }));
43
+ test.addInputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_x, width}));
44
+ test.addInputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_y, width}));
45
+ test.addOutputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_x, width}),
46
+ ADD_TO);
47
+ test.addOutputs (BufferArg (VALUE_TYPE_FLOAT, TensorShape{height_y, width}),
48
+ ADD_TO);
49
+ // run Function
50
+ test.run ();
126
51
}
127
52
128
- TEST (Matrix, cosSimBackward ) {
129
- for (auto height_x : {1 , 10 , 100 }) {
53
+ TEST (Matrix, cosSim ) {
54
+ for (auto height_x : {10 , 100 , 1000 }) {
130
55
for (auto height_y : {1 , height_x}) {
131
- for (auto width : {1 , 10 , 100 }) {
56
+ for (auto width : {10 , 100 , 1000 }) {
132
57
for (auto scale : {1.0 , 2.0 }) {
58
+ testCosSimForward (height_x, height_y, width, scale);
133
59
testCosSimBackward (height_x, height_y, width, scale);
134
60
}
135
61
}
0 commit comments