标签: cudnn

在执行Tensorflow或Theano代码期间GPU丢失

当训练两个不同神经网络中的一个时,一个用Tensorflow,另一个用Theano,有时候经过一段随机的时间(可能是几个小时或几分钟,大多数几个小时),执行冻结,我得到这个消息运行"nvidia-smi":

"无法确定GPU 0000:02:00.0的设备句柄:GPU丢失.重新启动系统以恢复此GPU"

我尝试监控GPU性能,执行13个小时,一切看起来都很稳定: 在此输入图像描述

我正在与:

  • Ubuntu 14.04.5 LTS
  • GPU是Nvidia Titan Xp(这种行为在同一台机器上的另一个GPU上重复)
  • CUDA 8.0
  • CuDNN 5.1
  • Tensorflow 1.3
  • Theano 0.8.2

我不确定如何处理这个问题,有人可以提出一些可能导致这种情况以及如何诊断/解决此问题的建议吗?

gpu nvidia cudnn theano-cuda tensorflow-gpu

8
推荐指数
1
解决办法
1302
查看次数

TensorFlow GPU:cudnn可选吗?无法打开CUDA库libcudnn.so

我安装了tensorflow-0.8.0 GPU版本,tensorflow-0.8.0-cp27-none-linux_x86_64.whl.它说它需要CUDA工具包7.5和CuDNN v4.

# Ubuntu/Linux 64-bit, GPU enabled. Requires CUDA toolkit 7.5 and CuDNN v4.  For
# other versions, see "Install from sources" below.
Run Code Online (Sandbox Code Playgroud)

但是,我意外忘记安装CuDNN v4,但除了错误消息"无法打开CUDA库libcudnn.so"之外,它还能正常工作.但它有效,并说,"创建TensorFlow设备(/ gpu:0)".

msg没有CuDNN

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:99] Couldn't open CUDA library libcudnn.so. LD_LIBRARY_PATH: /usr/local/cuda/lib64:
I tensorflow/stream_executor/cuda/cuda_dnn.cc:1562] Unable to load cuDNN DSO
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
('Extracting', 'MNIST_data/train-images-idx3-ubyte.gz')
/usr/lib/python2.7/gzip.py:268: VisibleDeprecationWarning: …
Run Code Online (Sandbox Code Playgroud)

gpu tensorflow cudnn

7
推荐指数
1
解决办法
7278
查看次数

TensorFlow:如何验证它是否在GPU上运行

我正在寻找一种简单的方法来验证我的TF图表实际上是在GPU上运行.

PS.验证cuDNN库是否被使用也是很好的.

gpu tensorflow cudnn

7
推荐指数
2
解决办法
1万
查看次数

首先tf.session.run()的执行与以后的运行截然不同。为什么?

下面是一个示例来阐明我的意思:
First session.run():
TensorFlow会话的首次运行

稍后session.run():
稍后运行TensorFlow会话

我了解TensorFlow在这里进行一些初始化,但是我想知道这在源代码中体现了什么。这在CPU和GPU上都发生,但是在GPU上的影响更为明显。例如,在显式Conv2D操作的情况下,第一次运行在GPU流中具有大量Conv2D操作。实际上,如果我更改Conv2D的输入大小,则它可以从数十个流转换为Conv2D操作。但是,在以后的运行中,GPU流中始终只有五个Conv2D操作(与输入大小无关)。在CPU上运行时,与以后的运行相比,我们在第一次运行中保留了相同的操作列表,但是确实看到了相同的时间差异。

TensorFlow源的哪一部分负责此行为?GPU操作在哪里“分裂”?

谢谢您的帮助!

cublas tensorflow cudnn tensorflow-gpu tensorflow-xla

7
推荐指数
1
解决办法
2347
查看次数

nvcc致命:不支持的gpu架构'compute_20'而cuda 9.1 + caffe + openCV 3.4.0已安装

我安装了CUDA 9.1+cudnn-9.1+opencv 3.4.0+caffe.

当我尝试make all -j8caffe目录中运行时,发生了以下错误:

nvcc致命:不支持的gpu架构'compute_20'

我试图运行:

"cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler .."

但它不起作用.

opencv cuda cmake caffe cudnn

7
推荐指数
1
解决办法
9709
查看次数

编译yolo(暗网)时如何让cmake启用cuda?

我目前正在使用 cmake-gui 在https://github.com/AlexeyAB/darknet.git编译 yolo darknet 。但是,它不会启用 cuda,我还有其他一些奇怪的问题。这些包括当我使用 VS2017 构建它后从 Release 文件夹运行 darknet.exe 时,它​​指出它找不到 pthreadVC2.dll 或 opencv_world410.dll。

为了解决其他问题,我复制了 exe 和那些文件,并将它们全部放在项目的根文件夹中。这似乎有效,但我不确定为什么它不工作。

对于 cuda,我不知道该尝试什么。我有这些系统变量和路径: 系统变量 系统变量路径

这是我的 cmake-gui: cmake1 cmake2

可以看出 CMAKE_CUDA_COMPILER 是 NOTFOUND。我认为这是问题所在,但我不确定为什么找不到它。如果我nvcc -V在命令提示符下运行,它会返回:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018
Cuda compilation tools, release 10.0, V10.0.130
Run Code Online (Sandbox Code Playgroud)

这里也是 cmake 配置的输出:

Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134.
OpenCV ARCH: x64
OpenCV RUNTIME: vc15
OpenCV STATIC: OFF
Found OpenCV 4.1.0 in C:/opencv/build/x64/vc15/lib
You might …
Run Code Online (Sandbox Code Playgroud)

cuda cmake cudnn visual-studio-2017 yolo

7
推荐指数
1
解决办法
6035
查看次数

无法创建 cudnn 句柄:CUDNN 状态内部错误

我正在尝试在 python 3 中创建 machinelearning。但是后来我尝试编译我的代码,我在 Cuda 10.0/cuDNN 7.5.0 中遇到了这个错误,有人可以帮我解决这个问题吗?

RTX 2080

我在:Keras (2.2.4) tf-nightly-gpu (1.14.1.dev20190510)

无法创建 cudnn 句柄:CUDNN_STATUS_INTERNAL_ERROR

代码错误: tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.

这是我的代码:

model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(50, 50, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Flatten())
model.add(Dense(1, activation='softmax'))

model.summary()

model.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['accuracy'])
model.fit(x, y, epochs=1, batch_size=n_batch) …
Run Code Online (Sandbox Code Playgroud)

algorithm cudnn

7
推荐指数
2
解决办法
7222
查看次数

Tensorflow 2.2 GPU - 要安装哪个 cuDNN 库?

我已经成功安装了 CUDA 驱动程序、cuDNN 库和张量流。但是,当运行仅导入tensorflow的测试程序时,我收到错误。该错误似乎表明我安装了错误版本的 cuDNN 库。我希望得到一些帮助。如果我需要降级 cuDNN,我该怎么做?

Tensorflow 版本:2.2 GPU 操作系统:Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-184-generic x86_64) nvcc -V 显示以下信息:

nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17
Run Code Online (Sandbox Code Playgroud)

nvidia-smi 显示以下信息:

Fri Jun 12 17:16:38 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.36.06    Driver Version: 450.36.06    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute …
Run Code Online (Sandbox Code Playgroud)

tensorflow cudnn

7
推荐指数
1
解决办法
9293
查看次数

TensorFlow:如何使用具有可变输入长度的CudnnLSTM(如dynamic_rnn)?

我想加速我的LSTM网络,但是当我将它用于OCR(序列具有可变长度)时,我不能使用普通的LSTM实现.这就是我使用"tf.nn.dynamic_rnn"的原因.

基于张量流中的RNN基准(https://github.com/tensorflow/tensorflow/blob/754048a0453a04a761e112ae5d99c149eb9910dd/tensorflow/contrib/cudnn_rnn/python/kernel_tests/cudnn_rnn_ops_benchmark.py#L77),CUDNN实现用于创建所有模型立刻(它不像其他人那样使用"tf.nn.rnn"结构).我假设可能不可能使用可变长度的CUDNN,但也许任何人都成功了吗?

其次,这是使用"tf.nn.bidirectional_dynamic_rnn",因为我想将Bi-LSTM用于OCR.但是在实施第一部分之后应该解决这个问题.

编辑:看起来"tf.contrib.cudnn_rnn.CudnnLSTM"里面有"双向"实现.所以唯一未知的是CUDNN可以与变量输入序列一起使用.

或许任何使用'CudnnLSTM'的工作示例都会有所帮助.

lstm tensorflow cudnn

6
推荐指数
1
解决办法
7181
查看次数

cudnnRNNForwardTraining seqLength/xDesc用法

假设我有N个序列x [i],每个序列的长度为seqLength [i] 0 <= i <N.据我从cuDNN文档中了解,它们必须按序列长度排序,最长的是第一个,所以假设seqLength [i]> = seqLength [i + 1].假设它们具有特征尺寸D,因此x [i]是2D张量形状(seqLength [i],D).据我所知,我应该准备一个张量x,其中所有的x [i]都是相互连续的,即它的形状(sum(seqLength),D).

按照cuDNN文档,功能cudnnRNNForwardInference/ cudnnRNNForwardTraining获取参数int seqLengthcudnnTensorDescriptor_t* xDesc,其中:

seqLength:展开的迭代次数.

xDesc:张量描述符数组.每个必须具有相同的第二维度.第一维可以从元素n减少到元素n + 1但可以不增加.

我不确定我是否正确理解这一点.是seqLength我的最大值(seqLength)?

并且xDesc是一个数组.什么长度?MAX(seqLength)?如果是这样,我假设它描述了每个帧的一批特征,但是后面的一些帧将具有较少的序列.听起来像第一维中描述了每帧序列的数量.所以:

xDesc[t].shape[0] = len([i for i in range(N) if t < seqLength[i]])
Run Code Online (Sandbox Code Playgroud)

对于所有0 <= t <max(seqLength).即0 <= xDesc[t].shape[0]<= N.

每个xDesc [t]描述多少维度,即什么是len(xDesc [t] .shape)?我假设它是2,第二个维度是特征维度,即D,即:

xDesc[t].shape = (len(...), D)
Run Code Online (Sandbox Code Playgroud)

必须相应地设置步幅,尽管它也不完全清楚.如果x以行主顺序存储,那么

xDesc[0].strides[0] = D * xDesc[0].shape[0]
xDesc[0].strides[1] = 1
Run Code Online (Sandbox Code Playgroud)

但是cuDNN如何计算帧的偏移量 …

cudnn

6
推荐指数
0
解决办法
707
查看次数