@@ -93,15 +93,16 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
93
93
mul! (b,At,c,1.0 ,2.0 )
94
94
@test b ≈ 5 A' c
95
95
96
+ expected_transpose_allocs = VERSION < v " 1.5" ? 1 : 0
96
97
@test_noalloc mul! (c,A,b)
97
98
bmark = @benchmark mul! ($ c,$ A,$ b,$ α,$ β) samples= 10 evals= 10
98
99
@test minimum (bmark). allocs == 0
99
100
# @test_noalloc mul!(c, A, b, α, β) # records 32 bytes
100
101
bmark = @benchmark mul! ($ b,Transpose ($ A),$ c) samples= 10 evals= 10
101
- @test minimum (bmark). allocs == 0
102
+ @test minimum (bmark). allocs <= expected_transpose_allocs
102
103
# @test_noalloc mul!(b, Transpose(A), c) # records 16 bytes
103
104
bmark = @benchmark mul! ($ b,Transpose ($ A),$ c,$ α,$ β) samples= 10 evals= 10
104
- @test minimum (bmark). allocs == 0
105
+ @test minimum (bmark). allocs <= expected_transpose_allocs
105
106
# @test_noalloc mul!(b, Transpose(A), c, α, β) # records 48 bytes
106
107
107
108
# outer product
@@ -116,7 +117,7 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
116
117
@test C ≈ 3 a* b'
117
118
118
119
b = @benchmark mul! ($ C,$ a,$ b' ) samples= 10 evals= 10
119
- @test minimum (b). allocs == 0
120
+ @test minimum (b). allocs <= expected_transpose_allocs
120
121
# @test_noalloc mul!(C, a, b') # records 16 bytes
121
122
122
123
# A × B
@@ -144,7 +145,7 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
144
145
@test B ≈ 4 A' C
145
146
146
147
b = @benchmark mul! ($ B,Transpose ($ A),$ C,$ α,$ β) samples= 10 evals= 10
147
- @test minimum (b). allocs == 0
148
+ @test minimum (b). allocs <= expected_transpose_allocs
148
149
# @test_noalloc mul!(B, Transpose(A), C, α, β) # records 48 bytes
149
150
150
151
# A*B'
@@ -157,7 +158,7 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
157
158
@test C ≈ 4 A* B'
158
159
159
160
b = @benchmark mul! ($ C,$ A,Transpose ($ B),$ α,$ β) samples= 10 evals= 10
160
- @test minimum (b). allocs == 0
161
+ @test minimum (b). allocs <= expected_transpose_allocs
161
162
# @test_noalloc mul!(C, A, Transpose(B), α, β) # records 48 bytes
162
163
163
164
# A'B'
@@ -171,15 +172,15 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
171
172
@test C ≈ 4 A' B'
172
173
173
174
b = @benchmark mul! ($ C,Transpose ($ A),Transpose ($ B),$ α,$ β) samples= 10 evals= 10
174
- @test minimum (b). allocs == 0
175
+ @test minimum (b). allocs <= 2 * expected_transpose_allocs
175
176
# @test_noalloc mul!(C, Transpose(A), Transpose(B), α, β) # records 64 bytes
176
177
177
178
# Transpose Output
178
179
C = rand (Mat{N1,N2})
179
180
mul! (Transpose (C),Transpose (A),Transpose (B))
180
181
@test C' ≈ A' B'
181
182
b = @benchmark mul! (Transpose ($ C),Transpose ($ A),Transpose ($ B),$ α,$ β) samples= 10 evals= 10
182
- @test minimum (b). allocs == 0
183
+ @test minimum (b). allocs <= expected_transpose_allocs * 3
183
184
# @test_noalloc mul!(Transpose(C), Transpose(A), Transpose(B), α, β) # records 80 bytes
184
185
end
185
186
0 commit comments