問題タブ [opencl-c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - OpenCl カーネルが奇妙に巨大な数値を返す
しばらくの間、OpenCL カーネルを使用して、マーチング キューブ アルゴリズムを CPU から GPU に移行しようとしています。
私が得ている問題は、カーネル内の関数が奇妙な値を返すことです。そのため、float3 コンポーネントが 0、0.5、および 1 である 12 個の float3 の配列で可能な戻り値を指定するテスト ケースを作成しました (以下のコードを参照)。 )
何らかの理由で奇妙に大きな数値が得られます。たとえば、「11」の edgeIndex は float3: (-145085952., 6.600e-43#DEN, 0) を返しますが、(1, 0, 0.5) である必要があります。私が知る限り、y座標は基本的に0なので問題はありませんが、x座標は頭痛の種です。
最初は、OpenCL が指定された値を float3 に変換する際に問題があるのではないかと考えたので、".f" で指定しました (例: (float3)(0.f, 0.5f, 0.f))。これは、どこかで間違いを犯さなければならないと私に思わせる、さらに奇妙で異なる結果をもたらすだけでした. 私はOpenCLにかなり慣れていません(これはそれを使用した最初の実際のプロジェクトです)、一般的にそれほど長くプログラミングを行っていないので、ここで初心者の間違いを犯していないことを願っていますが、これと関連する問題に取り組もうとしました何日もの間、解決策が見つかりません。
可能な限り問題を絞り込み、コードが実行する各ステップでコードが本来の動作をしているかどうかをテストしました。「CalculateEdgePos」の関数呼び出しまではすべてうまくいっているようで、期待どおりの結果が得られます。不要なコードの機能をすべて取り除きました (したがって、「values」パラメーターは現在使用されていないため無視してかまいません) が、今は頭がいっぱいです。
奇妙な結果を返す関数:
あなたの誰かが提供するヒントや助けを持っているなら、私はそれを大いに感謝します. これ以上のコード スニペットが必要な場合はお知らせください。ただし、奇妙な動作をするのは指定された関数だけなので、これで十分だと思います。
よろしく、foodius
c++ - OpenCL カーネル引数の Char***?
vector<vector<string>>
をカーネル OpenCLに渡す必要があります。それを行う最も簡単な方法は何ですか?を渡すとchar***
エラーが発生します:
エラー: clBuildProgram(CL_BUILD_PROGRAM_FAILURE)