我正在爲只有32KB內存的處理器開發Litecoin Miner。所以我在看SCrypt算法,對於Litecoin它使用N = 1024,這給我2^10 * 1 * 128 = 128KB內存使用aproximate。SCrypt Lookup Gap Negative Effect
所以我正在研究具有參數查找間隙的GPU算法。對於閱讀我使用從CudaMiner開普勒代碼: https://github.com/cbuchner1/CudaMiner/blob/master/kepler_kernel.cu(行535)
所以我明白,查找差距是CPU和內存之間的折衷。所以越高,CPU使用率越高,記憶力越低。我不明白的是它是如何工作的。
在代碼中,我有
int pos = c_N_1/LOOKUP_GAP, loop = 1 + (c_N_1-pos*LOOKUP_GAP);
這將使它看起來暫存器每LOOKUP_GAP字節(如果2,這將是0,2,4,6,8,10),但如果是算法的CPU使用越多?
我的實現不會高度優化,就像嘗試運行。
我還看到了一個使用插值的FPGA實現(https://github.com/kramble/FPGA-Litecoin-Miner),這對我來說更奇怪。我不知道他們如何能夠在暫存器中對值進行插值。
謝謝!
哦,這很有道理!我想我現在明白了。謝謝! :d –