我們有一個用霍夫曼編碼編碼的數據庫。這裏的目的是在GPU上覆制它的相關解碼器;然後在GPU上解碼數據庫,並在這個解碼的數據庫上做一些事情,而不用將其複製回CPU上。是否有可能在GPU中實現霍夫曼解碼?
我很快就成爲霍夫曼專家,但我所知道的少數人表明,它似乎是一種基本上基於控制結構的算法。用基本的算法,恐怕會有很多序列化的操作。
我的2個問題是:
- 你知道,如果存在對霍夫曼任何有效的GPU版本編碼
- 如果不是,你認爲存在霍夫曼算法適應於GPU(即。具有較少的控制結構)。或者,也許你知道(你可以提供一個參考),高效的Huffman解碼在GPU上無法高效。
我看其他的限制,但它們並不重要: - GPU不能非常有效的處理樹:二叉樹可以存儲在一個傳統的陣列 - 工作量可能難以平衡:我們將見
我懷疑你會看到任何真正的好處,通過實施GPU - CUDA或其他。 GPU對於多個數據點具有並行性和均勻操作的問題的子集來說只是非常有用的。 – 2010-06-10 11:09:15
霍夫曼,因爲我知道它是完全串行的。你根本不能分解要解碼的代碼,因爲你不知道中斷是在哪裏進行的,除非你在中斷之前處理了所有的代碼。 – 2010-06-10 14:36:16
iOS Metal上的一個示例實現(鏈接)顯示,同時解碼多個塊比執行CPU上的邏輯要快得多。必須創建一個每塊查找表,所以會有一些開銷。請參閱https://stackoverflow.com/a/47954985/763355 – MoDJ 2017-12-28 01:40:38