作业可以在 CPU 上成功完成,但没有使用 GPU 当我在 JupyterNotebook 中执行代码时,Jupyter 的控制台显示错误消息:调用 cuInit 失败:CUDA_ERROR_NOT_INITILIZED:初始化错误。
以下是硬件和软件信息:
- 操作系统:我尝试在 Ubuntu180403 ppc64le 和 RHEL76 中运行代码, 任何操作系统都无法在 GPU 上运行作业
- 库达 : 10.1.243
- 显卡驱动程序:418.87.00
- CUDA 工具包 : 10.1
- TensorFlow:14.01a,实际上它包含在IBM powerai CE 1.6.1中 。
- 硬件: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(初始化错误"?。
一些可能性:
-
在运行代码之前,您能否确认 GPU 是否正在使用(或可用(?
-
您是否有权提交使用 GPU 运行的作业(如果您的设置基于基于作业的系统(?