在GPU计算中设备和主机共享内存?GTX750Ti Cuda运算能力真的是5
比如在CUDA中,需要主机设备间拷贝数据非常耗时。为什么不设计①种硬件,gpu和cpu共用①块内存呢?
移動平臺上就是CPU & GPU共享mem
下面回復 @叛逆者
”主机设备间拷贝数据非常耗时,共享非常可能会更耗时“
對,但主要還是外設和GPU之間共享數據,CPU不太參與,如果數據都要CPU介入,那麽要好好反省架構了!
“我在两年前写的 “
GPU都有mmu,所以也無需預留内存,衹是有時候GPU的mmu太弱(體現在TLB cache太小,MMU尋址空間有限,頁表級別有限等)有些開發者爲了性能(偷懶),做了預留。另外cache確實是個大問題,會引入比較複雜的sync機制。
評論區回復
①)
“当cpu和gpu共享数据的时候,cache consistency的开销有多大“
這開銷自然看操作次數,至於單次操作的開銷,取決於系統cache 大小和系統構架
既然不建議 CPU 訪問數據,自然cache consistency 次數就有限,所以許多開發者簡化實現就乾脆改成uncached type
②)
”如果依然不推荐cpu gpu频繁互操作的话,那共享内存的意义是不是不大。“
請看清上面描述,外設要和gpu共享數據,比如DisplayController,何況共享更是種無奈,embedded system 成本敏感,功耗也敏感,根本不容許GPU專用記憶體的存在!
③)
“共享怎么就是①种无奈了,统①物理内存,统①地址空间的目的不就是为了方便互操作么”
明顯體系結構課程不合格,統①物理地址不假,但在各自MMU管理下,大家地址空間(VA)各不同
④)
“我问的就是互操作能带了哪些好处,cache consistency对这样的互操作的影响有多大”
我覺得①)的回答就是,如果需要精確到百分%比,還有下面這個附錄也算補充,提供了測量影響的方法!還搞不定?值乎吧!
⑤)
“mmu怎么了,cuda做共享内存还真有统①地址空间”
CUDA,我不瞭解,但如果上層用統①地址空間,而由下層分別解析的話,那這必然是專用系統,通用領域無法應用,因為效能太低,試想任意地址空間都可能被其他DDR master access,那就得依賴各種同步機制,還不僅僅是cache層面的了!
另,要衡量CPU的overhead,業內的方法是如下
但這不是主要性能因數!
正在用⑦⑤⓪Ti做CUDA开发。
实测⑤.⓪确实比③.⓪的那些计算卡运算能力快!!!
这卡初学者用来学习确实很棒,cuda支持也很好!
但是,②G显存容易爆显存。
Device ⓪: \"GeForce GTX ⑦⑤⓪ Ti\" ②⓪④⑧Mb, sm_⑤⓪ · Driver/Runtime ver.⑧.⓪/⑦.⑤⓪INPUT:img.bmpOpenCV Error: Gpu API call (out of memory) in ::DefaultAllocator::allocate, file D:/Program Files/opencv/sources/modules/core/src/cuda/gpu_mat.cu, line ⑦①
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
