我试图通过Tensorflow运行示例seq2seq,但它不会使用GPU。以下是我在使用Tesla K20x的Linux系统上安装Tensorflow的步骤
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
./configure # Yes GPU
bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu # The GPU is being used)
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
完成所有这一步后,我安装了tensorflow。然后我尝试通过
运行seq2seq示例bazel run -c opt //tutorials/models/rnn/translate:translate
但它不会使用GPU。然后我尝试了这个例子
bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
并且它给出了错误
bazel-bin/tensorflow/cc/tutorials_example_trainer: error while loading shared libraries: /path/to/home/.cache/bazel/_bazel_hduong/9e8a6e75473e7bf5c9d1c8a084e2a0e9/tensorflow/bazel-out/local_linux-opt/bin/tensorflow/cc/../../_solib_local/_U_S_Sthird_Uparty_Sgpus_Scuda_Ccudart___Uthird_Uparty_Sgpus_Scuda_Slib64/libcudart.so.7.0: file too short
想知道是否有人知道什么可能导致程序不使用GPU?任何帮助表示赞赏。
谢谢。
答案 0 :(得分:5)
问题似乎是当您bazel run
翻译示例时,它会在没有GPU支持的情况下进行重建。尝试将--config=cuda
添加到bazel run
命令,如下所示:
$ bazel run -c opt --config=cuda //tensorflow/models/rnn/translate:translate
如果没有此选项,Bazel将在没有GPU支持的情况下重新编译整个TensorFlow运行时,并在运行示例应用程序时使用此版本。
答案 1 :(得分:1)
它发生,因为cuda没有正确链接。在终端
中输入以下命令 sudo ldconfig /usr/local/cuda/lib64
答案 2 :(得分:1)
我猜你应该用GPU版本安装它
pip install tensorflow-gpu