Apache2+Passengerの調子が悪い
しばらく前から安定性が悪くなってきたのですが、ここに来て頻繁にPassengerのプロセスが暴走するようになってきました。
- ruby 1.8.7 (2009-04-08
patchlevel 160) [i686-linux ] - Passengerのバージョンは2.2.8
- Rails 2.3.5
プログラムやシステム構成はここしばらくほとんど変えておらず、トラフィックも大きな変動はないので、うわさのEC2のサービス劣化の影響でしょうか。
しばらく前から安定性が悪くなってきたのですが、ここに来て頻繁にPassengerのプロセスが暴走するようになってきました。
プログラムやシステム構成はここしばらくほとんど変えておらず、トラフィックも大きな変動はないので、うわさのEC2のサービス劣化の影響でしょうか。
Formulaを使って数式の画像を生成するときに、数式のサイズを指定する場合、以下のようにするとうまくいきます。
1 \mbox{\Huge $\displaystyle 2 I_j=\int_\Omega f_j(\bar{x})\,d\mu(\bar{x}) 3 $}
出力結果は以下の通り。
CUresultの値一覧表です。
1 CUDA_SUCCESS = 0, ///< No errors 2 CUDA_ERROR _INVALID_V ALUE = 1, ///< Invalid value 3 CUDA_ERROR _OUT_OF_ME MORY = 2, ///< Out of memory 4 CUDA_ERROR _NOT_INITI ALIZED = 3, ///< Driver not initialize d 5 CUDA_ERROR _DEINITIAL IZED = 4, ///< Driver deinitiali zed 6 7 CUDA_ERROR _NO_DEVICE = 100, ///< No CUDA-capab le device available 8 CUDA_ERROR _INVALID_D EVICE = 101, ///< Invalid device 9 CUDA_ERROR _INVALID_I MAGE = 200, ///< Invalid kernel image 10 CUDA_ERROR _INVALID_C ONTEXT = 201, ///< Invalid context 11 CUDA_ERROR _CONTEXT_A LREADY_CUR RENT = 202, ///< Context already current 12 CUDA_ERROR _MAP_FAILE D = 205, ///< Map failed 13 CUDA_ERROR _UNMAP_FAI LED = 206, ///< Unmap failed 14 CUDA_ERROR _ARRAY_IS_ MAPPED = 207, ///< Array is mapped 15 CUDA_ERROR _ALREADY_M APPED = 208, ///< Already mapped 16 CUDA_ERROR _NO_BINARY _FOR_GPU = 209, ///< No binary for GPU 17 CUDA_ERROR _ALREADY_A CQUIRED = 210, ///< Already acquired 18 CUDA_ERROR _NOT_MAPPE D = 211, ///< Not mapped 19 CUDA_ERROR _INVALID_S OURCE = 300, ///< Invalid source 20 CUDA_ERROR _FILE_NOT_ FOUND = 301, ///< File not found 21 22 CUDA_ERROR _INVALID_H ANDLE = 400, ///< Invalid handle 23 24 CUDA_ERROR _NOT_FOUND = 500, ///< Not found 25 26 CUDA_ERROR _NOT_READY = 600, ///< CUDA not ready 27 28 CUDA_ERROR _LAUNCH_FA ILED = 700, ///< Launch failed 29 CUDA_ERROR _LAUNCH_OU T_OF_RESOU RCES = 701, ///< Launch exceeded resources 30 CUDA_ERROR _LAUNCH_TI MEOUT = 702, ///< Launch exceeded timeout 31 CUDA_ERROR _LAUNCH_IN COMPATIBLE _TEXTURING = 703, ///< Launch with incompatib le texturing 32 33 CUDA_ERROR _UNKNOWN = 999 ///< Unknown error
Linux環境でNVIDIAのCUDA/OpenC
1 NV_COMPUTE_SDK_PATH= "/path/to/N VIDIA_GPU_ Computing_ SDK" 2 SDK_INSTAL L_PATH="/path/to/N VIDIA_GPU_ Computing_ SDK/C"
まだリリースされて間もないせいか、 NVIDIAのOpenCL SDKを使っていると不可解なエラーに遭遇します。 掲題のようなエラーメッセージを出すのもその一例ですが、 以下のようなコード(一部抜粋)でエラーがでます。
1 float4 x = sphere->c; 2 dg->t = x.x;
しかし以下のように記述すると大丈夫です。
1 float x = sphere->c.x; 2 dg->t = x;
OpenCLコンパイラが生成したptxコードの中に'selp'というのが入るような場合に問題が発生するようです。
NVIDIAのOpenCL SDKの場合、*.clファイルをCLコンパイラがコンパイルして、ptxという中間言語に変換します。さらに、ptxをptxparse(PLANGというパッケージの一部らしい)が解析してllvmのbcに変換します。 このケースでは、CLコンパイラが吐き出すコードと、ptxparse側の認識が一致していない感じです。 とりあえず、バグが直るまでコンパイラの気持ちになって回避するしかありません。
NVidiaのOpenCL SDKには、少なくともkernel moduleとdriver component の二つの要素があるらしい。
1 Error: API mismatch: the NVIDIA kernel module has version 190.18, 2 but this NVIDIA driver component has version 185.18.08.Please make 3 sure that the kernel module and all NVIDIA driver components 4 have the same version.
たまにこんなエラーメッセージが出てきます。
kernel moduleというのはバージョン番号とファイル名の一致からすると
1 /usr/lib64/libcuda.s o.190.18
このへんのファイルらしい(Linux版) driver componentというのはどこにある何を指しているのかが不明。