3

内部メモリが 32KB しかないプロセッサ用の Litecoin Miner を開発しています。だから私は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のようなものです。

補間を使用する FPGA 実装 ( https://github.com/kramble/FPGA-Litecoin-Miner )も見ましたが、これは私にはもっと奇妙です。スクラッチパッドで値の補間を行う方法がわかりません。

ありがとう!

4

1 に答える 1

2

事前に計算されたエントリにヒットしないと、CPU 使用率が増加します。LOOKUP 2 を使用すると、0 ~ 1023 を計算しますが、格納するのは 0、2、4 などだけです。したがって、スクラッチ パッド エントリ 3 のデータが必要な場合は、2 のデータを使用してオンザフライで計算する必要があります。それらをすべて永久に保存するのではなく、余分な計算です。ルックアップ ギャップが増加すると、オンザフライ計算の量が増加します。

于 2014-01-26T16:47:00.183 に答える