1

什麼是在CUDA中進行圖像聚合最有效的方法?我已經編寫了自己的內核,但想象我們可以做得更好。CUDA中的高效圖像金字塔?

使用OpenGL interop和使用硬件mipmapping綁定到OpenGL紋理可能會快得多。任何指示如何做到這一點或其他

+0

請添加一些關於您當前設計的信息,以便我們知道您從哪裏開始。 – koan 2011-01-15 09:39:04

+0

http://en.wikipedia.org/wiki/Pyramid_%28image_processing%29 – 2011-01-15 12:19:03

回答

1

MIPMaps是在OpenGL/DirectX中訪問/初始化時設置的。如果您分配比初始紋理寬50%(或更高)的紋理,並使用內核對紋理進行下采樣並在原始紋理旁邊寫入結果,則CUDA內核可以執行相同的操作。內核可能在每個線程評估下一個下采樣圖像中的像素時效果最好。您需要確定採樣方案並選擇合適的權重來組合像素。嘗試雙線性開始,然後一旦工作,您可以設置三線性(立方)或其他採樣方案,如各向異性等。簡單採樣(線性和立方體)可能會更有效,因爲會發生合併內存訪問(請參閱CUDA SDK編程指南)。您可能需要平鋪內核執行,因爲線程數限制爲並行調用(太多像素,線程太少=使用平鋪來並行執行)。您可能會發現Mesa3D可用作參考(它是一個開源實現OpenGL)。