ここに記載されているものと非常によく似た問題があります:SIGXCPU(Ubuntu)によって殺されたMonoのIntel CPU OpenCL
基本的に、OpenCL を使用する非常に単純な C# アプリケーションがあります (OpenCL.Net ラッパーを使用しますが、ネイティブ関数をラップするだけなので、違いはありません)。コードでは、カーネルをビルドしてから、浮動小数点数の大きな配列を割り当てます。
より具体的には、私のプラットフォーム: Ubuntu 12.04、OpenCL 1.1 (CUDA を使用)、mono 3.0.3 です。
問題: mono を介してコードを実行すると、CPU LIMIT EXCEEDED エラーが発生します。
いくつかのこと:
- カーネルの構築と割り当ての間のどこかに(monodevelopで)ブレークポイントを設定すると、機能します..
- 配列サイズを小さいサイズに変更しても機能します
Strace は有用なものを何も表示しません。また、コールバックを ClBuildProgram に渡そうとしました (注意: ClBuildProgram の行をコメントアウトすると機能します)。
何か案は?