在谷歌云培训期间,Tensorflow无法打开CUDA库libcupti.so.8.0

时间:2017-04-02 15:14:50

标签: tensorflow google-cloud-platform google-cloud-ml-engine

我正在尝试在Google Cloud ml引擎上使用Tensorflow训练模型。似乎tensorflow无法访问云计算机器上的libcupti文件,因为LD_LIBRARY_PATH没有指向正确的目录,如下面的日志条目暗示的那样:

lineno: 126    
  message: "Couldn't open CUDA library libcupti.so.8.0.
            LD_LIBRARY_PATH: /usr/local/cuda/lib64"    
levelname: "INFO"    
pathname: "tensorflow/stream_executor/dso_loader.cc"    
created: 1491143889.84344   

据我所知,libcupti文件都在/usr/local/cuda/extras/CUPTI/lib64,所以我需要将它附加到LD_LIBRARY_PATH变量,但是如何通过gcloud ml-engine jobs submit training $JOB_NAME提交作业时这样做命令?或者可能有一个更简单的解决方案?

1 个答案:

答案 0 :(得分:0)

我尝试在谷歌云上使用带有tensorflow的GPU,它对我有用。在我的代码中,我没有做任何GPU特定的设置(也没有用LD_LIBRARY_PATH设置任何东西)

我认为您可以尝试使用简单且标准的张量流代码,并在提交附加配置的作业后,作业应自动使用GPU为您进行计算。

尝试使用以下内容在模块中添加cloudml-gpu.yaml等文件:

trainingInput:
  scaleTier: CUSTOM
  # standard_gpu provides 1 GPU. Change to complex_model_m_gpu for 4 
GPUs
  masterType: standard_gpu
  runtimeVersion: "1.0"

然后添加一个名为--config=trainer/cloudml-gpu.yaml的选项(假设您的训练模块位于名为trainer的文件夹中)。例如:

export BUCKET_NAME=tf-learn-simple-sentiment
export JOB_NAME="example_5_train_$(date +%Y%m%d_%H%M%S)"
export JOB_DIR=gs://$BUCKET_NAME/$JOB_NAME
export REGION=europe-west1

gcloud ml-engine jobs submit training $JOB_NAME \
  --job-dir gs://$BUCKET_NAME/$JOB_NAME \
  --runtime-version 1.0 \
  --module-name trainer.example5-keras \
  --package-path ./trainer \
  --region $REGION \
  --config=trainer/cloudml-gpu.yaml \
  -- \
  --train-file gs://tf-learn-simple-sentiment/sentiment_set.pickle