エラー:識別子「float3」は未定義です。 ATIカードでOCLNBodyデモを実行するとき

StackOverflow https://stackoverflow.com/questions/6378813

  •  28-10-2019
  •  | 
  •  

質問

ATI Radeo 4850カードでNvidiaのOpenCLデモoclnbody.exeを実行しようとしています。そのようなエラーを受け取ります。

ビルドログ:c: docume〜1 dimedr〜1 locals〜1 temp ocl27c.tmp.cl(33):エラー:識別子

      "float3" is undefined

Real3 BodyBodyInteraction(Real3 Ai、Real4 BI、Real4 BJ、Real Softeningsquared)

^

すべてのREAL3データタイプを使用しているなど。私は見ました OpenCL仕様1.1 そして、Float3がサポートされているとはっきりと言っています。私は運がなくてfloat3でreal3を変更しようとしました。私は自分のカードの最新のドライバーを持っています。 Windows XP SP3 OSの使用

このエラーを修正または回避するにはどうすればよいですか?

役に立ちましたか?

解決 2

回避策を見つけました:

  • float3の代わりにフロート4を使用します。
  • #define zero4 {0.0f、0.0f、0.0f、0.0f}を使用して、代わりにzero3を使用します
  • ワークグループの数を64に減らします(256)

そして、それはうまくいきました!

他のヒント

float3 他の3成分ベクトルタイプは、OpenCL 1.0 Specの一部ではありませんでした。それらは1.1リビジョンで追加されました。によると AMDのドライバー互換性ページ, 、Radeon HD 4800カードは、OpenCL 1.0のみをサポートしています。

コンパイラが解釈しようとしたという事実 float3 識別子として、それが認識されたタイプではないことを示しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top