Offtopic, aber vielleicht auch interessant:
Dass die CPUs schlecht rechnen können liegt in der Natur der Sache.
CPUs können beliebige Aufgaben (Algorithmen) berechnen weil jede dieser Aufgabe herruntergebrochen werden kann auf Grundrechenarten. Jeh nach Architektur der CPU können diese Grundrechenarten verschieden sein. (+,-,*,/ oder AND, OR, XOR, …). Ein Compiler bildet nun von Menschen geschriebene und lesbare Programme bzw. deren Anweisungen auf diese Grundrechenarten ab sodass die CPU diese Aufgaben abarbeiten kann und dann irgendwann das Ergebniss ausspuckt.
Wenn es für die Aufgabenstellung aber zB: gerade nicht erforderlich ist, dass die CPU * (Mal) rechnen kann oder ein OR berechnen kann, dann bleibt diese Einheit der Rechenmaschine ungenutzt. Diese Einheit läuft mit, verbraucht Energie und physikalischen Platz, wird aber für die Aufgabe nicht benötigt. Diese EInheit muss aber da sein weil sie für andere Aufgaben eventuell gebraucht wird.
Modernere CPUs bilden meist nicht mehr nur auf Grundrechenarten ab. Es geht schneller wenn häufig verwendete Operationen direkt berechnet werden können, zB. Arrays von Addierer, Arrays von Multiplizierer. Das hat den Vorteil, dass nicht nur zwei Bits in einem Schritt bearbeitet werden können, sondern ganze Bitfolgen und durch die Arrays sogar mehrere Zahlen. Das hebt die Rechengeschwindigkeit von Algorithmen, die diese Arrays verwenden.
Allerdings sind diese Einheiten dann auch spezialisierter. Solllten sie für die aktuelle Aufgabe nicht benötigt werden so sind nun umso mehr Schaltkreise unbenutzt, was Strom und Platz auf der CPU kostet.
Diese Prinzipien treffen auf alle Schaltkreise zu, die beliebige Algorithmen abarbeiten, also auch auf GPUs. GPUs haben nur den Vorteil, dass diese wegen den gewöhnlichen Grafikanwendungen auch hochparallelisiert sind. Die Farbe von jedem einzelnen Bildpunkt soll ja rechtzeitig bestimmt sein bevor er auf dem Bildschirm angezeigt werden kann. Dafür verzichtet die GPU entweder auf andere Rechenoperationen, die die CPU kann oder auf Taktraten/Geschwindigkeit, die ja theoretisch nur an den Bildschirm angepasst sein müssen.
Wenn wir jetzt zum Bitcoin-Mining kommen, dann haben wir fast ausschließlich Hashwertbeechnungen durchzuführen. Natürlich gibt es auch andere universellere Aufgaben wie Transaktionsinformationen vom Mempool abzurufen und Testblöcke daraus zu bilden. Aber die Hauptaufgabe ist diese Blöcke dann zu hashen. Die Hashfunktion wird viele Milliarden mal öfter aufgerufen als alles andere. Deswegen lohnt es sich für die Mininggeräte spezielle Schaltkreise zu entwickeln, die diese Aufgaben in Hardware gegossen abarbeiten.
Der Unterschied zu CPUs ist nun, dass diese SHA256-Einheiten nur einen einzige Aufgabe erledigen können, dafür aber auch optimiert sind. Kein einziger Unterschaltkreis wird abgeschaltet, jeder physikalischer Platz wird benutzt und ist darauf ausgelegt die vorgegebene Taktrate einzuhalten. Das macht die Schaltkreise energieeffizient, aber sie können auch nur diesen einen Algorithmus berechnen. Andere Algorithmen sind (meist) nicht möglich oder (Falls die Grundrechenarten auf die Hashes abgebildet werden könnten) dann wieder ineffizient (weil dann zB. für eine Addition zwei Hashes berechnet werden was einfach zu viel aufwand für diese einfache Operation ist.)
Man könnte das vielleicht mit einem Verbrennungsmotor vergleichen. Jeh nach Verbrennungstakt könnte man zB. auch Musik mit dem Motor machen, weil die Takte dann aber nicht so gleichmäßig sind und eine Verbrennung vielleicht an einer falschen Stelle für den Vortrieb stattfindet sinkt die Effizient des Motors. Benutzt man den Motor aber wie vorgesehen dann ist er wieder effizienter. Aber einen Motort sollte man eben nicht als Haus verwenden. Natürlich kann man in eine große Verbrennungskammer kriechen wenn er aus ist, aber so eine Konstruktion wäre für beide Verwendungszwecke ineffizient: Die Wohnqualität ist mieß, es stinkt nach den Verbrennungsgasen und immer wenn man den Motor benutzen will muss man raus, aber auch der Vortrieb wird ineffizienter durch die Nutzung des Wohnraumes, zB. weil andere Substanzen als die Verbrennungsgase in der Verbrennungskammer bleiben oder weill die dann vorhandenen Stahlmöbel im Weg sind.
Eine CPU versucht aber genau das: Für alle möglichen und vorstellbaren Algorithmen soll die CPU funktionieren, das geht eben nur auf Kosten der Effizienz. Trotsdem der schlechten Effizienz haben sich CPUs durchgesetzt, weil es einfach Vorteile hat mit einem Computer alles Vorstellbare machen zu können. Stell dir vor das wäre nicht so, dann würden die PCs zwar energieeffizienter sein, aber dann bräuchtest du zB. ein Handy zum Telefonieren, ein Handy als Wecker, ein Handy als Radio usw. Universelle Internetseitendarstellung wäre auch nur bedingt möglich weil alle verwendeten Algorithmen eine Hardware bräuchten.