可能重複:
Copying a struct containing pointers to CUDA device傳遞一個結構指針到一個CUDA內核
我有裝置指針的結構中,指向陣列設備上分配的。 這樣的
struct mystruct{
int* dev1;
double* dev2;
.
.
}
在這個結構中有大量的數組。我開始編寫一個CUDA內核,其中 我將指針傳遞給mystruct
,然後在 CUDA內核代碼中將其取消,如mystruct->dev1[i]
。
但是我在寫了幾行後意識到這是行不通的,因爲通過CUDA的第一原理 您不能在CUDA內核中取消主機指針(在本例中爲mystruct
)。
但是這是不正確的,因爲我必須將更多的參數 傳遞給我的內核。有什麼辦法可以避免這種情況?我想保留我的內核調用的參數 儘可能短。
您的意思是映射主機內存,標記。頁面鎖定的主機內存不一定是映射的。 – harrism