所以我想在設備上分配一個具有虛函數的對象,然後調用一個內核並執行一些虛函數。我嘗試了兩種方法來做到這一點,但都沒有成功:在CUDA內核中使用虛函數
1)使用cudaMalloc和cudaMemcpy從主機分配和複製對象。這在包含主機內存指針的虛擬函數表上進行復制,這些指針在設備上執行時顯然會使內核崩潰。
2)從第二個內核分配對象,將設備內存指針保存到對象並將該指針傳遞給原始內核。但是,由於內核不同,內核執行時功能不在設備內存中的相同位置,虛擬功能表不正確,並且在使用內核時崩潰內核。
我只能在內核中創建的對象中使用虛函數來調用函數嗎?
我可以以某種方式引用原始內核,當我分配我的對象來獲得虛函數表正確嗎?
我甚至可以理解實際問題在這裏嗎?
有一個較新的問題,這個重複,[我已經回答](http://stackoverflow.com/questions/12701170/cuda-virtual-class/12704054#12704054)。由於OP自2011年4月以來沒有訪問過SO,所以投票結束這一次。 – harrism 2012-10-03 07:50:08