1

私のカーネルでは、これを定義しています。

#define ACTIVATION_FUNCTION(X) (1.7159f*tanh(2.0f/3.0f*X))

実行時にカーネルを変更できるように、clBuildProgram呼び出しで定義したいと思います。これどうやってするの?

4

1 に答える 1

1

関数のパラメーターで-D引数を渡すことにより、引数を OpenCL コンパイラーに使用できます。を渡すことは、カーネル ファイルの先頭に追加することと同じです。同様に、渡すことは追加することと同じです(もちろん、 anyとの場合)。optionsclBuildProgram-D x=y#define x y-D x#define xxy

あなたの場合、おそらく次のようなものを渡したいと思うでしょう:

-D ACTIVATION_FUNCTION(X)=(1.7159f*tanh(2.0f/3.0f*X))

実行時に、プログラムから直接、必要に応じて変更できます。

別の解決策として、カーネル ファイルを開いて直接定義を書き込むこともできますが、これがおそらく最もクリーンな方法です。改行に注意してください。改行がどれだけうまく処理されているかわかりません。


参考文献 clBuildProgram のこのドキュメント ページ、「プリプロセッサ オプション」セクション。

于 2013-03-11T07:45:07.757 に答える