タグ別アーカイブ: トラブルシューティング

ATLAS の共有ライブラリで ldconfig が失敗する

もうずいぶん前になるが,研究室のサーバーに ATLAS を入れたとき,共有ライブラリをインストールしようと ldconfig を実行すると,次のように表示されて実行が失敗した.

$ ldconfig
ldconfig: Can't link /usr/local/atlas/lib//usr/local/atlas/lib/libsatlas.so to libsatlas.so
ldconfig: Can't link /usr/local/atlas/lib//usr/local/atlas/lib/libtatlas.so to libtatlas.so

そのときはとくに致命的でもなく,しばらく放置していたのだが,OS のアップグレードに合わせて ATLAS を入れ直すことになったので,ついでにこの問題の解決方法を探ってみることにした.

続きを読む

MacOSX Lion 上の Inkscape で libxml2 がロードされない

EqTeXSvg のようなエクステンションを使おうとすると,「このエクステンションを実行するには libxml2 用のステキな lxml ラッパーが必要です。」”The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension” と表示される問題.次のページがすべてを解決してくれた.感謝. Mac OS X 10.7 (Lion) で Inkscape 0.48.2 r9819 の エクステンションが使えない – GoingMyWay

このページにも書いてあるが,パッチを当てるより bin/inkscape をエディタで開いて1行打ち込む方が早い.

iPad 上 iCal からの Google アカウントアクセスで「不正なパスワード」

Google アカウントのパスワードを変えたら,iPad に「不正なパスワード」のポップアップが表示された.メールとカレンダーを同期しているのでこれ自体は当たり前だが,新しいパスワードを入力したら,一度閉じた後に再び同じダイアログが表示される.どうやら正しいパスワードでも認証されていない模様.

続きを読む

LaTeX で png のバウンディングボックスが読み込まれない

latexでpng画像を使う場合,xbbなどのツールを使ってバウンディングボックスを生成する必要がある.platexを実行したときに自動的にxbbを実行するには-shell-escapeを指定すればよいが,これをつけてもエラーになる場合があることがわかった.ディレクトリを見てみると,xbbから出力されるxxx.xbbは正しく生成されている.

$ platex -shell-escape xxx.tex
...
! LaTeX Error: Cannot determine size of graphic in xxx.png 
(no BoundingBox).
...

結論を言うと,pngのファイル名にドットが含まれる場合に,xbbファイルが読み込まれないようだ.ファイル名に含まれるドットをハイフンなどの別の文字に変えると,問題なく読み込むことができた.texが古いシステムであることを実感した気分.

hyperref を使うと右と下の余白が切り詰められる

hyperrefをインポートしていると,右と下の余白が切り詰められるのを発見. 原因を調べてみると,余白が切り詰められているのではなく,用紙サイズが変わっているのでした. TeX で PDF 作成の注意点 – Iranoan

hyperrefの内部指定はdvipdfmxの用紙サイズ指定オプションより優先されるので,パッケージのインポート後に設定を上書きするしかない模様.

\usepackage[dvipdfmx]{hyperref}
\special{papersize=210mm,297mm}

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 は失敗する,という現象が発生した.

続きを読む

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 だけで使っていた時は,問題にならなかったはず.