PC環境の違いによるGPUメモリ使用量の差に関して

2,280 views
Skip to first unread message

kmsh...@gmail.com

unread,
Nov 8, 2015, 9:14:30 PM11/8/15
to Chainer User Group
日本語で失礼致します。

ChainerのGPUメモリ使用量に関してです。

現在、複数のPCにChainerをセットアップし動作の確認をしております。
その際にCNNを用いているのですが、同一GPU,同一ソフトウェア構成のPCで
同一のプログラムを実行したところ、GPUメモリの使用量に大きく差があるという事象が発生しました。

そのため、あるPCで動いたプログラムが別PCではメモリ不足で以下の様なエラーを出す場合があります。

Traceback (most recent call last):
(中略)
    h = self.conv1(x)
  File "/home/user/anaconda/lib/python2.7/site-packages/chainer/function.py", line 174, in __call__
    outputs = self.forward(in_data)
  File "/home/user/anaconda/lib/python2.7/site-packages/chainer/function.py", line 236, in forward
    return self.forward_gpu(inputs)
  File "/home/user/anaconda/lib/python2.7/site-packages/chainer/functions/connection/convolution_2d.py", line 222, in forward_gpu
    y_mats[i] = W_mat.dot(col_mats[i])
  File "/home/user/anaconda/lib/python2.7/site-packages/cupy/__init__.py", line 1039, in dot
    return dot(self, b, out)
  File "/home/user/anaconda/lib/python2.7/site-packages/cupy/linalg/product.py", line 72, in dot
    return _tensordot_core(a, b, out, n, m, k, ret_shape)
  File "/home/user/anaconda/lib/python2.7/site-packages/cupy/linalg/product.py", line 305, in _tensordot_core
    handle = cuda.Device().cublas_handle
  File "/home/user/anaconda/lib/python2.7/site-packages/cupy/cuda/device.py", line 97, in cublas_handle
    handle = cublas.create()
  File "/home/user/anaconda/lib/python2.7/site-packages/cupy/cuda/cublas.py", line 73, in create
    check_status(status)
  File "/home/user/anaconda/lib/python2.7/site-packages/cupy/cuda/cublas.py", line 60, in check_status
    raise CUBLASError(status)
raise CUBLASError(status)
cupy.cuda.cublas.CUBLASError: CUBLAS_STATUS_NOT_INITIALIZED
Exception cupy.cuda.driver.CUDADriverError: CUDADriverError('CUDA_ERROR_ILLEGAL_ADDRESS: an illegal memory access was encountered',) in <bound method Module.__del__ of <cupy.cuda.module.Module object at 0x7ff75acf9e90>> ignored
(後略)


実行環境は以下となります。

使用GPU:
    Titan X
PC間の差異:
    チップセット:PC_1:X99
          PC_2:Z170
    他、メモリやCPUはほぼ同等
ソフトウェアバージョン:
    Ubuntu 14.04
    Chainer 1.3.2
             CUDA 7.5
使用したネットワーク:
    5層CNN,
    画像サイズ:150前後
    Batch数:約100000

GPUメモリ使用量:
    minibatch数:20の場合
        PC_1: 約6GB
        PC_2: 約1GB
    minibatch数:100の場合
        PC_1: メモリエラーで落ちるため計測不能
        PC_2: 約6GB

MNISTサンプルプログラムではGPUメモリ使用量はPC_1で190MB,PC_2で183MBと、大きくは変わりませんでした。
また、GPUメモリ使用量が使用可能範囲に収まっていれば正常に計算でき、結果もPC間で同等になっていることは確認しております。

現状十分な確認・検証が出来ていないためChainer依存の問題ではない可能性も高く恐縮ですが、
同一プログラムが環境により大きくメモリ使用量が変わるということは起こりえるでしょうか。
Reply all
Reply to author
Forward
0 new messages