4 / 41234

dvipdfmx で Unknown token “SDict”

dvipdfmx で dvi を pdf に変換するとき,次のようなログが大量に出た.

** WARNING ** Unknown token "SDict";
** WARNING ** Interpreting PS code failed!!! Output might be broken!!!
** WARNING ** Interpreting special command ps: (ps:) failed.
** WARNING ** >> at page="1" position="(74.617, 697.04)" (in PDF)
** WARNING ** >> xxx "ps:SDict begin H.R end"
** WARNING ** >> Reading special command stopped around >>begin H.R end<<

原因はhyperref,captionなどのパッケージをインポートするときに,出力先を指定していなかったため.出力先を指定しない場合はdvipsが使われるので,dviから変換するときにpsのコマンドがないと言って叱られる模様.

%% \usepackage{caption}
%% \usepackage{hyperref}
\usepackage[dvipdfmx]{caption}
\usepackage[dvipdfmx]{hyperref}

わかってみれば単純で恥ずかしいくらいだけど,見事にハマってしまった.

CentOS のリブート時に CUDA ドライバが起動しない

先日,キャンパスで機器点検のための停電があり,それに備えて研究室のサーバーをシャットダウンした.その後ブートしたところ,実験用のコードで使っている gputools から CUBLAS not initialized が返り,cudaGetDeviceCount は cudaErrorInvalidDevice (10) を返し,deviceQuery は失敗する,という現象が発生した.

続きを読む

Emacs での編集中ファイルのバックアップ設定

Emacs でバックアップを有効にすると ~ で始まるバックアップファイルが大量にできて見苦しく,以前はバックアップをオフにして使っていた.ところが最近,ESS を使ってトライアンドエラーでスクリプトを書くことが多くなり,git コミットよりも短いスパンで変更を戻したい場合が多くなった.そこで,Emacs 標準のバージョン管理ツールを,自分の使いやすいようにカスタマイズすることにした.

続きを読む

R extension + CUDA で segmentation fault

R から .Call 経由で C 拡張を呼び出し,その中で CUDA の関数を呼び出すとき,1度目の .Call 呼び出しは成功するが,2度目は最初の CUDA 関数を呼び出した時点で segmentation fault が発生して,R 上で「memory not mapped」が表示された.

この場合,GPU のコンテキストバッファを明示的にクリアしてやる必要があるようだ. ソース: Using GPU in R scripts – possibly brainful

ソースにある cudaThreadExit 関数は NVIDIA のドキュメントですでに Deprecated 扱いになっているので,代替の cudaDeviceReset 関数を C 関数の最後で呼び出すようにして,問題は解決した.

原因は不明.R のメモリ領域を CUDA が横取りする?R を介さずに C だけで使っていた時は,問題にならなかったはず.

4 / 41234