【问题标题】:SCrypt Lookup Gap Negative EffectSCrypt 查找差距负面影响
【发布时间】:2014-02-16 20:45:01
【问题描述】:

我正在为只有 32KB 内存的处理器开发莱特币矿工。所以我在研究 SCrypt 算法,对于 Litecoin,它使用 N = 1024,这给了我 2^10 * 1 * 128 = 128KB 的内存使用近似值。

所以我正在研究具有参数 Lookup Gap 的 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 使用率在哪里?

我的实现不会被高度优化,类似于 try to run

我还看到了一个使用插值 (https://github.com/kramble/FPGA-Litecoin-Miner) 的 FPGA 实现,这对我来说更奇怪。我不知道他们如何对暂存器中的值进行插值。

谢谢!

【问题讨论】:

    标签: gpu fpga scrypt


    【解决方案1】:

    如果您没有点击预先计算的条目,则会增加 CPU 使用率。使用 LOOKUP 2,您正在计算 0-1023,但仅存储 0、2、4 等……因此,如果您需要便笺簿条目 3 的数据,则必须使用 2 中的数据即时计算它。这与将它们全部永久存储相比,这是一个额外的计算。随着查找差距的增加,您将进行的动态计算量也会增加。

    【讨论】:

    • 哦,有道理!我想我现在明白了。谢谢! :D
    猜你喜欢
    • 2018-01-23
    • 2011-08-07
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    相关资源
    最近更新 更多