我正在尝试在具有集成和独立显卡的计算机上的集成Intel GPU上运行TensorFlow。
user@host:~$ lscpu | grep "Model name"
Model name: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
当我运行TensorFlow的脚本来检查设备列表时
from tensorflow.python.client import device_lib
def get_available_gpus():
local_device_protos = device_lib.list_local_devices()
return [x.name for x in local_device_protos]
print(get_available_gpus())
我正在关注结果
18:30:21.335442: E tensorflow/stream_executor/cuda/cuda_driver.cc:397] failed call to cuInit: CUDA_ERROR_UNKNOWN
18:30:21.335465: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:145] kernel driver does not appear to be running on this host (host): /proc/driver/nvidia/version does not exist
['/device:CPU:0', '/device:XLA_CPU:0', '/device:XLA_GPU:0']
我想这可能与OpenCL的某些问题有关,因为当我运行clinfo时我会得到
user@host:~$ clinfo
Number of platforms 0
user@host:~$ ls /etc/OpenCL/vendors/
intel.icd nvidia.icd
另一件事是,当我运行一些示例测试应用程序时,我在网上找到了
#include "CL/cl.h"
#include <stdio.h>
int main()
{
cl_platform_id pid;
cl_uint num;
cl_uint n=1;
cl_int error=clGetPlatformIDs(1,&pid,&num);
printf("Error code= %d\nNo. of platforms= %d",error,num);
getchar();
}
我正在获取错误代码--1001和0平台。我发现这可能意味着我需要安装驱动程序,但是据我了解,/etc/OpenCL/vendors/
我已经安装了它们。
在我拥有的PRIME个人资料中
user@host:~$ sudo prime-select query
[sudo] password for user:
intel
切换到nvidia clinfo以及TensorFlow都可以正常工作。
我正在运行Ubuntu 18.04 LTS
user@host:~$ uname -a
Linux host 4.15.0-30-generic #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
我认为可能对调试有用的其他信息是,我正在远程操作这台计算机,而没有直接连接任何显示器。
我真的很感谢任何建议,可以解决TensorFlow和clinfo问题。