每當我在CUDA中使用固定內存時,這個問題就會浮現在我的腦海裏。我已經在這個主題上搜索了很多,但沒有找到任何東西。基本上,我們必須執行兩次數據傳輸,以便使用固定內存:我可以將現有的可分頁內存轉換爲固定內存嗎?
第一步 - >可分頁內存到固定存儲器
第二步 - >固定內存到設備存儲器
我也可以直接初始化被釘扎通過輸入數據將內存傳輸到GPU,這將節省我的Step1的傳輸時間。就我而言,我正在GPU上處理大量的輸入數據。太多的頁面鎖定內存可能會降低整體系統性能。所以我不能只在固定內存上進行整個分配。我必須迭代地完成Step1和Step2的轉移(上面)。
CUDA中是否有將現有主機內存(可分頁)轉換爲固定內存的規定?像如下:
第1步 - >初始化由輸入數據的可分頁內存
第2步 - >轉換在上述存儲器中的固定內存
步驟3 - >傳送到設備,並執行執行
我希望我所問的是有道理的。
將使用cudaHostRegister和cudaMapHost做更多的搜索和編程。謝謝回覆! –