test cleanup
This commit is contained in:
parent
e68b8765b6
commit
3cfecaa4db
@ -19,8 +19,9 @@ function DropoutDesc(ρ::Real; seed::Integer=0)
|
|||||||
desc = DropoutDesc(d[], states)
|
desc = DropoutDesc(d[], states)
|
||||||
@check ccall((:cudnnSetDropoutDescriptor,libcudnn),cudnnStatus_t,(Ptr{Nothing},Ptr{Nothing},Cfloat,Ptr{Nothing},Csize_t,Culonglong),
|
@check ccall((:cudnnSetDropoutDescriptor,libcudnn),cudnnStatus_t,(Ptr{Nothing},Ptr{Nothing},Cfloat,Ptr{Nothing},Csize_t,Culonglong),
|
||||||
desc,libcudnn_handle[],ρ,states,length(states),seed)
|
desc,libcudnn_handle[],ρ,states,length(states),seed)
|
||||||
finalizer(desc, x ->
|
finalizer(desc) do x
|
||||||
@check ccall((:cudnnDestroyDropoutDescriptor,libcudnn),cudnnStatus_t,(Ptr{Nothing},),x))
|
@check ccall((:cudnnDestroyDropoutDescriptor,libcudnn),cudnnStatus_t,(Ptr{Nothing},),x)
|
||||||
|
end
|
||||||
return desc
|
return desc
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -45,10 +46,10 @@ const RNN_ALGO_PERSIST_DYNAMIC = 2
|
|||||||
# LSTM: [weight, bias] × [input, hidden] × [input, forget, newmem, output]
|
# LSTM: [weight, bias] × [input, hidden] × [input, forget, newmem, output]
|
||||||
|
|
||||||
function params(w::CuVector, input, hidden, n = 1)
|
function params(w::CuVector, input, hidden, n = 1)
|
||||||
slice(offset, shape) = reshape(w[offset+(1:prod(shape))], shape)
|
slice(offset, shape) = reshape(w[offset.+(1:prod(shape))], shape)
|
||||||
wx = slice(0, (input, hidden*n))
|
wx = slice(0, (input, hidden*n))
|
||||||
wh = slice(length(wx), (hidden, hidden*n))
|
wh = slice(length(wx), (hidden, hidden*n))
|
||||||
bias = w[length(wx)+length(wh) + (1:hidden*n)]
|
bias = w[length(wx)+length(wh) .+ (1:hidden*n)]
|
||||||
(wx, wh), bias
|
(wx, wh), bias
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -88,8 +89,9 @@ function RNNDesc{T}(mode::Int, input::Int, hidden::Int; layers = 1) where T
|
|||||||
w = cuzeros(T, rnnParamSize(T, d[], input))
|
w = cuzeros(T, rnnParamSize(T, d[], input))
|
||||||
# TODO: avoid reserve allocation here
|
# TODO: avoid reserve allocation here
|
||||||
rd = RNNDesc{T}(mode, input, hidden, w, params(w, input, hidden, ngates(mode))..., d[])
|
rd = RNNDesc{T}(mode, input, hidden, w, params(w, input, hidden, ngates(mode))..., d[])
|
||||||
finalizer(rd, x ->
|
finalizer(rd) do x
|
||||||
@check ccall((:cudnnDestroyRNNDescriptor,libcudnn),cudnnStatus_t,(Ptr{Nothing},),x))
|
@check ccall((:cudnnDestroyRNNDescriptor,libcudnn),cudnnStatus_t,(Ptr{Nothing},),x)
|
||||||
|
end
|
||||||
return rd
|
return rd
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -26,10 +26,9 @@ x = [1,2,3]
|
|||||||
cx = gpu(x)
|
cx = gpu(x)
|
||||||
@test Flux.crossentropy(x,x) ≈ Flux.crossentropy(cx,cx)
|
@test Flux.crossentropy(x,x) ≈ Flux.crossentropy(cx,cx)
|
||||||
|
|
||||||
# Fails in Pkg.test ffs
|
c = gpu(Conv((2,2),3=>4))
|
||||||
# c = gpu(Conv((2,2),3=>4))
|
l = c(gpu(rand(10,10,3,2)))
|
||||||
# l = c(gpu(rand(10,10,3,2)))
|
Flux.back!(sum(l))
|
||||||
# Flux.back!(sum(l))
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,3 +1,18 @@
|
|||||||
|
# Pkg.test runs with --check_bounds=1, forcing all bounds checks.
|
||||||
|
# This is incompatible with CUDAnative (see JuliaGPU/CUDAnative.jl#98)
|
||||||
|
if Base.JLOptions().check_bounds == 1
|
||||||
|
file = @__FILE__
|
||||||
|
run(```
|
||||||
|
$(Base.julia_cmd())
|
||||||
|
--color=$(Base.have_color ? "yes" : "no")
|
||||||
|
--compiled-modules=$(Bool(Base.JLOptions().use_compiled_modules) ? "yes" : "no")
|
||||||
|
--startup-file=$(Base.JLOptions().startupfile != 2 ? "yes" : "no")
|
||||||
|
--code-coverage=$(["none", "user", "all"][1+Base.JLOptions().code_coverage])
|
||||||
|
$(file)
|
||||||
|
```)
|
||||||
|
exit()
|
||||||
|
end
|
||||||
|
|
||||||
using Flux, Test, Random
|
using Flux, Test, Random
|
||||||
using Random
|
using Random
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user