Jetson TX1にTensorFlowをインストールする

2017/03/21追記: 最新の1.0.1をインストールしました

Jetson TX1のGPGPUを活用すべく、TensorFlowをインストールしてみましょう。他のPython環境に影響しないようvirtualenvを利用し、GPU対応版をインストールしてみます。

$ sudo apt-get install python-pip virtualenv python3-dev
$ mkdir tensorflow
$ cd tensorflow
$ virtualenv -p /usr/bin/python3 env
$ . env/bin/activate
(env)$ pip install tensorflow-gpu
Collecting tensorflow
 Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow

怒られてしまいました。どうもaarch64 (64bit ARM)用のバイナリは公式には用意されていないようです。

そこで、有志が公開されているバイナリをインストールしたいと思います。ここではpython3.5環境にインストールしますので、二つあるwhlファイルのうち、cp35の方をDL, インストールすることになります。

(env)$ wget https://github.com/rwightman/tensorflow/releases/download/v1.0.0-alpha-tegra-ugly_hack/tensorflow-1.0.0a0-cp35-cp35m-linux_aarch64.whl
(env)$ pip install tensorflow-1.0.0a0-cp35-cp35m-linux_aarch64.whl

依存関係によりNumPyが追加インストールされ、TensorFlowも無事にインストールされました。まずは簡単な動作確認を。公式サイトを参考に、コマンドラインからTensorFlowを実行してみます。以下、>>>で始まるのが入力行です。

(env)$ python
 Python 3.5.2 (default, Nov 17 2016, 17:05:23)
 [GCC 5.4.0 20160609] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import tensorflow as tf
 I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so.8.0 locally
 I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so.5 locally
 I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so.8.0 locally
 I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally
 I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.so.8.0 locally
 >>> hello = tf.constant('Hello, TensorFlow!')
 >>> sess = tf.Session()
 I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:874] ARM has no NUMA node, hardcoding to return zero
 I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
 name: NVIDIA Tegra X1
 major: 5 minor: 3 memoryClockRate (GHz) 0.072
 pciBusID 0000:00:00.0
 Total memory: 3.90GiB
 Free memory: 1.88GiB
 I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y
 I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: NVIDIA Tegra X1, pci bus id: 0000:00:00.0)
 >>> print(sess.run(hello))
 b'Hello, TensorFlow!'
 >>> a = tf.constant(10)
 >>> b = tf.constant(32)
 >>> print(sess.run(a + b))
 42

CUDAライブラリが読み込まれ、GPGPUも認識されているようですね。

コメントを残す

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