我想为机器学习建立一个开发环境,需要支持 GPU 的 TensorFlow。我有一台支持 Nvidia Cuda 的 Quadro K4200,计算能力为 3.0。
我按照如下方式设置环境:https://www.tensorflow.org/install/gpu
nvidia-smi 2019 年 9 月 13 日星期五 12:26:47
+----------------------------------------------------------------------------+ | NVIDIA-SMI 430.26 驱动程序版本:430.26 CUDA 版本:10.2 | |----------------------------------------------+----------------------+-------------------------------------+ | GPU 名称 Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | 风扇温度 Perf Pwr:使用情况/容量| 内存使用情况 | GPU-Util Compute M. | |==================================+==========================+==========================| | 0 Quadro K4200 关闭 | 00000000:04:00.0 开启 | N/A | | 30% 39C P8 17W / 110W | 243MiB / 4028MiB | 1% 默认 | +-------------------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+ | 进程:GPU 内存 | | GPU PID 类型 进程名称 用法 | |=================================================================================| | 0 1843 G /usr/lib/xorg/Xorg 34MiB | | 0 1877 G /usr/bin/gnome-shell 6MiB | | 0 4057 G /usr/lib/xorg/Xorg 103MiB | | 0 4193 G /usr/bin/gnome-shell 91MiB | | 0 4867 G /usr/lib/firefox/firefox 2MiB | +-----------------------------------------------------------------------------+
尝试 GPU 支持是否有效:$python3
$导入 TensorFlow 作为 TF
$sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
我得到这个作为输出:
I tensorflow/core/platform/cpu_feature_guard.cc:142] 您的 CPU 支持此 TensorFlow 二进制文件未编译为使用的指令:AVX2 FMA 2019-09-13 12:28:32.878677:I tensorflow/stream_executor/platform/default/dso_loader.cc:42] 成功打开动态库 libcuda.so.1 2019-09-13 12:28:32.937236:I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1005] 成功从 SysFS 读取 NUMA 节点,结果为负值(-1),但必须至少有一个 NUMA 节点,因此返回 NUMA 节点零 2019-09-13 12:28:32.937662:I tensorflow/compiler/xla/service/platform_util.cc:197] StreamExecutor cuda 设备 (0) 计算能力不足:需要 3.5,设备为 3.0 2019-09-13 12:28:32.937836:F tensorflow/stream_executor/lib/statusor.cc:34] 尝试获取值而不是处理错误内部:未找到平台 CUDA 支持的设备已中止(核心转储)
我该怎么做才能解决这个问题?如果我以某种方式降级到 Cuda9,是否可以解决问题?
答案1
看起来这个问题与较旧的 Nvidia 卡有关。你可能需要自己编译 TensorFlow:使用 CUDA 计算能力 3.0 支持编译 TensorFlow。针对这个问题,还有一些其他的建议:https://stackoverflow.com/questions/33651810/the-minimum-required-cuda-capability-is-3-5