我正在使用具有2G全局内存的AMD Radeon HD7850挖掘Litecoins,我的配置文件如下:
thread-concurrency=4096
lookup-gap=2
在阅读了scrypt13511.cl的算法后,我发现查找间隙用于时间-内存折衷。
当环接间隙为2时,它会消耗512MB全局内存,而当环接间隔为1时,它消耗1GB全局内存。
但在我将查找间隔更改为1后,哈希率从320K下降到300K。为什么在计算量较少的情况下速度较慢?
这基本上是CPU和内存的折衷因素。所以你有几个因素需要考虑。lookupgap与固定为每个hasher 128KB的scratchpad混淆(用于莱特币挖矿)。因此,基本上,你的GPU为每个核心都有一个小的本地内存,具有非常高的带宽和大的全局内存。(您可以在此处查看有关GPU内存拱门的更多信息:http://www.microway.com/hpc-tech-tips/gpu-memory-types-performance-comparison/)
因此,从根本上讲,scratchpad的操作是巨大的,如果你有更好的带宽,你就会有更高的速度。因此,可能发生的情况是,草稿行不适合您的本地内存,但当您将查找间隙设置为2时,您会得到一半的大小,因此它在本地内存上比以前更适合,因此GPU可以使这些操作成为本地操作。
还有一点,当你使用GPU的所有核心时,共享内存会出现问题:它们不能同时对内存进行读/写操作。对于本地内存,GPU的每个处理器都有自己的处理器,因此所有处理器都可以在暂存板上进行大规模的读/写操作。
这是一个可以使哈希率下降的因素,但不一定如此。有很多因素可以改变你的哈希率。我希望它有帮助:D
也许是因为还有其他因素,比如内存访问时间和内存带宽?