Mai 5, 2019

ELI9: Das Qubic-Berechnungsmodell

ELI9: Das Qubic-Berechnungsmodell

Eine einfache(re) Erklärung des Qubic Computation Models, zusammen geschrieben nach Diskussionen zwischen Andrew Brough, Jake Cahill, Sabri Goldberg, Sergey Ivancheglo, Igor Nielsen, Navin Ramachandran und David Sønstebø. Ein ELI5 wahrscheinlich nicht ganz.

.    .     .

In diesem Blogbeitrag werden wir untersuchen, wie Computer auf einer grundlegenden Ebene funktionieren und wie wir einen etwas anderen Ansatz mit Qubic  verwenden. Wir nennen diesen Ansatz das Qubic Computation Model (QCM).

Warum bauen wir ein neues Berechnungsmodell auf?

IOTA zielt darauf ab, eine Machine-to-Machine-Wirtschaft für Geräte im Internet der Dinge zu ermöglichen. Diese Geräte müssen mit geringem Stromverbrauch und in rauen physischen Umgebungen funktionieren.

Traditionelle Elektronik verwendet komplexe Mechanismen, die viel Energie verbrauchen und empfindlicher auf diese Umgebungen reagieren. Mit dem QCM wollen wir ein energieeffizienteres und belastbareres Modell für solche Geräte erstellen.

QCM geht auf das Jinn Labs-Projekt (von Anfang 2013) zurück, in dem es um neue Hardwareansätze für Fog- / Edge-Computing und verteilte künstliche Intelligenz geht. Seitdem hat die gesamte Halbleiterbranche diese neue Philosophie von „More-than-Moore“ erkannt: Die Zukunft der Berechnung erfordert innovative Ansätze, statt sich auf das Moore'sche Gesetz für fortlaufende Verbesserungen der Rechenleistung zu verlassen.

Die QCM-Initiative nahm in der Geschichte von IOTA einen besonderen Platz ein. Sie skizzierte die Vision eines organischen Maschinen-Ökosystems, das mit der Distributed Ledger-Technologie verknüpft war, aus der IOTA hervorging.

Was ist ein Berechnungsmodell?

Ein Berechnungsmodell beschreibt, wie ein Computer funktioniert.

Ein Computer entnimmt Daten, bearbeitet sie und gibt ein Ergebnis zurück. Dieser Vorgang wird als Berechnung bezeichnet und ist das Herzstück von allem, was Computer tun. Auf diese Weise errechnen Computer die Summe „1 + 1 = 2“. So geben Computer einen Buchstaben auf dem Bildschirm aus, wenn du eine Taste auf der Tastatur drückst. So machen Computer im Prinzip alles.

‌                                                                         Upload

Der Pfad, den Daten von der Eingabe zum Ergebnis durch eine Berechnung nehmen, wird als Fluss bezeichnet. Wenn wir über Berechnungsmodelle sprechen, interessieren wir uns für diesen Fluss. Mit Berechnungsmodellen können wir den Datenfluss visualisieren, um den besten Weg zu finden, mit dem ein Computer ein Ergebnis erzielen kann. Mit dem Modell im folgenden Video können Sie beispielsweise verschiedene Münzen einwerfen und beobachten, wie sie durch die Kanäle fließen, bis sie am Ende sortiert sind.

https://giphy.com/gifs/educational-coin-sorter-Zc6U9bUpctfTW

In fast allen Computern und digitalen Geräten erfordern die herkömmlichen Berechnungsmodelle recht komplexe Mechanismen, um den Datenfluss zu handhaben. Das QCM kann jedoch den Datenfluss auf viel billigere und einfachere Weise handhaben.

Bitte beachte, dass herkömmliche Computer mit binären Daten arbeiten - alle Daten in binärer Form werden als 0 oder 1 dargestellt - diese Zahlen werden als Bits bezeichnet. QCM arbeitet mit trinären Daten - hier werden die Daten mit -1, 0 oder +1 dargestellt - diese Zahlen werden Trits genannt.

Nun werden wir mit den Grundlagen beginnen und untersuchen, wie das QCM funktioniert und woraus es besteht. Anschließend werden wir erläutern, wie ternäre Datenflüsse effizienter sind als binäre.

.     .     .

Erstellen eines einfachen QCM

Um die Funktionsweise des QCM zu veranschaulichen, betrachten wir eine grundlegende Berechnung: Wie prüfen wir, ob zwei verschiedene Eingaben identisch sind?

Wenn zum Beispiel ein Eingang 0 ist und der andere Eingang ebenfalls 0 ist, können wir daraus schließen, dass sie gleich sind.

Um zu zeigen, wie einfach es ist, das Qubic-Berechnungsmodell für diese Situation zu erstellen, malen wir ein Bild, mit dem die meisten von uns vertraut sind: Ein Sandstrand. Stellen Sie sich jetzt diesen Strand vor mit:

  • Kanälen im Sand, die einen elektrischen Stromkreis darstellen
  • Kanaleingängen, in die wir Wasser einfüllen können - das sind die Daten
  • Kleine Staudämme, die Berechnungen darstellen (dargestellt durch die Dammskizzen im Bild unten)

‌                                                                         Upload

Um zwei Eingänge (Cyan und Orange) zu vergleichen, gießt ein Kind (nennen wir es Alice) Wasser in einen Cyan-Eingang und einen Orange-Eingang. Diese beiden Eingänge können einen der drei Werte darstellen: -1, 0 und +1. Denke daran, dass diese Werte Trits genannt werden.

Nun reicht ein Kanal nicht mehr aus, um den Fluss bis zum Scheitel des Dams steigen zu lassen. Schauen wir uns mal zwei verschiedene Fälle an.

Stelle dir zunächst vor, dass Alice Wasser in den 0-Trit Kanal der Cyan- und Orange-Eingänge gießt. Wenn du den Kanälen von diesen Eingängen aus folgst, wirst du feststellen, dass beide Kanäle zum selben Damm führen. Wenn beide Kanäle zum gleichen Damm führen, steigt das Wasser ausreichend nach oben und fließt darüber. Wir können also sagen, dass, wenn Wasser über den Damm fließt, beide Eingabewerte gleich waren (0 und 0 in diesem Fall).

‌                                                                         Upload

Gleiche Tritwerte

Nun wollen wir sehen, was passiert, wenn Alice Wasser in den -1-Trit-Kanal des Cyan-Eingangs und den 0-Trit-Kanal des orangenen Eingangs gießt. Die Kanäle von diesen Eingängen führen zu verschiedenen Dämmen. Wenn nur ein Kanal zu einem Damm führt, reicht das Wasser nicht aus, um über den Damm zu steigen. Wir können also sagen, dass, wenn Wasser nicht über einen Damm steigt, die beiden Eingabewerte nicht gleich waren (in diesem Fall -1 und 0).

‌                                                                         Upload

Ungleiche Tritwerte

Dieser Ablauf stellt eine grundlegende Berechnung dar. Das Wasser, das über den Damm fließt, ist das Ergebnis der Berechnung.

Solange Alice ständig Wasser in die gleichen Eingänge gießt, bleibt das Ergebnis gleich. Wenn zum Beispiel die beiden Eingangswerte gleich sind, fließt das Wasser weiterhin über den Damm und Alice sieht das Ergebnis. Um dann verschiedene Werte zu vergleichen, muss Alice den Wasserfluss stoppen, ihre Eimer in das Meer füllen und Wasser in die neuen Eingänge gießen.

Die Fusion

An unserem Strand spielen die Staudämme eine entscheidende Rolle. Sie helfen zu entscheiden, ob zwei Trits gleich sind, und Wasser kann nur dann über sie fließen, wenn sie gleich sind. Wenn Wasser über die Dämme fließt, endet es an der Stelle, an der sich alle drei Kanäle treffen. Dieser Punkt wird Fusion genannt.

Es ist die Aufgabe des Zusammenschlusses, das Ergebnis weiterzugeben, damit weiter gerechnet werden kann. Sie können zum Beispiel sagen: "Wenn diese Trits gleich sind, dann mache die nächste Staustufe".

Damit du sehen kannst, wie dieses System funktioniert, findest du hier eine Übersicht, eine Look-Up-Tabelle (LUT), die beschreibt, was mit dem Wasser geschieht, abhängig von den verwendeten Eingängen.

‌                                                                         Upload

Schauen wir uns diese LUT mal in Aktion an…

‌                                                                         Upload

Die Fusion

Hinweis: Du hast die Kontrolle über diese LUT. Wenn du die Ausgabe ändern möchtest, kannst du die LUT aktualisieren. In dieser aktuellen Form müssen beide Eingänge gleich sein, damit Wasser über einen Damm fließen kann. Aber was wäre, wenn du willst, dass beide Eingänge ungleich sind, damit Wasser über den Damm fließen kann? Nun, dann müssen wir unser Beispiel erweitern, worauf wir später in diesem Artikel eingehen werden. Aber zunächst einige Konzepte.

.        .         .

Warum ist das QCM anders?

Erstens der wichtigste Aspekt. Die Tatsache, dass wir QCM-Instanzen an einem Strand erstellen können zeigt, wie einfach sie sind. Sie benötigen keine zusätzlichen Komponenten.

Bei herkömmlichen Berechnungsmodellen würden wir komplexere Geräte benötigen, um das Wasser entlang der Kanäle zu bewegen und um Gefahren zu beseitigen. Diese Gerät wären anfälliger für einen Ausfall und würden zusätzlich Energie verbrauchen.

Daher bietet diese Einfachheit des QCMs seine Vorteile in Bezug auf Energieeffizienz und Belastbarkeit (z. B. in rauen physischen Umgebungen, in denen komplexe Elemente anfälliger für Fehler sind). Aber auch dieser Ansatz hat das Potenzial, viele der aktuellen Hauptprobleme bei der Chipherstellung (Taktverschiebung, dunkles Silizium, Überspringen, Gefährdungen, PVT-Schwankungen und Strahlungsanfälligkeit) zu überwinden, wobei die Details dazu nicht in einen ELI9-Artikel gehören.

Der Zweig und Supervisor

An unserem Strand müssen wir nur die Kanäle, die Mikro-Staudämme und Alice berechnen. Die Kanäle und Dämme werden zusammen als Zweig bezeichnet, und Alice wird als Supervisor bezeichnet.

Unser Zweig führt nur eine Art von Berechnung aus, bei der zwei Trits auf Gleichheit überprüft werden. Wir hätten unseren Zweig jedoch auch komplexer machen und weiter ausbauen können, um beispielsweise einen Zweig zu erstellen, der prüft, ob die Trits ungleich sind.

Den Zweig erweitern

In diesem Beispiel haben wir unseren Zweig erweitert. Wenn nun die Trits ungleich sind, erhält die Fusion ein Ergebnis von -1. Wenn die Tricks gleich sind, erhält die Fusion ein Ergebnis von +1. Betrachte die nachstehenden Diagramme, um dir selbst ein Bild zu machen.

‌                                                                         Upload

Denke daran, wir haben gesagt, dass wir die LUT aktualisieren können? Wir können die Ausgabe dieser neuen LUT also umkehren, so dass:

  • Wenn die Trits gleich sind, erhält die Fusion ein Ergebnis von -1
  • Bei ungleichen Trits erhält die Fusion ein Ergebnis von +1

Diese Ergebnisse können dann im nächsten Schritt weiter verwendet werden.

Speicher rastet ein

Was passiert, wenn Alice eine Pause braucht und ihr Ergebnis nicht vergessen möchte?

Es ist Mittag, und Alice möchte zu ihrer Familie gehen. Sie möchte jedoch nicht vergessen, dass ihre letzten beiden Trits gleich waren, und auch nicht, dass der Zusammenschluss aufhört, ihr Ergebnis weiterzugeben. Also beschließt sie, ihren Wasserkühler zu verwenden.

Nun, da Alice eine Wasserquelle hat, braucht sie einen Weg, um es zur Fusion zu lenken. Dafür gräbt sie einen direkten Kanal von ihrem Wasserkühler zur Fusion.

Zusammen werden der Wasserkühler und der Kanal, der ihn mit der Fusion verbindet, als Memory Latch bezeichnet. Ein Memory-Latch hilft Alice nicht nur, das Ergebnis zu speichern, sondern bewahrt sie auch vor dem kontinuierlichen Gießen von Wasser, so dass die Fusion das Ergebnis an den nächsten Schritt weitergibt.

.         .          .

Die Rolle von Alice

Um es einfach zu halten, kehren wir zu unserem ursprünglichen Zweig zurück, der nur nach Trits sucht.

‌                                                                         Upload

In unserer Filiale gießt Alice Wasser in zwei Eingänge, die in eine Richtung fließen, den Ast hinunter und in Richtung der Fusion. Dieser Zweig gibt einen einzelnen Trit aus (+1 für gleich), der das Ergebnis unserer Berechnung ist.

In der QCM wird Alice Supervisor genannt. Alice ist der Schlüssel zu QCMs Einfachheit. Alice (die Supervisorin der Niederlassung) macht das schwere Heben, während die Niederlassung selbst sehr einfach gehalten werden kann, was es gegenüber äußeren Einflüssen resistent macht. Tatsächlich benötigen einige Zweige keinen eigenen Supervisor und können die Ausgaben anderer Zweige verwenden, um ihren Fluss zu regulieren.

Alice ist der Schlüssel zu QCMs Einfachheit. Alice (die Supervisorin der Niederlassung) macht das schwere Heben, während die Niederlassung selbst sehr einfach gehalten werden kann, was es den äußeren Faktoren erschwert. “

Umwelt, Entitäten und Effekte

In einem früheren, eher technischen Blogbeitrag beschreiben wir die Idee von Entitäten, Effekten und Umgebungen (EEE).

Unsere Niederlassung ist ein Beispiel für eine Entität. Es ist die Aufgabe der Entität, eine Berechnung mit einigen Eingabedaten durchzuführen. Diese Eingabedaten werden der Entität von Alice, unserer Supervisorin, übermittelt.

Alice entnimmt Daten aus einer anderen Umgebung, wenn sich etwas in dieser Umgebung ändert. Diese Änderung wird als Effekt bezeichnet. Ein Beispiel für eine Umgebung könnte ein anderer Zweig sein, und eine Änderung (auch als Effekt bezeichnet) könnte das Abfließen von Wasser in einer Ausgabe sein.

Dieser Vorgang wird als Welle bezeichnet. Dabei übernimmt der Supervisor Daten aus einer Umgebung und gibt sie als Eingabe an unsere Niederlassung weiter, damit diese durchfließen und in einem Ergebnis enden können.

Wie bereits erwähnt, benötigen nicht alle Niederlassungen in QCM einen eigenen Supervisor. Jede Niederlassung kann Daten vom Supervisor einer anderen Niederlassung empfangen.

Durch den einfachen Datenfluss ist QCM kostengünstiger und einfacher zu implementieren als herkömmliche Berechnungsmodelle.

.         .         .

Die Kraft von drei

Du erinnerst dich vielleicht, wir haben gesagt, dass QCM Trinary verwendet. Dies liegt daran, dass das Trinary-System effizienter ist als das binäre. Nun, da wir unseren ersten Zweig im Sand gebaut haben, können wir erklären, warum er effizienter ist.

An unserem Strand hat Alice 2 Eingänge mit jeweils 3 Kanälen (insgesamt = 6 Kanäle), die jeweils Platz beanspruchen. Um effizienter zu sein, ist es das Ziel von Alice, möglichst wenig Platz am Strand für eine maximale Anzahl von Berechnungen zu verwenden. Strandplatz ist nicht billig!

Jeder Eingang in unserer Niederlassung akzeptiert jeweils einen Trit. Daher kann Alice diese sechs Kanäle verwenden, um Berechnungen für eine beliebige Zwei-Trit-Nummer durchzuführen (einen für jeden Eingang).

Wie würde unser Modell aussehen, wenn wir die gleiche Anzahl (6) von Kanälen an einem Strand verwenden würden, die binär (0 und 1) anstelle von Trinary (-1, 0 und +1) verwendet haben? Nun, Alice würde 2 Kanäle pro Eingang benötigen (jedes Bit hat zwei mögliche Werte), und so könnten wir 3 Eingänge haben (2 Kanäle x 3 Eingänge = 6). Daher konnte sie drei Eingänge mit diesen sechs Kanälen verwenden, um Berechnungen mit einer beliebigen 3-Bit-Zahl durchzuführen.

Das klingt vielleicht so, als wäre binär effizienter, weil wir eine Drei-Bit-Nummer anstelle einer Zwei-Trit-Nummer im selben Bereich haben, aber schauen wir uns das genauer an.

In Trinary kann ein Trit einen von drei möglichen Werten annehmen: -1, 0 oder +1. An unserem Strand kann Alice zwei Trits verwenden. Daraus ergeben sich 3² (= 3x3) mögliche Kombinationen, wodurch sich 9 mögliche Werte ergeben. Beachten Sie, dass dies mit den 9 möglichen Kombinationen der zuvor beschriebenen LUT übereinstimmt. So kann Alice die 6 Kanäle verwenden, um 9 Werte aus einer Zwei-Trit-Zahl zu verarbeiten.

Im Binärmodus kann ein Bit einen von zwei möglichen Werten annehmen: 0 oder 1. An unserem binären Strand kann Alice drei Bits eingeben. Daraus ergeben sich 2³ (= 2x2x2) mögliche Kombinationen, wodurch sich 8 mögliche Werte ergeben. So kann Alice die 6 Kanäle verwenden, um 8 Werte aus einer Drei-Bit-Zahl zu verarbeiten.

‌                                                                         Upload

Durch die Verwendung von Trinary anstelle von Binary kann Alice den gleichen Speicherplatz und die gleichen sechs Kanäle verwenden, um Zahlen zu verarbeiten, die einen Maximalwert von 9 anstelle von 8 haben. Diese Einsparung hilft Alice, die meisten Berechnungen auf kleinstem Speicherplatz durchzuführen.

Obwohl eine Verbesserung um 1/8 (9 statt 8) nicht signifikant erscheint, sind unsere Berechnungen jedoch wesentlich effizienter. Diese Effizienz wird offensichtlicher, wenn wir komplexe Berechnungen wie Multiplikation oder sogar KI durchführen.

Hinweis: 4-ry ist nicht effizienter als 3-ry (Trinary). Bei 12 Kanälen würden wir drei 4er-Zahlen mit 64 Werten (4³) oder vier 3er-Zahlen mit 81 Werten (3⁴) erhalten. Wieder sehen wir, dass Trinary effizienter ist. In der Tat wäre jedes andere N-Ry noch schlimmer als das 4-Ry.

.         .         .

TLDR

Wir haben oben gezeigt, wie wir mit QCM den Datenfluss einfach halten können. Dies ist der Schlüssel für die simple und kostengünstige Herstellung von Chips und bedeutet, dass die Schaltung extremen Umgebungen standhalten kann.

Wir haben auch gezeigt, wie der Einsatz von Trinary die Effizienz des Systems weiter verbessern kann.

Wenn diese Änderung in großem Maßstab angewandt wird, kann dies die Computerwelt erheblich beeinflussen.

‌                 ‌

Quelle: https://blog.iota.org/eli9-the-qubic-computation-model-623417f94777