2017-03-15 18 views
-1

시스템과 K80에 대한 올바른 무료 VRAM을보고하지보고 : 우분투 5.1 cudnn 16.04.2 , CUDA 8.0Theano/Chainer는 12기가바이트 RAM

가 나는 theano 자식 (최신 버전)에서 설치했습니다.

https://github.com/yusuketomoto/chainer-fast-neuralstyle/tree/resize-conv에서 generate 샘플을 실행하면 CPU 또는 GPU 사용 여부를 메모리 부족으로보고합니다.

python generate.py sample_images/tubingen.jpg -m models/composition.model -o sample_images/output.jpg -g 0 

WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10). Please switch to the gpuarray backend. You can get more information about how to switch at this URL: 
https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29 

/home/ubuntu/Theano/theano/sandbox/cuda/__init__.py:558: UserWarning: Theano flag device=gpu* (old gpu back-end) only support floatX=float32. You have floatX=float64. Use the new gpu back-end with device=cuda* for that value of floatX. 
    warnings.warn(msg) 
Using gpu device 0: Tesla K80 (CNMeM is enabled with initial size: 95.0% of memory, cuDNN 5105) 
Traceback (most recent call last): 
    File "generate.py", line 45, in <module> 
    y = model(x) 
    File "/home/ubuntu/chainer-fast-neuralstyle/net.py", line 56, in __call__ 
    h = F.relu(self.b2(self.c2(h), test=test)) 
    File "/usr/local/lib/python2.7/dist-packages/chainer/links/connection/convolution_2d.py", line 108, in __call__ 
    deterministic=self.deterministic) 
    File "/usr/local/lib/python2.7/dist-packages/chainer/functions/connection/convolution_2d.py", line 326, in convolution_2d 
    return func(x, W, b) 
    File "/usr/local/lib/python2.7/dist-packages/chainer/function.py", line 199, in __call__ 
    outputs = self.forward(in_data) 
    File "/usr/local/lib/python2.7/dist-packages/chainer/function.py", line 310, in forward 
    return self.forward_gpu(inputs) 
    File "/usr/local/lib/python2.7/dist-packages/chainer/functions/connection/convolution_2d.py", line 90, in forward_gpu 
    y = cuda.cupy.empty((n, out_c, out_h, out_w), dtype=x.dtype) 
    File "/usr/local/lib/python2.7/dist-packages/cupy/creation/basic.py", line 19, in empty 
    return cupy.ndarray(shape, dtype=dtype, order=order) 
    File "cupy/core/core.pyx", line 88, in cupy.core.core.ndarray.__init__ (cupy/core/core.cpp:6333) 
    File "cupy/cuda/memory.pyx", line 280, in cupy.cuda.memory.alloc (cupy/cuda/memory.cpp:5988) 
    File "cupy/cuda/memory.pyx", line 431, in cupy.cuda.memory.MemoryPool.malloc (cupy/cuda/memory.cpp:9256) 
    File "cupy/cuda/memory.pyx", line 447, in cupy.cuda.memory.MemoryPool.malloc (cupy/cuda/memory.cpp:9162) 
    File "cupy/cuda/memory.pyx", line 342, in cupy.cuda.memory.SingleDeviceMemoryPool.malloc (cupy/cuda/memory.cpp:7817) 
    File "cupy/cuda/memory.pyx", line 368, in cupy.cuda.memory.SingleDeviceMemoryPool.malloc (cupy/cuda/memory.cpp:7592) 
    File "cupy/cuda/memory.pyx", line 260, in cupy.cuda.memory._malloc (cupy/cuda/memory.cpp:5930) 
    File "cupy/cuda/memory.pyx", line 261, in cupy.cuda.memory._malloc (cupy/cuda/memory.cpp:5851) 
    File "cupy/cuda/memory.pyx", line 35, in cupy.cuda.memory.Memory.__init__ (cupy/cuda/memory.cpp:1772) 
    File "cupy/cuda/runtime.pyx", line 207, in cupy.cuda.runtime.malloc (cupy/cuda/runtime.cpp:3429) 
    File "cupy/cuda/runtime.pyx", line 130, in cupy.cuda.runtime.check_status (cupy/cuda/runtime.cpp:2241) 
cupy.cuda.runtime.CUDARuntimeError: cudaErrorMemoryAllocation: out of memory 

-

import theano.sandbox.cuda.basic_ops as sbcuda 
sbcuda.cuda_ndarray.cuda_ndarray.mem_info() 
(500105216L, 11995578368L) 

을 -

lspci -vvv |grep -i -A 20 nvidia 
00:04.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1) 
Subsystem: NVIDIA Corporation GK210GL [Tesla K80] 
Physical Slot: 4 
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- 
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- 
Latency: 0 
Interrupt: pin A routed to IRQ 11 
Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M] 
Region 1: Memory at 400000000 (64-bit, prefetchable) [size=16G] 
Region 3: Memory at 800000000 (64-bit, prefetchable) [size=32M] 
Region 5: I/O ports at c000 [size=128] 
Capabilities: <access denied> 
Kernel driver in use: nvidia 
Kernel modules: nvidia_375_drm, nvidia_375 

은 그 숫자는 무엇을 의미 정확히 무엇입니까? Theano/Chainer는 ~ 500MB VRAM에만 액세스 할 수 있습니까?

+0

GPU에 메모리를 사용하는 "좀비"할당이 있거나 GPU에서 메모리를 사용하는 다른 프로세스가있을 수 있습니다. 모든 것이 이상하게 보일 경우,'nvidia-smi'의 출력을 검사하거나 시스템을 재부팅하고 테스트를 다시 실행하여 메모리의 대부분이 사용 가능한지 확인할 수 있습니다. –

+0

나는 theano를 완전히 제거하여 문제를 해결할 수있었습니다. 왜 체인저 가져 오기가 theano 경고를 표시하는지 혼란 스러웠지만, 그렇게하고있었습니다. theano를 제거하면 chainer 스크립트가 작동 할 수있었습니다. – Chris

답변

0

나는 완전히 theano를 제거하여 문제를 해결할 수있었습니다. 왜 체인저 가져 오기가 theano 경고를 표시하는지 혼란 스러웠지만, 그렇게하고있었습니다. theano를 제거하면 chainer 스크립트가 작동 할 수있었습니다.