コンテンツに飛ぶ | ナビゲーションに飛ぶ

パーソナルツール
セクション
現在位置: ホーム 失敗事例集

失敗事例集

失敗のログを残すことで、同じ失敗の防止、もしくは同系統の失敗の原因究明に役立てる

webページにドルマーク($\$$)を記載すると表示がおかしくなる
原因:PloneのテンプレートヘッダにMathJaxが設定してあり、$\$$を数式モード開始と認識された。
解決方法:数式モードでドルマークを書く(つまり$\$\backslash \$ \$$)。
備考:本当ならMathJaxにエスケープ文字が用意されていれば良いのだが、今のところそのようなものが
   あるという話はないようだ。


atコマンドで投入したシェルスクリプトが正しく実行されない
原因:環境変数"LD_LIBRARY_PATH"がシェルスクリプトに引き継がれていなかった。
解決方法:シェルスクリプトの頭で環境変数を設定する。
備考:atコマンドでは環境変数が引き継がれるものと思っていたため、環境変数の引き継ぎが
   なされていないことに気がつくのが遅れた。特定のアプリケーションのみが正しく実行
   されない場合には、exportやechoなどで環境変数の設定を確認すると良い。


CUDAプログラム中の配列が意図したように変更されない
原因:ループ処理の終わったブロックが抜けて、本来なら全てのループ処理終了後に実行されるべき
   後ステップの計算がループ処理終了前に実行されていた。
解決方法1:cudaDeviceSynchronizeを使う。
解決方法2:順番に処理されるべき部分を異なるカーネル関数として分割して記述する。
解決方法3:カーネル関数を実行するブロック数を1に設定する(つまりkernel<<< 1, nthreads >>>とする)。
備考:__syncthreads()で同期されるのはブロック内のスレッドのみ。ブロック間で同期を取る必要がある処理
   を行う場合には、上記のような方法で正しい順序で処理が行われるように気をつける必要がある。