我正在使用CUDA 5.0和Compute Capability 2.1卡。CUDA內核作爲類的成員函數
這個問題很簡單:內核可以是類的一部分嗎? 例如:
class Foo
{
private:
//...
public:
__global__ void kernel();
};
__global__ void Foo::kernel()
{
//implementation here
}
如果沒有,那麼解決的辦法是做一個包裝函數是類的成員,並在內部調用內核?
如果是的話,那麼它將作爲一個普通的私人功能訪問私有屬性? (我不只是試着看,會發生什麼,因爲我的項目現在有幾個其他的錯誤,我認爲這是一個很好的參考問題。我很難找到使用C++的參考。功能的例子可以找到,但沒有針對結構化代碼的策略。)
如果你真的想把一個內核與一個類關聯起來,可以考慮把一個指向'__global__'函數的指針作爲(靜態或常規)數據成員,或者讓一個getter函數返回它。 – einpoklum