トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2018-4-8

NVIDIA DockerでTensorFlow

NvidiaのDockerイメージ nvidia/cuda:9.1-cudnn7-devel-ubuntu16.04で
TensorFlowをビルドしようとしたら若干手間どってしまったのでメモ

(0) 準備(ここは問題ない)

apt update && apt upgrade -y
apt install git python python-dev python3 python3-dev python3-pip -y
apt install curl openjdk-8-jdk sudo vim -y
pip3 install --upgrade pip
pip3 install tensorflow-gpu
pip3 remove tensorflow-gpu

で必要なものをいれて,
https://docs.bazel.build/versions/master/install-ubuntu.html
に従ってBazelをインストール.
で,https://www.tensorflow.org/versions/master/install/install_sources に従って
ビルド...すると,libcuda.so.1がない,とかいわれた.


みてみると,/usr/local/cuda/lib64/stubs以下に
いくらかのライブラリファイルが格納されているので,/etc/ld.so.conf/nvidia.confに

/usr/local/cuda/lib64
/usr/local/cuda/lib64/stubs

を追加して,ldconfigを実行.再び,

./configure
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

とすると,とりあえずビルドできたので,よかった.

RISC-Vのベクの命令

RISC V Vector Extension Proposalを視聴してのメモ.

  • 32bit*8なベクトルレジスタを32本もつ(...の?)
  • VLで,演算対象のレジスタを選択できる
  • SIMDじゃないので,利用可能な演算器を再利用しながらぐるぐるまわす
    • 全部を1クロックでできる = SIMD (08:20あたり)
  • maskでifもベクトル演算で効率良く
    • ベクトルレジスタの対応するスロットのLSBでマスク,など(12:10あたり)
  • ストア/ロードで工夫
    • ex. vldsで,メモリからストライド指定してベクトルレジスタにデータをストアできる(14:20あたり)