• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

まだリリースされて間もないせいか、 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側の認識が一致していない感じです。 とりあえず、バグが直るまでコンパイラの気持ちになって回避するしかありません。

posted by Png genki on Mon 1 Feb 2010 at 13:26 with 1 comment

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.so.190.18

このへんのファイルらしい(Linux版) driver componentというのはどこにある何を指しているのかが不明。

posted by Png genki on Mon 1 Feb 2010 at 05:23
Contents
Arguments mismatch for instruction 'selp'
[OpenCL] Error: API mismatch
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ