unified-memory

    2熱度

    1回答

    問題1) 當我調用CUDA驅動程序API時,通常需要先將上下文(表示GPU運行時)推送到當前線程。對於正常的cuMalloc,內存將在上下文指定的GPU上分配。但是,如果我嘗試撥打cuMallocManaged來創建統一內存,我是否仍需要推送GPU上下文? 問題2) 說我有2個GPU,每個人都有1 GB DRAM。那麼我可以分配2GB的統一內存嗎?每個GPU都擁有它的一半?

    0熱度

    1回答

    在新創建的進程中初始化CUDA可能需要相當長的時間as long as a half-second或更多在今天的許多服務器級機器上。作爲@RobertCrovella explains,CUDA初始化通常包括建立統一內存模型,該模型涉及協調設備和主機內存映射。對於擁有大量內存的機器來說,這可能需要相當長的時間;並且可能還有其他因素導致這種長時間的延遲。 當你想運行一系列不使用複雜虛擬內存映射的CU

    4熱度

    1回答

    我們有兩個GPU內存,其中一個分配爲cuMalloc作爲正常的設備內存,另一個分配爲cuMallocManaged作爲統一內存。它們之間可以複製嗎?如果我們使用驅動程序API,我應該使用什麼方向? float* normalMem, unifiedMem; cuMalloc(&normalMem, 100); cuMallocManaged(&unifiedMem, 100); cuMemc

    1熱度

    1回答

    我考慮的可能性來處理在GPU上的數據虛擬尋址和統一存儲,這是太大的GPU內存和我有幾個問題。 如果我理解的正確,與映射存儲器中的數據駐留在主存儲器中,並轉移到訪問僅當GPU,因此它不應該是分配超過裝配到GPU存儲器的問題。 UVA是類似於映射的內存,但數據可被存儲在CPU和GPU兩者的存儲器英寸但是,GPU有可能在充滿自己的數據的情況下訪問主內存(與映射內存一樣)?在這種情況下會發生內存溢出嗎?我