2014年2月7日金曜日

xubuntu 13.10 + CUDA 5.5

xubuntu 13.10(おそらくubuntu系列ならば同様であろう)にCUDA 5.5をインストールする手順を説明します.
(一部未確認部分あり)

参考となるサイト

http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/

ダウンロード

ここではインストール対象となる環境はxubuntu 13.10 64bitとする.
(x)ubuntu 13.10用のパッケージは用意されていないため, https://developer.nvidia.com/cuda-downloads からcuda_5.5.22_linux_64.runを,
http://www.nvidia.co.jp/Download/index.aspx?lang=jp から NVIDIA-Linux-x86_64-331.38.run を,それぞれダウンロードする.バージョンは2014/2/13現在.

準備

カーネルのソースコード

sudo apt-get install linux-source
cd /usr/src
sudo tar jxf linux-source-3.11.0.tar.bz2
sudo ln -fs linux-source-3.11.0 linux

最後のシンボリックリンクが必要かどうかは未検証.

開発環境

sudo apt-get install build-essential g++ freeglut3-dev libxmu-dev libxi-dev

gccおよびg++のバージョンが4.6である必要がある.
ubuntu 13.10では4.8が導入されるので,4.6は明示的に導入する.

sudo apt-get install gcc-4.6 g++-4.6

4.6と4.8を切り替えられるようにする.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20

バージョンの選択は以下のコマンドで行うことができる.

sudo update-alternatives --config gcc
sudo update-alternatives --config g++

インストール

インストールの方針

作業はXを落とした状態(コンソールのみ)で行う.
CUDAのパッケージ内にもグラフィクスドライバは含まれているのだが,
バージョンが古い(317)ためカーネル3.11に対応していない.
グラフィクスドライバは最新の331を入れる.
331を入れる場合でも,パッチが必要と書かれているサイトもあるが,
331.38は必要無い模様.

以下の手順で行う.

  1. コンソールでの作業に移行
  2. 古いドライバを削除
  3. グラフィクスドライバをインストール
  4. CUDAをインストール

コンソールでの作業に移行

xubuntuの場合:
sudo /etc/init.d/lightdm stop
sudo stop lightdm でも可

ディストリビューションに合わせて,lightdm→gdmなど,適宜読み替える.

alt+F1でコンソールに切り替える.

ログインする.

文字化けを避けるため,環境変数LANGをCに設定する.
export LANG=C

古いドライバを削除

nvidiaのパッケージの名前を確認する.
いくつか方法がある.

dkpg --get-selections | grep nvidia
dpkg-query --show | grep nvidia
dpkg -l | grep nvidia

下の方ほど,得られる情報量が多い.

nvidiaのパッケージを削除する.例えば以下のようになる.

sudo apt-get --purge remove nvidia-319-updates
sudo apt-get --purge remove nvidia-settings-319-updates

グラフィクスドライバのインストール

/etc/modprobe.d/blacklist.conf に以下を追加する.
blacklist nouveau

以前は以下も追加していたが,不要なようだ.
blacklist vga16fb
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

パッケージを実行する.
sudo sh NVIDIA-Linux-x86_64-331.38.run

質問にはそれぞれ適切に答える.

再起動する.
sudo reboot

cudaのインストール

nvidiaのドライバがインストールできてXが立ち上がっていれば,ターミナルで作業をしても問題ない.

パッケージを実行する.
sudo sh cuda_5.5.22_linux_64.run

長いlicense terms and conditionsは'q'で途中終了できる.

グラフィクスドライバはインストールしない.

PATH /usr/local/cuda-5.5/bin
/etc/environment のPATHの設定に足す.
この設定が反映されるためには,一度ログアウトする必要がある.

ダイナミックリンクライブラリがあるディレクトリを教える.
/etc/ld.so.conf.d/cuda.conf を以下の内容で作成する.

/usr/local/cuda-5.5/lib64
/lib

sudo ldconfig

サンプルプログラムをコンパイルして,正しくコンパイルできるか,および,動作しているか,確認する.適当なサンプルプログラムのディレクトリに入り,makeすれば実行ファイルが作成される.

gnuplotメモ

定義域の指定

set xrange [-10:10]
のようにして指定できるが,plotの先頭に,
plot [-10:10] ...
としても指定できる.

場合分け

C言語と同じ三項演算子が使用できる.
条件 ? 成立時 : 不成立時
例:
plot [0:1] (x<0.5) ? 2*((1-x)**3)*(x**3)-1.0/64 : ((1-x)**3)*(x**3) t "Akinci et al. 2013"

PDF出力

set term pdfcairo enhanced
set output "cohesion.pdf"
replot
set term "wxt"

サンプリング

グラフの品質がいまひとつの場合は,サンプル数を多くする.
set samples 1000




2014年2月6日木曜日

dropbox on xubuntu 13.10

https://www.dropbox.com/install?os=lnx から,ubuntu用64bitパッケージ dropbox_1.6.0_amd64.deb をダウンロードする.
$ sudo dpkg -i dropbox_1.6.0_amd64.deb

ダイアログが現れるのでropboxのアカウントを設定する.

同期がはじまるので,気長に待つ.


skk on ubuntu 13.10


ibus-skkをインストールする.

$ sudo apt-get -y install ibus-skk skkdic skktools

emacs上ではddskkの方が使い勝手がよい..Xresourcesに Emacs23*useXIM: false と記述すれば,ibusにキーを奪われることが防止される.emacs24なら23を24に.
ファイルを作成したら,

$  xrdb .Xresources

ibus-skkの句読点を.,に変えるには,IBus-SKKの設定の「動作」タブで行う.

入力モードを,無変換キーで英数,変換キーでひらがなにしたいのだが,まだできていない.


2013年11月30日土曜日

xubuntuでログイン画面に戻ってしまう

xconf.orgを書き換えていたらログインしてもすぐにログイン画面に戻ってしまうようになった.
対処法は
.Xauthority
.ICEauthority
の二つのファイルを消すことだった.


2013年10月13日日曜日

std::vectorの一部分からstd::stringを生成

std::stringのコンストラクタにイテレータ二つを与えて範囲を指定することができる.
例: std::vector<char> bufの最初の'\n'までをstd::stringとして切り出す

cit = find(buf.begin(), buf.end(), '\n');
std::string s(buf.begin(), cit);

2013年10月2日水曜日

dvipdfmxで日本語フォントを埋め込む

dvipdfmxで日本語フォントを埋め込む
c:/tex/share/texmf-dist/fonts/map/dvipdfmx/base/cid-x.mapを編集する.

rml   H DFMINP3.TTC
gbm   H DFGOTP5.TTC
rmlv  V DFMINP3.TTC
gbmv  V DFGOTP5.TTC

.emacsのyatexの設定

(setq tex-command "c:/tex/bin/ptex2pdf -l -ot \"-kanji=utf8 -no-guess-input-enc\" -od \"-f dlbase14.map\"")
(setq dvi2-command "c:/tex/bin/SumatraPDF.exe")