在書中CUDA按示例頁面上沒有26也撰文指出:使用cudaMalloc()分配的內存是否可以由主機訪問?
你可以通過與cudaMalloc分配的指針()到 在主機上執行的功能。
您不能使用分配給cudaMalloc()的指針從主機上執行的代碼中讀取或寫入 內存。
爲了證明第一個概念我在這裏寫代碼:
main()
{
int * ad, N;
cudaMalloc((void **)&ad, Sizeof(int) *N);
GPUFunction<<<...>>>(ad);
Hostfunction(ad);
}
Hostfunction(int * AD)
{
int c ;
c=AD[N-1];
printf("%d", c);
}
__global__ void GPUFunction(int *AD)
{
AD[threadIdx.x]= threadidx.x;
}
這是什麼點#1以上解釋?如果是這樣,與上面#2相反,正如你可以看到主機功能正在讀取內存廣告。那麼我的理解出錯了?
+10,這對我來說很有意義。謝謝 – user25108