1
在我的內核中,我已經定義了這個宏。如何使用clBuildProgram爲OpenCL添加宏
#define ACTIVATION_FUNCTION(X) (1.7159f*tanh(2.0f/3.0f*X))
我想在clBuildProgram調用中定義它,例如我可以在運行時更改內核。我怎樣才能做到這一點?
在我的內核中,我已經定義了這個宏。如何使用clBuildProgram爲OpenCL添加宏
#define ACTIVATION_FUNCTION(X) (1.7159f*tanh(2.0f/3.0f*X))
我想在clBuildProgram調用中定義它,例如我可以在運行時更改內核。我怎樣才能做到這一點?
通過在clBuildProgram
函數的options
參數中傳遞參數,您可以使用OpenGL編譯器的-D
參數。通過-D x=y
,相當於在內核文件的頂部添加#define x y
。同樣,通過-D x
等同於加入#define x
(當然,對於任何x
和y
)。
在你的情況,你可能想通過這樣的事情:
-D ACTIVATION_FUNCTION(X)=(1.7159f*tanh(2.0f/3.0f*X))
然後你就可以改變你認爲合適的,直接從你的程序在運行時。
請注意,您也可以打開內核文件並直接將定義寫入其中,作爲替代解決方案,但這可能是最乾淨的方法。只要注意換行符,我不確定它們的處理情況。
Ref。 this documentation page on clBuildProgram,「預處理器選項」部分。
謝謝,呃,我試過了--A NAME =(X)(.... X ...)。 Alteast我在正確的軌道上。謝謝。 – 2013-03-11 09:37:08