Scrypt (Litecoin) Speicher / Leistungskompromisse

Wenn für Litecoin die Speichergröße bei der Verarbeitung des Scrypt-Algorithmus erhöht wird, beispielsweise auf 384 kB statt 128 kB (und unter der Annahme einer ebenfalls L2-Cache-Größe von 384 kB), wäre die typische CPU-Architektur (x86, PPC usw.) wahrscheinlich eine entsprechende Leistungssteigerung zu sehen? Und wenn eine größere Speichergröße verwendet würde, würde die Mining-Ausgabe zu 100 % mit Litecoin kompatibel bleiben (ich glaube, die Antwort ist ja, aber ich stelle auch fest, dass fast alle GPU-Miner feste Scrypt-Parameter für N, r und p verwenden).

Mir ist klar, dass die Erhöhung der BlockMix-Speichergröße aus verschiedenen Gründen normalerweise nicht auf GPU-Architekturen erfolgt. Außerdem ist mein Ziel kein profitables Litecoin x86-CPU-Mining – ich möchte nur sicher sein, dass ich den Kompromiss zwischen Speicher und Leistung verstehe.

Antworten (3)

Wenn für Litecoin die Speichergröße bei der Verarbeitung des Scrypt-Algorithmus erhöht wird, beispielsweise auf 384 kB statt 128 kB (...), würde die typische CPU-Architektur (...) wahrscheinlich eine entsprechende Leistungssteigerung erfahren?

Nein, es funktioniert umgekehrt. Wenn Sie den Speicher erhöhen, der von der Verschlüsselung verwendet wird, um einen einzelnen Hash zu generieren, erhöht sich theoretisch die Zeit, die für die Generierung benötigt wird. Die Zeit kann sich nicht erhöhen, wenn die Verarbeitungseinheit ihr schnellstes Bargeld in einem einzigen Datenübertragungsaufruf vollständig verwenden kann. Sie benötigen jedoch standardisierte Hardware, und Sie möchten die Scrypt-Speichergröße bewusst dafür anpassen. Was auf globaler Benutzerebene unbequem ist.

Außerdem können Sie nicht persönlich über die Speichergröße von scrypt entscheiden. Dies ist eine universelle Vereinbarung aller Litecoin-Benutzer, dass die Speichergröße des Verschlüsselungsalgorithmus N Bytes betragen muss. Wenn Sie etwas anderes verwenden möchten, wird jede von Ihnen ausgegebene Transaktion niemals von anderen Benutzern validiert.

Nein. Erhöhen Sie die Blockgröße auf 384 KB, um den Verschlüsselungsalgorithmus nicht zu unterstützen. Litecoin mit den Verschlüsselungsparametern N = 1024, R = P = 1, die nur 128 KB Speicherplatz für eine einzelne Berechnung benötigen. Und sie sind bereits vollständig ausgerichtet, kein spärliches Array. Das Modellieren kleiner Daten in einem größeren Speicherplatz bedeutet eine schlechte Lokalität.

Der Schlüssel zur Beschleunigung von Scrypt ist Parallelität, da der Mining-Prozess eine gültige Nonce im sehr großen Lösungsraum finden soll. Wenn also der Speicher der Engpass ist, muss die CPU auf den Abschluss der Lese-/Schreiboperationen des Speichers warten, bevor sie mit der aktuellen Hash-Berechnung fortfahren kann, aber tatsächlich kann die ALU (oder Compute Units) der CPU weitermachen und andere Anweisungen anderer Hash-Berechnungs-Threads ausführen die keinen Speicherzugriff benötigen oder deren Daten jetzt fertig sind. Das ist der Schlüssel zur Einführung von SIMD. Die CPU-AVX-Leistung ist also besser als SSE/MMX, und neuere AVX-2 können eine bessere Leistung erzielen.

In der GPU gibt es viele Recheneinheiten, es ist nicht so, dass die CPU nur 2/4/8/... Kerne hat. GPU verfügt über viele Streaming-Prozessoren und Scheduling-Hardware. Wenn eine Berechnung auf den Abschluss des GDDR-VRAM-Zugriffs wartet, kann sie die ALU-Hardware so planen, dass sie andere Berechnungen durchführt.

Tatsächlich hat das aktuelle GPU-Mining die beste Speicherblockgrößenkonfiguration pro Scrypt-Hashing, die Lookup-Lücke beträgt 2. Dies bedeutet nur 64 KB pro Scrypt-Vorgang. Denn in CPU oder GPU ist der Zugriff auf den globalen Speicher sehr umfangreich und scrypt hat kein vollständig lineares Speicherzugriffsmuster. (es greift zufällig auf vektorisierte Daten zwischen Index 1 bis 1024 zu). Ein geringerer Speicherzugriff kann also auch die Gesamtrechenzeit beschleunigen, aber der Overhead besteht darin, dass die GPU Daten berechnen muss, die zuvor nicht im Speicher gespeichert wurden. Beispielsweise berechnet die GPU vektorisierte Daten von 1 bis 1024, speichert aber nur 1,3,5,7, ... Wenn also der Verschlüsselungsalgorithmus Daten mit Index = 4 benötigt, muss GPU Daten mit Index = 3 abrufen und neu berechnen um die Daten für index=4 zu gewinnen. Aber die Berechnung für Index = 4 im privaten Speicher (GPRs, General Purpose Registers, GPU hat viele davon) ist sehr schnell. Aber die Leistung wird nicht immer durch Vergrößern der Nachschlagelücke verbessert. Der Speicherzugriff wird zwar erheblich reduziert, aber die GPU muss redundante Arbeit leisten, um die Daten häufig neu zu berechnen. Wenn beispielsweise die Suchlücke = 3 ist, speichert die GPU nur 1,4,7, ... Aber wenn scrypt Daten von Index = 6 benötigt, muss es Daten von Index = 4 abrufen und die Berechnung zweimal durchführen.

Ich glaube, dass die meisten Leute Mining ausprobieren und dann wirklich darüber nachdenken sollten, warum Sie Mining betreiben. Neugierig? Spaß? Geld? Glauben Sie an die Kryptowährung?

Ich persönlich denke, dass Kryptowährungen hier bleiben werden. Litecoin liegt hinter Bitcoin an zweiter Stelle, aber der Abbau kann super profitabel sein, wenn der Preis für das, was Sie abgebaut haben, wie bei Bitcoin in die Höhe schießt. Dieses Zeug ist wie Gold. Keine Regierung kann es entwerten, indem sie mehr Papiergeld druckt und seinen Wert verwässert. Dies passt genau zur Beschreibung einer guten Währung.

Was ist, wenn Litecoin von unter 30 pro Münze auf 800 pro Münze steigt? Die 6 US-Dollar pro Tag für Strom, die Sie zuvor ausgegeben haben, sind Ihnen jetzt egal, oder?