Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

機械学習 (Machine Learning)

Tensorflowで「Could not load dynamic library ‘cudart64_110.dll’」が出る原因と対処

投稿日:2022年9月14日 更新日:

 

<目次>

(1) Tensorflowで「Could not load dynamic library ‘cudart64_110.dll’」が出る原因と対処
 (1-1) 事象
 (1-2) 原因
 (1-3) 対策
 (1-4) 参考:CUDAとは?

(1) Tensorflowで「Could not load dynamic library ‘cudart64_110.dll’」が出る原因と対処

(1-1) 事象

「pip install tensorflow」を実行後、下記の簡単なコードを疎通しようとした所、後述のメッセージが発生

import tensorflow as tf
def main():

    print("Hello")

if __name__ == "__main__":
    main()
(警告/エラーメッセージ)
YYYY-MM-DD 21:04:26.061014: W_tensorflow_stream_executor_platform_default_dso_loader_cc_64] Could_not_load_dynamic library_cudart64_110_dll'; dlerror: cudart64_110.dll not found

YYYY-MM-DD 21:04:26.061295: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
(図111)

(1-2) 原因

・バージョン2.1以降のTensorflow(以降TF)は、pipからダウンロードできる標準のtensorflowパッケージにはCPU版とGPU版の両方が含まれるようになっています。
 
・①バージョン2.1より前のTFの場合
CUDAライブラリを探して見つからない場合は「エラーと例外」を出力します。
 
・②バージョン2.1以降のTFの場合
正しいCUDAのバージョンを動的に探し、見つからない場合は「警告」を出力し、CPUのみのモードに戻ります。
⇒今回のケースはこちらに該当します。
 
※メッセージの中で出る「W」は警告(Warning)、「E」はエラー(Error)、「F」は致命的なエラー(Fatal Error)の意味

(1-3) 対策

●(ケース1)GPUアクセラレータを使わない場合

・ご自身のマシンが「CUDAが有効化されたGPU」を搭載していない場合や、「GPUアクセラレーション」(計算量の多いタスクをCPU⇒GPUにシフトして加速)が不要な場合
→特に対処は不要です。

(参考)

どうしても警告を消したい場合はTFのログレベルを変更して「警告を抑制」する事も可能ですが、全ての警告を止めてしまうため、余り推奨ではありません。
・ログレベルの変更は、以下のコードを利用して実施可能です。

(例)

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 
(図131)

●(ケース2)GPUアクセラレータを使う場合

・一方で、TFを導入して「GPUアクセラレーション」をしたい場合、まずはご自身のCUDAのインストールを確認してみるのが第一ステップとなります(例:Tensorflow 2.1はCUDA 10.1を使用)
・ここでは詳しくは紹介しませんが、もしCUDAを導入する場合、ざっくり以下のような手順になります。
 
(手順概要)
・①GPUドライバーのインストール
・②CUDAのインストール
・③cuDNNのインストール
→NVIDIA開発者プログラムへのサインアップが必要
→適当な場所に解凍し、binフォルダをパスに追加
・④tensorflowのインストール
↓ 
・⑤PCの再起動
 

(1-4) 参考:CUDAとは?

・Compute Unified Architectureの略。
・GPU向けの、並列コンピューティングプラットフォーム(開発・実行環境)である
・GPUはCPUよりも断然多くのコアを搭載しており、大量のタスクを並列実行できる(CPUは逐次実行)
・NVIDIA社が自社製のGPU向けに開発・提供している。
 
(参考)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-機械学習 (Machine Learning)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

tensorflowのmatmulの使い方について(次元別の仕様やnumpy.matmulとの違いを整理)

  <目次> (1) tensorflowのmatmulの使い方について(次元別の仕様やnumpy.matmulとの違いを整理)  (1-1) tensorflow.matmulの次元別の挙 …

確率的勾配降下法(SGD)をロジスティック回帰に適用しPythonで実装した例をご紹介

  <目次> (1) 確率的勾配降下法(SGD)をロジスティック回帰に適用しPythonで実装した例をご紹介  (1-1) (課題)「勾配降下法」が抱える課題  (1-2) (対策)確率的勾 …

no image

ソフトマックス関数とは?ロジスティック回帰との関係性もご紹介

<目次> (1) ソフトマックス関数とは?ロジスティック回帰との関係性もご紹介  (1-1) 目的  (1-2) ソフトマックス関数とは?  (1-3) ソフトマックス関数の特徴  (1-4) ソフト …

no image

numpy.dotの使い方について(次元別の仕様を整理)

  <目次> (1) numpy.dotの使い方について(次元別の仕様を整理)  (1-1) numpy.dotの次元別の挙動  (1-2) numpy.dotの次元別の挙動(詳細)  (1 …

no image

TensorFlowで「AttributeError: module ‘tensorflow’ has no attribute ‘xxxxxx’」が出た時の原因と対策について

  <目次> (1) TensorFlowで「AttributeError: module ‘tensorflow’ has no attribute ‘xxxxx …

  • English (United States)
  • 日本語
Top