Was bestimmt die SHA256-Leistung auf verschiedenen Hardwaretypen?

Ich weiß, dass die Antworten auf viele Fragen hier kurz auf diesen Punkt eingehen, aber ich möchte eine konsolidierte Antwort erhalten, die wirklich die wichtigsten Unterschiede zwischen verschiedenen Hardwaretypen berührt, wodurch SHA256 eine bessere Leistung erbringt, anstatt die weniger verwandten Tangenten andere Fragen diskutieren. Während meine unmittelbare Sorge mit Bitcoin ist, weiß ich, dass einige andere Kryptowährungen andere Algorithmen verwenden, also fühlen Sie sich frei, auf sie zu verweisen, wenn es hilft, Ihren Standpunkt zu verdeutlichen.

  • Warum funktioniert der Bitcoin-Hash-Algorithmus SHA256 auf verschiedenen Hardwaretypen besser? Was macht ein ASIC/FPGA in der Lage, mehr H/s als eine GPU, eine GPU als eine CPU usw. zu berechnen?

  • Was ist „die Komplexität der Kerne“? Ist dies ein Hinweis auf die Anzahl der Kerne oder auf die tatsächliche Die-Komplexität? Warum ist dies in beiden Fällen kein Faktor für die SHA256-Leistung? Bezug nehmend auf David Perrys Antwort hier :

Es ist übrigens wichtig anzumerken, dass das einzige, was Ihnen nicht mehr Hashes pro Sekunde bringt, die Komplexität der Kerne ist. Aus diesem Grund stellt Nvidia zwar großartige Karten für Spielzwecke her, aber sie sind schlecht für das Mining - Spiele nutzen exotische neue Anweisungen besser als SHA256.

  • Kann SHA256 überhaupt optimiert werden, um eine bessere Leistung pro Architektur zu erzielen? Können Optimierungen am Double-Hashing-Prozess vorgenommen werden?

Antworten (2)

Die Bergbauleistung kann als aus zwei Faktoren bestehend betrachtet werden. Eine davon sind die insgesamt verfügbaren Ressourcen. Die andere ist, welcher Bruchteil dieser Ressourcen Sie sinnvoll für den Bergbau einsetzen können.

ASICs und FPGAs zeichnen sich beim Mining aus, da Sie einen sehr hohen Anteil ihrer verfügbaren Ressourcen effektiv für das Mining nutzen können. CPUs sind schlecht im Mining, weil ein großer Teil ihrer Ressourcen für das Mining nutzlos sind – sie sind für Speicherzugriff, Entscheidungsfindung, Gleitkomma-Mathematik und viele andere Dinge optimiert, die beim Mining überhaupt nicht helfen.

Die „Komplexität der Kerne“ bezieht sich darauf, wie ausgefeilt die Operationen sind, die die Kerne ausführen können. Dies hilft nicht beim Mining, das nur sehr einfache Operationen erfordert, und erhöht somit nur den Anteil der verfügbaren Ressourcen, die Sie nicht für das Mining verwenden können.

SHA256 kann für jede Architektur stark optimiert werden. In den frühen Tagen des Minings gab es ein riesiges „Wettrüsten“, um das Mining für verschiedene Architekturen mikrooptimiert zu machen.

Wenn ich darf, und das ist vielleicht ein bisschen daneben, aber es ist ungefähr die richtige Idee.

Weiter mit der Antwort von Mr. Scwartz.

Eine weitere wichtige Rolle in H/s spielen OpenCL und CUDA. Jeder stellt ein Kommunikationsmittel/ein Protokoll zwischen Herstellern bereit, damit unterschiedliche Hardware leichter interagieren kann. Wie Schwartz sagte, müssen Sie die Rechenleistung (Ressourcen) des Chips nutzen, damit er nützlich ist. OpenCL und CUDA ermöglichen es Software, viele verschiedene Hardwarekomponenten gleichzeitig zu nutzen. Einige der Schritte zum Mining können also auf der CPU ausgeführt werden, während andere auf der GPU ausgeführt werden. Dank OpenCL können Sie einfach eine Funktion aufrufen und sie wird die verfügbaren Ressourcen nutzen. (Ich sage nicht, dass OpenCL eine Funktion doHash() hat, sondern eher etwas in der Art von if(elegantWork) useCPU; sonst if(bruteWork) useGPU;)

Auch die Computer-Maschinensprache-Architektur würde eine große Rolle spielen. Der ISC (Instruction Set Computer) ist ein Computer mit einem definierten Satz von Anweisungen, die sein Prozessor ausführen kann. Es gibt also viele Arten. RISC, ARM usw. (Idk viele von ihnen oder viel über ihre Unterschiede) Aber einige haben Anweisungen, die für das Mining nützlich sind, und einige haben solche, die es nicht sind. Es gibt Schaltungen in einigen Chips, die versuchen, die Zukunft zu erraten. Wenn es also sieht, dass Sie eine Verzweigungsanweisung ausführen werden, versucht es möglicherweise, an jedem Zweig voranzuarbeiten, und sobald es weiß, wird es alle anderen fallen lassen und mit dem richtigen Zweig fortfahren . Nun, beim Hashing ist dies möglicherweise nicht erforderlich, daher ist der Teil des Chips für uns nutzlos, wenn wir hashen möchten.

ASICs und FPGAs sind Chips (Integrated Circuits), die speziell für den Bergbau entwickelt wurden. Sie haben nur Schaltkreise, die sie hashen müssen, und zwar viele davon, und werfen den Rest des regulären Zeugs weg. Aus diesem Grund eignet sich ein ASIC nur dann zum Hashen, wenn dies seine Anwendung ist (er "weiß" nur, wie man hasht). FPGA ist ein Field Programmable Gate Array, es ist eine Reihe von Mehrzweck-Gattern (Schaltungen) auf einem Chip, die für eine bestimmte Aufgabe (wie Hashing) programmiert werden können, aber es gibt noch einige andere Dinge, die nicht nützlich sind. Das andere Zeug ist da, damit es für allgemeine Zwecke verwendet werden kann. (Leute schreiben Software, damit sie Ressourcen gut nutzt, HardwareDescriptionLanguage HDL beschreibt physikalische Schaltungen und es wurde verwendet, um Code zu schreiben, der FPGAs programmiert; wenn Sie also ein FPGA bekommen und minen möchten,

So kann die Leistung eines bestimmten Chips anhand der Anweisungen bestimmt werden, die er verarbeiten kann, wie gut er diese Anweisungen verarbeiten kann und wie effizient er ist (wenn es Sie interessiert). Da es auf der Welt unzählige einzigartige Probleme gibt, versuchen wir, unzählige einzigartige ICs mit unzähligen Fähigkeiten zu erschaffen.