调用 cuInit 失败:CUDA_ERROR_NOT_INITILIZED:我在 Jupyter 笔记本中执行代码时出现初始化错误,并且 GPU 未被使用



作业可以在 CPU 上成功完成,但没有使用 GPU 当我在 JupyterNotebook 中执行代码时,Jupyter 的控制台显示错误消息:调用 cuInit 失败:CUDA_ERROR_NOT_INITILIZED:初始化错误。

以下是硬件和软件信息:

  1. 操作系统:我尝试在 Ubuntu180403 ppc64le 和 RHEL76 中运行代码, 任何操作系统都无法在 GPU 上运行作业
  2. 库达 : 10.1.243
  3. 显卡驱动程序:418.87.00
  4. CUDA 工具包 : 10.1
  5. TensorFlow:14.01a,实际上它包含在IBM powerai CE 1.6.1中
  6. 硬件:AC922,4 * GPU是英伟达V100

我尝试执行 CNN 训练作业,或者只是尝试通过以下代码查找本地设备,但只列出了 CPU。

from tensorflow.python.client import device_lib as _device_lib
_device_lib.list_local_devices()

Jupyter 笔记本的控制台显示以下错误:

[tensorflow/stream_executor/cuda/cuda_driver.cc:318] 
Failed call to cuInit: CUDA_ERROR_NOT_INITILIZED: initialization error
[tensorflow/stream_executor/cuda/cuda_diagonostics.cc:169] 
Retrieving CUDA diagnostic information for host: powerai
[tensorflow/stream_executor/cuda/cuda_diagonostics.cc:176] 
hostname: powerai 
[tensorflow/stream_executor/cuda/cuda_diagonostics.cc:200] 
libcuda reported version is : 418.87.0
[tensorflow/stream_executor/cuda/cuda_diagonostics.cc:204] 
kernel reported version is : 418.78.0
[tensorflow/stream_executor/cuda/cuda_diagonostics.cc:310] 
kernel version seems to match BSO: 418.87.0

之后,我试图通过运行 CUDA 示例来检查 CUDA 是否良好,CUDA 抛出了浮游错误:

$ sudo ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 3
-> initialization error
Result = FAIL

在 PPC RHEL 上,GPU 使用需要许多配置步骤,记录在产品文档中: *设置乌德夫规则 *英伟达持久化服务的配置

您还可以参考对 NVIDIA GPU 驱动程序问题进行故障排除。

GPU 访问问题也可能由 Nvidia 设备上的 SELinux 设置引起。 尝试暂时关闭 SELinux (setenforce 0(,看看这是否能解决问题。 如果是这样,请运行

restorecon -v -R /usr/
restorecon -v -R /dev/

并再次激活 SELinux,希望这可以解决问题。

最后,在 Power9 系统上存在已知的争用条件,请参阅如何处理 POWER9 系统上的"cudaSuccess(3 与 0(初始化错误"?。

一些可能性:

  1. 在运行代码之前,您能否确认 GPU 是否正在使用(或可用(?

  2. 您是否有权提交使用 GPU 运行的作业(如果您的设置基于基于作业的系统(?

最新更新