web-dev-qa-db-ja.com

tensorflow Mac OS GPUサポート

による

https://www.tensorflow.org/install/install_mac 注:バージョン1.2以降、TensorFlowはMac OS XでGPUサポートを提供しなくなりました。OSXのGPUサポートは提供されなくなりました。

ただし、Thunderbolt 3を介して1080 tiでakitioノードのようなe-gpuセットアップを実行したいと思います。

このセットアップを機能させるにはどのような手順が必要ですか?今まで知っている

が必要です。 CUDA/tensorflowを動作させるには他に何が必要ですか?

27
Georg Heiler

macOSでGPUをサポートするTensorFlow 1.2をコンパイルする について小さなチュートリアルを書きました。関連する部分をSOにコピーするのが慣習だと思うので、ここで説明します。

  1. TensorFlow-GPUセットアップを以前に使用したことがない場合は、まずpip install tensorflow-gpuを実行できるTensorFlow 1.0または1.1ですべてをセットアップすることをお勧めします。 TensorFlowをコンパイルすると、CUDAのセットアップも機能するようになります。外部GPUを使用している場合、YellowPillowの答え(または mine )を使用すると、設定が簡単になります。
  2. 公式チュートリアル「 ソースからのTensorFlowのインストール 」に従いますが、明らかにgit checkout r1.0git checkout r1.2に置き換えてください。 ./configureを実行するときは、Pythonライブラリパスに注意してください。誤ったパスが提案されることがあります。 Pythonライブラリパス、CUDAサポート、計算能力を除くほとんどの場合、デフォルトのオプションを選択しました。 ClangをCUDAコンパイラとして使用しないでください。これにより、「Inconsistent crosstool configuration;」というエラーが表示されます。 CPU 'darwin'の 'local_darwin'に対応するツールチェーンが見つかりません。 /usr/bin/gccをコンパイラとして使用すると、macOS/XCodeに付属のClangが実際に使用されます。以下は私の完全な構成です。
  3. TensorFlow 1.2は、現在のApple Clangでは利用できないOpenMPと呼ばれるCライブラリを期待しています。マルチCPUマシンでマルチスレッドTensorFlowを高速化する必要がありますが、それなしでもコンパイルされます。 gcc 4を使用してTensorFlowをビルドしようとしました(これは管理しませんでした)。または、ビルドファイルからOpenMPを含む行を削除するだけです。私の場合、tensorflow/third_party/gpus/cuda/BUILD.tplの98行目をコメントアウトしました。これはcontained linkopts = [“-lgomp”]です(ただし、行の場所は明らかに変更される可能性があります)。一部の人々 zmuldefsに問題がありました ですが、それは以前のバージョンにあったと思います。これらの行をコメントアウトしてもよいと指摘してくれたudnaanに感謝します。
  4. 最新のbazel 0.5.3でビルドする際に問題が発生したため、すでにインストールした0.4.5を使用することに戻しました。しかし、githubの問題の一部の議論では、bazel 0.5.2にも問題はないと記載されていました。
  5. バゼルでビルドし、公式インストールガイドの指示に従ってインストールを完了します。 3.2 GHz iMacでは、これには約37分かかりました。

pythonライブラリパスの使用:/Users/m/code/3rd/conda/envs/p3gpu/lib/python3.6/site-packages

MKLをサポートするTensorFlowを構築しますか? [y/N] N

TensorFlowのMKLサポートは有効になりません

Bazelオプション "--config = opt"が指定されている場合、コンパイル時に使用する最適化フラグを指定してください[デフォルトは-march = native]:

Google Cloud PlatformサポートでTensorFlowを構築しますか? [y/N]

TensorFlowに対してGoogle Cloud Platformサポートは有効になりません

Hadoop File Systemサポートを使用してTensorFlowを構築しますか? [y/N]

TensorFlowのHadoopファイルシステムサポートは有効になりません

XLAジャストインタイムコンパイラ(実験的)でTensorFlowをビルドしますか? [y/N]

TensorFlowのXLAサポートは有効になりません

VERBSサポートを使用してTensorFlowを構築しますか? [y/N]

TensorFlowのVERBSサポートは有効になりません

OpenCLをサポートするTensorFlowを構築しますか? [y/N]

TensorFlowのOpenCLサポートは有効になりません

CUDAをサポートするTensorFlowを構築しますか? [y/N] y

TensorFlowのCUDAサポートが有効になります

ClangをCUDAコンパイラとして使用しますか? [y/N]

nvccはCUDAコンパイラとして使用されます

使用するCUDA SDKバージョンを指定してください。 7.0。 [システムのデフォルトを使用するには空のままにします]:

CUDAツールキットがインストールされている場所を指定してください。詳細については、README.mdを参照してください。 [デフォルトは/ usr/local/cuda]:

Nvccがホストコンパイラとして使用するgccを指定してください。 [デフォルトは/ usr/bin/gcc]:

使用するcuDNNバージョンを指定してください。 [システムのデフォルトを使用するには空のままにします]:

CuDNNライブラリがインストールされている場所を指定してください。詳細については、README.mdを参照してください。 [デフォルトは/ usr/local/cuda]:

構築するコンマ区切りのCuda計算機能のリストを指定してください。

デバイスのコンピューティング機能は、 https://developer.nvidia.com/cuda-gpus で確認できます。

計算機能を追加するたびに、ビルド時間とバイナリサイズが大幅に増加することに注意してください。

[デフォルト: "3.5,5.2"]:6.1

情報:クリーンを開始しています(これには時間がかかる場合があります)。クリーンアップに数分以上かかる場合は、-asyncの使用を検討してください。

構成が完了しました

23
Mattias Arro

すでにeGPUボックスをセットアップし、eGPUからTB3ポートにTB3ケーブルを接続していると仮定します。

1。 automate-eGPUスクリプトをダウンロードして実行します

curl -o ~/Desktop/automate-eGPU.sh
https://raw.githubusercontent.com/goalque/automate-eGPU/master/automate-eGPU.sh
&& chmod +x ~/Desktop/automate-eGPU.sh && cd ~/Desktop && Sudo
./automate-eGPU.sh

次のエラーが表示される場合があります。

「リカバリパーティションを起動して、csrutil disable」と入力します

ここで必要なのは、コンピューターを再起動し、再起動するときにcmd + Rを押して回復モードを有効にすることです。次に、リカバリモードでターミナルを見つけて、次のように入力します。

csrutil disable

その後、コンピューターを再起動し、automate-eGPU.shスクリプトを再実行します

2:CUDAのダウンロードとインストール

cuda_8.0.61_mac.dmgファイルを実行し、インストールフェーズを進めます。その後、パスを設定する必要があります。

ターミナルに移動して、次を入力します。

vim ~/.bash_profile

または、環境変数を保存してから、次の3行を追加したかどうか:

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$CUDA_HOME/lib:$CUDA_HOME:$CUDA_HOME/extras/CUPTI/lib"
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH

3。 cuDNNのダウンロードとインストール

CuDNNをダウンロードするには、Nvidiaの開発者になるためにサインアップする必要があり、その後ダウンロードできます。 Tensorflow v1.1が期待するものであるため、必ずcuDNN v5.1 Library for OSXをダウンロードしてください。Mac用のGPUサポートがないため、Tensorflow v1.2は使用できないことに注意してください:((

[![ここに画像の説明を入力] [1]] [1]

ここで、cudnn-8.0-osx-x64-v5.1.tgzというZipファイルをダウンロードして解凍し、cudaというファイルを作成し、ターミナルを使用してcdします。フォルダーがダウンロードにあると仮定します

ターミナルを開いて入力します:

cd ~/Downloads/cuda

次に、cuDNNファイルをCUDAが保存されている場所にコピーする必要があります。

Sudo cp include/* /usr/local/cuda/include/
Sudo cp lib/* /usr/local/cuda/lib/

4。 conda/virtualenvにTensorflow-GPU v1.1をインストールします

私はcondaを使用しているので、ターミナルを使用して新しい環境を作成しました。

conda create -n egpu python=3
source activate egpu
pip install tensorflow-gpu # should install version 1.1

5。動作することを確認します

最初にコンピューターを再起動する必要があります:

ターミナルでpythonと入力し、次を入力します。

import tensorflow as tf
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

GPUを使用している場合、これは問題なく実行されるはずです。問題がある場合は、スタックトレース(多数のエラーメッセージ)を取得する必要があります。

ノード 'MatMul'にデバイスを割り当てることができません:明示的なデバイス仕様 '/ device:GPU:0'を満たせませんでした。そのプロセスにその仕様に一致するデバイスが登録されていないためです

そうでなければ、おめでとうございます!私は今日私のものをセットアップしましたが、完璧に機能しています:)

7
YellowPillow

私は最終的に次のセットアップで動作させることができました

ハードウェア

ソフトウェアのバージョン

  • macOS Sierraバージョン10.12.6
  • GPUドライバーバージョン:10.18.5(378.05.05.25f01)
  • CUDAドライバーバージョン:8.0.61
  • cuDNN v5.1(2017年1月20日)、CUDA 8.0:登録およびダウンロードが必要
  • tensorflow-gpu 1.0.0
  • ケラス2.0.8

手順の要点を書きました:

https://Gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687

6
Julian

これは、Macにe-gpuをインストールするための私のソリューションです。 Tensorflowはtensorflow-gpuをサポートしなくなったため、動作させるためのより良いアプローチが間違いなくあります。

私の設定:

  • iMac 27 '2012年後半
  • Aktioノード
  • GTX 1080 ti
  • 3画面:1つはGTX 1080に接続し、他の1つは直接Macに接続します。

Windowsブートキャンプインストールの利点:

  • Pipを使用して、tensorflow-gpuをインストールできます。
  • GPU 1080 tiの良好なサポート(ダウンロード可能なディスプレイドライバー)

Howto:

  • BootcampでWindows 10をインストールします。現時点ではAkitoノードを接続しないでください。
  • NVIDIAダウンロードページ からGPUのディスプレイドライバーをダウンロードしてインストールします
  • Visual Studioをインストールします
    • CUDA 9.xを使用する場合は、Visual Studio 2017をインストールできます
    • それ以外の場合はVisual Studio 2015をインストールします
  • CUDAとCuDNN をインストールします
    • Tensorflow-gpuのバージョンは、CudaおよびCudNNのバージョンと一致する必要があることに注意してください。利用可能なテンソルフローのリリースを参照してください こちら
    • CUDAのインストール後、解凍したCuDNNファイルをC:\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0のCUDAフォルダーに移動できます。 libファイルをlibフォルダーに、binファイルをbinフォルダーに、includeファイルをincludeフォルダーに移動します。
  • インストールPython 3.5 +
    • Pensorでtensorflow-gpuをインストールするには、64ビットバージョンが必要です
    • Python 2.7は動作しません。
  • Pipを使用してtensorflowをインストールします。

コマンド:

pip install tensorflow-gpu==1.5.0rc0

インストールを確認してください

画面をGTX 1080 tiカードに接続できる場合、ディスプレイドライバーは正しくインストールされています。

C:\ Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exeを呼び出して、CUDAでビデオカードが使用可能かどうかを確認します。

次のtensorflowコマンドを実行して、使用可能なデバイスを確認します。

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

トラブルシューティングとヒント:

  • WindowsはGTX 1080ドライバーを更新したいと考えています。コンピュータを再び起動することはできないため、許可しないでください!ウィンドウにログインする前に、移動するドットの黒い画面が表示されます。ゲームオーバー! NVIDIAダウンロードページ のディスプレイドライバーのみを使用してください。
  • OSXでWindowsを起動できない場合は、起動時にAltキーを押してWindowsを再インストールします。

Ubuntuソリューション:

実用的なソリューションが見つかりませんでしたが、いくつかのアプローチを次に示します。

GTX 680(iMac)とGTX 1080 tiが一緒に動作しないようです。 Ubuntuは、apt-getを介してディスプレイドライバをインストールした後、もう起動できませんでした: buntu not starting anmoreNVIDIAダウンロードページ から公式ディスプレイドライバーをダウンロードしてみてください。

OSXソリューション:Tensorflow GPUは、tensorflow 1.1までのみサポートされます。新しいバージョンをインストールしようとしましたが、CUDAをサポートしたtensorflow-gpuをビルドできませんでした。以下にいくつかのアプローチを示します。

  • e-gpu script を使用するには、OSX Sierraをインストールします。 High Sierraは機能しません(2018年1月13日)。すべてのパーティションを削除して、sierraにダウングレードします。次に、起動時にCommand + Rを押して、インターネット復旧をロードします。最初にデータをバックアップすることを忘れないでください。
  • e-gpu script をインストールします。
  • Tensorflow-gpu 1.1で十分であれば、pipを介してインストールできます。それ以外の場合は、bazelでpipをビルドする必要があります。

結論:WindowsのインストールはOSXやUbuntuのインストールよりも簡単です使用するソフトウェアのバージョンを常に確認してください。は正確に一致する必要があります。

これがお役に立てば幸いです!

2
Tobias Ernst