- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!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|https://www.youtube.com/watch?v=GzZ-8bHsD5s]を視聴してのメモ.
* 32bit*8なベクトルレジスタを32本もつ(...の?)
* VLで,演算対象のレジスタを選択できる
* SIMDじゃないので,利用可能な演算器を再利用しながらぐるぐるまわす
** 全部を1クロックでできる = SIMD (08:20あたり)
* maskでifもベクトル演算で効率良く
** ベクトルレジスタの対応するスロットのLSBでマスク,など(12:10あたり)
* ストア/ロードで工夫
** ex. vldsで,メモリからストライド指定してベクトルレジスタにデータをストアできる(14:20あたり)