Skip to content

Commit 15a0ebf

Browse files
bors[bot]darsnack
andauthored
Merge #1505
1505: Add Parallel GPU tests r=DhairyaLGandhi a=darsnack Adds GPU tests for Parallel layer ### PR Checklist - [x] Tests are added - [ ] ~~Entry in NEWS.md~~ - [ ] ~~Documentation, if applicable~~ - [ ] ~~Final review from `@dhairyagandhi96` (for API changes).~~ Co-authored-by: Kyle Daruwalla <daruwalla@wisc.edu> Co-authored-by: Kyle Daruwalla <daruwalla.k.public@icloud.com>
2 parents 4c53672 + 3ea6931 commit 15a0ebf

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

test/cuda/layers.jl

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,4 +191,31 @@ end
191191
for (pgpu, pcpu) in zip(params(b), params(b_cpu))
192192
@test gs_cpu[pcpu] Array(gs_gpu[pgpu])
193193
end
194-
end
194+
end
195+
196+
@testset "Parallel" begin
197+
@testset "zero sum" begin
198+
input = randn(10, 10, 10, 10) |> gpu
199+
layer_gpu = Parallel(+, zero, identity) |> gpu
200+
@test layer_gpu(input) == input
201+
@test layer_gpu(input) isa Flux.CUDA.CuArray
202+
end
203+
204+
@testset "vararg input" begin
205+
inputs = (randn(10), randn(5), randn(4)) .|> gpu
206+
layer = Parallel(+, Dense(10, 2), Dense(5, 2), Dense(4, 2)) |> gpu
207+
@test size(layer(inputs)) == (2,)
208+
end
209+
210+
@testset "gradient" begin
211+
input_cpu = randn(10, 10, 10, 10)
212+
input_gpu = input_cpu |> gpu
213+
layer_cpu = Parallel(+, x -> zero(x), identity)
214+
layer_gpu = layer_cpu |> gpu
215+
gs_cpu = gradient(() -> sum(abs2.(layer_cpu(input_cpu))), params(layer_cpu))
216+
gs_gpu = gradient(() -> sum(abs2.(layer_gpu(input_gpu))), params(layer_gpu))
217+
for (pgpu, pcpu) in zip(params(layer_cpu), params(layer_gpu))
218+
@test gs_cpu[pcpu] gs_gpu[pgpu]
219+
end
220+
end
221+
end

0 commit comments

Comments
 (0)