2017-12-27 12 views
0

은 이전 버전과 호환되지만 CUDA를 설치하고 TF와 가상 환경을 설정하는 전체 과정을 거쳐이 때 import tensorflowTensorflow 및 CUDA 버전

ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory 

을 발생하는 분명히 Tensorflow가 CUDA 8.0을 찾고 있지만 CUDA가 없기 때문에 CUDA 8.0을 찾지 못한다는 것을 의미합니다. 그러나 CUDA가 이전 버전과 호환되는 이유는 무엇입니까? 그러한 인기있는 라이브러리가 설치 지침에서 다소 모호하다는 점은 상당히 놀라운 일입니다. 그래서 여기 누군가가 지식을 얻을 수 있기를 바랍니다.

CUDA 8.0을 설치하는 데 문제가 없지만 옵션이 아니어도 NVIDIA 웹 사이트에서만 최신 버전을 다운로드 할 수 있습니다. 이것에 대한 해결책은 무엇입니까?

+1

이진 하위 호환이 아닙니다. 모든 것은 버전이 지정되어 있으며 주어진 런타임 API 버전과 공유 라이브러리에 대해 빌드 된 모든 버전에는 해당 버전이 설치되어 있거나 작동하도록 라이브러리가 배포되어 있어야합니다. – talonmies

+2

tensorflow https://www.tensorflow.org를 설치하는 문서는 다음과 같습니다./install /와 다른 버전의 cuda를 다운로드하려면 https://developer.nvidia.com/cuda-toolkit-archive –

답변

2

libcublas.so.8.0과 같은 CUDA 라이브러리에 링크 된 바이너리가있는 경우 다음과 같은 다른 라이브러리를 대체하여 shared-object-dynamic-load-time에서 요구 사항을 충족시킬 수 없습니다. libcublas.so.9.0. CUDA는 특정 종류의 순방향/역방향 호환성을 가지고 있지만 이것은 그 중 하나가 아닙니다. 코드가 링크 된 정확한 라이브러리를 제공해야합니다.

이전 라이브러리를 사용할 수 있도록 이전 CUDA 툴킷 버전에 액세스하려는 경우 해당 CUDA 툴킷 버전은 일반적으로 CUDA 툴킷 아카이브 페이지 here에서 사용할 수 있습니다.

이미 새로운 CUDA 툴킷이로드되어 제대로 작동한다면 이전 툴킷을로드하고 설치된 GPU 드라이버를 업데이트/수정하지 않고 사용할 수 있어야합니다.

실제적으로 새로운 라이브러리를 사용할 수 있도록이 문제를 해결하려면 사용중인 코드/바이너리를 다시 링크해야합니다.