提交 4fe85f62 authored 作者: Frederic's avatar Frederic

Since GpuAllocEmpty, we allocate less Constant on the gpu. Update affected test

上级 6c3d8e26
...@@ -62,14 +62,15 @@ def test_memory(): ...@@ -62,14 +62,15 @@ def test_memory():
This test can fail if there is other process running on the gpu. This test can fail if there is other process running on the gpu.
""" """
shapes = (200, 100) shapes = (200, 100)
# more_alloc1 and more_alloc2 is not the same for both dtype. # more_alloc1 was different for each dtype in the past.
# more_alloc2 is still currently not the same for both dtype.
# when dtype is float32, the computation is done on the gpu. # when dtype is float32, the computation is done on the gpu.
# This insert constant on the gpu during compilation # This insert constant on the gpu during compilation
# that raise the number of alloc. # that raise the number of alloc.
# When dtype is float64, only the shared is on the gpu and it is transferd # When dtype is float64, only the shared is on the gpu and it is transferd
# to the cpu for computation. So no extra alloc after compilation. # to the cpu for computation. So no extra alloc after compilation.
# more_alloc1 if after the first compilation, more_alloc2 after the second. # more_alloc1 if after the first compilation, more_alloc2 after the second.
for dtype, more_alloc1, more_alloc2 in [("float32", 1, 4), for dtype, more_alloc1, more_alloc2 in [("float32", 0, 3),
("float64", 0, 0)]: ("float64", 0, 0)]:
print(dtype) print(dtype)
test_params = np.asarray(np.random.randn(np.prod(shapes)), dtype) test_params = np.asarray(np.random.randn(np.prod(shapes)), dtype)
...@@ -93,13 +94,13 @@ def test_memory(): ...@@ -93,13 +94,13 @@ def test_memory():
obj = theano.function([some_vector], derp, mode=mode_with_gpu) obj = theano.function([some_vector], derp, mode=mode_with_gpu)
mem3 = freemem() mem3 = freemem()
print("After function compilation 1", mem3) print("After function compilation 1", mem3)
assert mem2_1 == mem3, (mem2_1, mem3) assert mem2_1 == mem3, (mem2_1, mem3, dtype)
grad_derp = tensor.grad(derp, some_vector) grad_derp = tensor.grad(derp, some_vector)
grad = theano.function([some_vector], grad_derp, mode=mode_with_gpu) grad = theano.function([some_vector], grad_derp, mode=mode_with_gpu)
mem4 = freemem() mem4 = freemem()
print("After function compilation 2", mem4) print("After function compilation 2", mem4)
assert mem2_2 == mem4, (mem2_2, mem4) assert mem2_2 == mem4, (mem2_2, mem4, dtype)
for i in range(3): for i in range(3):
obj(test_params) obj(test_params)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论