0
0

More than 3 years have passed since last update.

覚書:TribuoでTensorFlowを試そうとしたら動かないから本家を模索する旅に出た結果惨敗した

Last updated at Posted at 2020-10-04

まえおき

2020/10/03 執筆時点での感想文です。

TribuoでTensorFlowの話はここでは出てきません。Tribuoだけではなく、いろいろなものが厳しいです。ハマった記録だけです。TribuoからTensorFlowの連携をする以前の問題です。

結論

TensorFlow Javaは、Mavenセントラルレポジトリの最新版(1.15.0)でもJava 7でビルドする必要があります。新規でJava7採用するプロジェクトはあまりやりたくないです。一応Java11でのビルドまでは動作しましたが、Java12以降では実行時にエラーとなりました。

TensorFlowの最新版(2.3.0)でもCuda11は対応されてませんでした。無理に動かそうと思えば動かせます。

Tribuo忘れてました。気が付いたら朝になっているし、いつの間にかTensorFlowでJavaの話も忘れて、pythonの実装してました・・・。やはりスクリプト系の言語は好きになれないです。

Windos上でTensorFlowからGPUの利用は可能ですが、Windows on WSL2 on ubuntuではワタシの環境ではうまくいきませんでした。

現状の把握

Windows版Docker DesktopがGPGPU対応してない

Windows環境でDocerにLinuxを入れて、TensorFlowからGPUを利用しようとしましたがダメでした。そもそも、Windows版のDocker DesktopがGPGPUに対応してませんでした。

WindowsでWSL2上に構築したUbuntuでDockerを動かしたがGPUが認識しない

WindowsでWSL2上に構築したUbuntuに、Dockerを入れてヒャッハーみたいな情報もあったため試してみましたが、ワタシの環境ではダメでした。そもそもDockerを入れるためのUbuntu上でも、/usr/local/cuda/samples/1_Utilities/deviceQuery/deviceQueryを実行すると、35が返却されます。

image.png

TensorFlowのイメージも試してみましたが、こちらもうまく動作しませんでした。
image.png

WindowsでWSL2上に構築したUbuntuでGPUが認識しない

AMD:Ryzen 3700x
GPU:RTX3090
OS:Windows Build 20226.rs_prerelease.200925-1415
NVIDIA GPU Computing Toolkit:CUDA11.1/CUDA10.1/CUDA10.0
CUDANN:CUDA11.1/CUDA10.1/CUDA10.0

WindowsでWSL2上に構築したUbuntuからGPUを利用できるようになり、実際に動いたという情報があったため、試してみましたが、CUDA10/CUDA11-0/CUDA11-1のツールキット全部、ワタシの環境ではダメでした。Gefoce RTX 3090だから?AMDの呪い?

DeviceQueryを叩くとエラーコード35が出力されます。

ホストOSのWindows10上にダイレクトに構築

こちらは検索すると情報がでてくるのでば、あまり困らずに構築できました。必要な環境ごとに仮想環境をつくっているため、仮想環境ではないホストOSに、開発環境を構築するのは、あまりやりたくないです。Hyper-v on windowsでGPUが使えればいいのですが、ホストOSがWindows Serverではないですし、WSL2ではうまくいかないしで、時間だけが過ぎてしまいました。

TensorFlow JavaもGPUで動作しました。
image.png

ただし、Java12以降を指定すると実行時にエラーとなります。

image.png

感想

バージョン関係がカオス。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0