20101229110207-1.jpg

Auf die Idee, einen Computer zu bauen, der nicht gut rechnen kann, muss man erst mal kommen. Aber warum sollte man? Wäre so eine Kiste denn nicht völlig nutzlos (vor allem, wenn man bedenkt, dass selbst korrekt funktionierende Rechner nicht unbedingt immer den Nutzen der Menschheit mehren)? Im Gegenteil, findet Deb Roy, Professor am Media Lab des Massachusetts Institute of Technology, der – wie ich in dieser MIT-Pressemitteilung lesen konnte – gemeinsam mit seinem Kollegen Joseph Bates an genau so einem Chip bastelt.

Angenommen, so ein Fuzzy-Math-Chip läge in seine Ergebnissen in einer Schwankungsbreite von zwei Prozent um das korrekte Resultat herum; das wäre für einige Aufgaben – zum Beispiel bei dem Problem, auf einem Foto Objekt und Hintergrund zu unterscheiden – durchaus noch ausreichend: Hier wäre selbst mit den besten Chips schon eine Trefferquote von etwa 50 Prozent das Beste, was man derzeit erwarten kann. Die Frage ist nur: Wie schwer würde in solcher Rechenfehler am Ende ins Gewicht fallen? Die beiden Professoren ließen das mal von einem Studenten am praktischen Beispiel simulieren; heraus kam, dass ein solcher schlecht rechnender Chip etwa 14 von einer Million Pixels auf einem Foto falsch einordnen würde. “Ein Mensch würde das gar nicht merken”, meint Bates.

Vergleichbar wäre dies mit einer Überschlagsrechnung, wie wir sie oft im Kopf ausführen: Wenn ich nur weiß, dass ich mein Auto mit etwa 100 Kilometer pro Stunde fahre und die Karre sieben Liter auf hundert Kilometer verbraucht, dann kann ich leicht im Kopf abschätzen, dass es mit einem 40-Liter-Tank nach etwa fünfeinhalb Stunden Fahrt an der Zeit ist, eine Tankstelle aufzusuchen. Ob es nun 5,42 Minuten oder 5,43 Minuten wären, ob der Tank nun exakt mit 42 Litern gefüllt war (oder vielleicht ein paar Kubikzentimeter mehr oder weniger) und ob man die Durchschnittsgeschwindigkeit von 100 km/h auch wirklich eingehalten hat oder vielleicht eher bei 102 oder 98 km/h liegt, ist dabei ziemlich egal.

Dieser Chip (den es bisher nur in der Theorie gibt – Bates und Roy haben dessen Funktion anhand eines Algorithmus simuliert, der nach dem Zufallsprinzip die Rechenresultate um plus oder minus ein Prozent verändert) kann zwar nicht sehr gut rechnen – aber er hätte andererseits einen ernormen Vorteil: Er könnte kleiner, billiger und sparsamer sein als herkömmliche Hochleistungs-Prozessoren. Und gerade weil er seine Zeit nicht mit Präzision verschwendet, wäre er auch viel schneller. Manchmal ist knapp daneben nicht nur gut genug – es kann sogar die bessere Lösung sein …

flattr this!

Kommentare (26)

  1. #1 W-
    3. Januar 2011

    Künstlich Rauschen hinzuzufügen ist doch nichts neues?
    Wenn die Herren Roy und Bates einen Algorithmus (oder besser noch, eine eigene Sprache) geschrieben hätten, die es einem Computer erlauben würde, Ergebnisse “pi mal Daumen” abzuschätzen, das wäre erwähnenswert! Aber einem Computer die “Intuition” zu geben, wann eine Berechnung abgebrochen, abgekürzt oder vereinfacht werden darf und kann enthält Aspekte, die mich an das Biber-Problem erinnern.

    Wenn man dann noch bedenkt, wie kompliziert es sein muss semi-deterministische Gatter-Schaltungen zu entwerfen, dann wird es wohl noch eine Weile dauern bis wir irrende Computer haben! Wenn wir diese aber hätten, wüsste Douglas R. Hofstadter sicher etwas mit ihnen anzufangen 😉

  2. #2 Tomtom
    3. Januar 2011

    Analogrechner mit Operationsverstärker machen doch genau das?? F*cking fast, das Ergebnis jedoch abhängig von der Umgebungstemperatur etc.

    Tomtom

  3. #3 schlappohr
    3. Januar 2011

    @Jürgen

    “[…] so ein Fuzzy-Math-Chip […]”

    Bist Du sicher, dass hier Fuzzy-Logic verwendet wird? Fuzzy-Controller sind ein alter Hut, die bestehen aus herkömmlicher digitaler Logik und sind eigentlich nur ein in Silizium gegossenes Simulationsmodell, d.h. sie arbeiten auf unterster Ebene streng deterministisch (siehe hier: https://www.bo.infn.it/dacel/papers/99_07_atene_CSCC.pdf, ziemlich technisch). Um soetwas würden Roy et.al. kaum soviel Aufhebens machen.
    Ich vermute eher, dass sie wirklich eine neue Schaltungsstruktur entworfen haben, die sich nicht so einfach auf die herkömmliche Chiptechnologie abbilden lässt. Die PR-Mitteilung gibt leider nicht viel her, aber im letzten Abschnitt heißt es: “[…] depending on how Bates’ chip is constructed, there could be some difficulty in integrating it with existing technologies.”

    Mein Posting ist aber hochspekulativ, ich weiß auch nix Genaues. Gibt es irgendwo ein Paper dazu? Beim ersten Drübersurfen habe ich nichts gefunden.

  4. #4 Jürgen Schönstein
    3. Januar 2011

    Ich habe mich wohl doch zu unklar ausgedrückt: Es geht den Forschern primär darum zu zeigen, wie sinnvoll so ein schlecht rechnender Chip – der, wie schlappohr vermutet, ganz anders geschaltet ist: nur ein Bruchteil der Prozessorkerne ist nötig, und jeder dieser Kerne kann parallel neben den anderen ein Teilproblem bewältigen – für bestimmte praktische Anwendungen sein kann. Besser eben, als konventionelle (aber dafür auf Präsizion optimierte) Prozessoren. Und @schlappohr: Nein, ein Paper habe ich dazu auch nicht gefunden.

  5. #5 m
    4. Januar 2011

    Auf seiner Homepage — https://web.media.mit.edu/~bates/ — klingt es etwas nach Gleitkommaarithmetik mit sehr wenigen signifikanten Stellen; Durch die kurze Wortlänge benötigt das Rechenwerk weniger Gatter (Fläche) und ist schneller; Es sollen wohl (beinahe) alle Rechnungen in einem Takt ausgeführt werden, was meines Wissens er ungewöhnlich ist (ich kenn mich aber nicht mit aktuellen FPUs aus).

    Das interessante daran ist wohl, das durch niedrigere aber ausreichende Genauigkeit eine enorm hohe Parallelität möglich wird (bei gleicher Fläche und Verbrauch).

    Ein „Paper“ dazu ist “United States Patent Application 20100325186” https://www.freepatentsonline.com/y2010/0325186.html — das les ich morgen mal.

  6. #6 Tomtom
    4. Januar 2011

    @Jürgen Schönstein:
    “wie sinnvoll so ein schlecht rechnender Chip – der […] ganz anders geschaltet ist”

    Äh… ja, sehr sinnvoll. Manchmal. Aber warum das Festhalten an “Prozessorkerne[n]” und “Gleitkommaarithmetik” und all dem Zeug, das man sich duch Digitalisierung einfängt? Wenn man doch “ganz anders” schalten will?

    Ein Rechenschieber hat das Ergebnis in dem Moment, in dem man die Frage gestellt hat. Ohne Prozessorkerne.
    Dass mein Onkel in der Hektik der Prüfung 3*4=11,9 gerechnet hat, ist ja im Sinne des Artikels.

    Tomtom

  7. #7 KommentarAbo
    4. Januar 2011

  8. #8 borgdrone
    4. Januar 2011

    Rechner rechnen doch nicht nur eine oder zwei Aufgaben.
    Komplexe Prozesse bestehen doch aus einer Vielzahl von Rechnungen, die vielleicht wie beim Mpeg verfahren voneinander abhängen. Würde in der Menge die Ungenauigkeit nicht zu differenzierten Ergebnissen führen, vor allem Wenn verschiedene Rechner dann verschiedene Ergebnisse liefern? Inwiefern kann man dann noch vergleichen, das man das selbe/gleiche tat?

  9. #9 miesepeter3
    4. Januar 2011

    Und wann kommt der Computer, der falsch schreibt, sozusagen der Legastenie-PC? 😉

  10. #10 Sven Türpe
    4. Januar 2011

    Vielleicht lässt das Erstaunen nach, wenn man sich den Anwendungsbereich vor Augen führt: quantisierte Repräsentationen analoger Daten. Nichts anderes sind zum Beispiel digitale Bilder oder Musikaufzeichnungen. Aus dem kontinuierlichen Bild, der fortlaufenden Musik wird ein Gitter oder eine Folge diskreter Samples, die jeweils einen kleinen Teil der Ursprungsdaten näherungsweise repräsentieren.

    In dem Moment, wo solche Daten digital vorliegen, sind sie bereits nur noch gute Näherungen. In diesem Sinne rechnet auch ein herkömmlicher Prozessor falsch. Bei ausreichender Auflösung — zum Beispiel Samples pro Sekunde oder Gitterpunkte pro Flächeneinheit und Farben pro Punkt — merkt die Zielgruppe mit ihren unvollkommenen Sinnesorganen aber nichts davon.

  11. #11 borgdrone
    4. Januar 2011

    @sven
    aber es macht doch immer noch einen unterschied ob ich in einem Gitter den Wert mathematisch “runde” oder ihn willkürlich ungenau rechne. Die Menge der gerundeten Werte ergibt immer noch die Musik. Ergibt eine Menge unscharfer Werte noch die Musik?

  12. #12 Sven Türpe
    4. Januar 2011

    Ergibt eine Menge unscharfer Werte noch die Musik?

    Kommt drauf an, was man damit macht. Typische Verfahren der Signalverarbeitung hält mein Bauchgefühl für unkritisch, sie überführen ja meistens Daten in ähnliche Daten (z.B. ein Bild in ein nachgeschärftes Bild) oder ermitteln Abstraktionen der Rohdaten (z.B. die oben genannte Kantenerkennung). Da sehe ich wenig Raum für nichtlineare Überraschungseffekte, lasse mich aber gerne von jemandem mit Ahnung korrigieren.

    Kürzer ausgedrückt: auf verstimmten Instrumenten in einem Saal mit schlechter Akustik kann man doch immer noch eine Sinfonie aufführen, und die Zuhörer werden sie wiedererkennen.

  13. #13 borgdrone
    4. Januar 2011

    @auf verstimmten Instrumenten in einem Saal mit schlechter Akustik kann man doch immer noch eine Sinfonie aufführen, und die Zuhörer werden sie wiedererkennen.

    also …. 😉 bei einigen Orchestern kann ich sehr gut wahrnehmen wenn sich nur die Triangel verstimmt hätte… und sei dir gewiss, es tut weh ^^

  14. #14 Sven Türpe
    4. Januar 2011

    also …. 😉 bei einigen Orchestern kann ich sehr gut wahrnehmen wenn sich nur die Triangel verstimmt hätte… und sei dir gewiss, es tut weh ^^

    Das glaube ich Dir gerne. Ich behaupte lediglich, dass solche Fehler aus der Sinfonie keinen Punkrock machen, ja noch nicht einmal eine andere Sinfonie.

  15. #15 borgdrone
    4. Januar 2011

    da gebe ich dir recht.
    Bleibt es denn dann trotz allem erträglich?

    Für mich liest es sich im Artikel so, als verliere sich in der Menge der Daten die Notwendigkeit einer Genauigkeit und es verweist auf das runden von Werten.
    Aus 4,8893983928 wird vielleicht 4,9 oder auch 5.
    Bei einer unscharfen Rechnung und vielleicht habe ich es nicht richtig verstanden, kann der Wert auch 7 sein.
    Wenn mit jeder unscharfen Rechnung die Werte “irgendwo” in der Matrix angeordnet werden, dann entspricht es doch kaum noch annähernd der Wave die es als mp3 darstellen soll, zumal die Unschärfe sich ja in jeder Richtung auswirken kann und die Differenzen der jeweiligen benachbarten Werte recht hoch werden können.

  16. #16 miesepeter3
    4. Januar 2011

    In der Wirtschaft gilt das Prinzip “mit so wenig Mitteln wie nötig so viel Gewinn herausholen, wie möglich.”
    Kurz gesagt, ein Kaufmann würde keinen 7.5 tonner LKW für den Transport eines Brühwürfels benutzen. Für jeden Zweck gibt es ein bestimmtes Maß an notwendiger Kapazität. Ein Überangebot davon würde keinen höheren Nutzen ergeben, die Kosten aber gewaltig aus dem Ruder laufen lassen.
    Warum sollte es beim Computer anders funktionieren?
    Wenn ich Ergebnisse mit stark eingeschränkter Rechenleistung erzielen kann und diese dann auch noch meinen Ansprüchen genügen, warum sollte ich für teures Geld mehr Rechenleistung einkaufen? Im normalen PC wird der Unterschied sich vielleicht noch nicht bemerkbar machen, in einen Hochleistungsrechner mit Sicherheit schon.
    Nur, wer braucht einen Hochleistungsrechner mit eingeschränkter Rechenkapazität?
    Er wäre wohl nicht mehr universell einsetztbar. Und einen Spezialkomputer nur für Ungefährwerte wäre wohl eine Extrakonstruktion für nur einen Zweck, auch nicht sehr sinnvoll. Man muß halt wie im Leben auch, immer einen Kompromiß zwischen Wunsch und Wirklichkeit, Anspruch und Möglickeit schließen.

  17. #17 Sven Türpe
    4. Januar 2011

    Und einen Spezialkomputer nur für Ungefährwerte wäre wohl eine Extrakonstruktion für nur einen Zweck, auch nicht sehr sinnvoll

    Als Koprozessor könnte so etwas funktionieren, wenn sich Aufgaben sinnvoll aus dem Programmablauf delegieren lassen. Schon heute hat jeder PC mit seiner Grafikkarte einen Zweitprozessor, der auf typische Operationen der Grafikdarstellung optimiert ist und diese selbständig ausführt. Der Hauptprozessor kann sich dann beispielsweise beim Spielen auf die Handlung konzentrieren, während die Grafikkarte eine abstrakte Szenendarstellung in Bilder übersetzt.

    Damit sich das lohnt, müssen passende Probleme hinreichend oft auftreten, den Universalprozessor an seine Leistungsgrenzen bringen und sich ohne großen Zusatzaufwand in einer geeigneten Abstraktion an den Koprozessor übergeben lassen. Grafikdarstellung ist das ideale Problem dafür: sie kann beliebig viel Rechenleistung fressen und lässt sich hervorragend delegieren — unter anderem deshalb, weil Output eine Einbahnstraße ist.

  18. #18 miesepeter3
    4. Januar 2011

    @Sven Türpe

    Ich bin leider nicht Fachmann genug auf diesem Gebiet, um mir vorzustellen, welche Programmart wieviel Rechnerleistung mit welcher Genauigkeit braucht.
    Ich wollte nur darstellen, dass so was immer ein Abwägen zwischen “was habe ich und was brauche ich” ist.

  19. #19 borgdrone
    4. Januar 2011

    so wie ich HW verstehe gibt es nur einen AN oder AUS Zustand. Wie will man damit “ein bisschen AN oder AUS” hinbekommen?

  20. #20 rolak
    4. Januar 2011

    Aber borgdrone, ein MOSFET ist doch kein Schalter, auch wenn er für OttoNormalLogikzwecke gesättigt betrieben wird (siehe hier).

  21. #21 borgdrone
    4. Januar 2011

    ok rolak
    anderer Ansatz

    Warum soll ich eine Maschine, die ich der Genauigkeit und der Geschwindigkeit von komplexen Aufgaben wegen erfunden und hergestellt habe, unscharf machen?
    Was bekomme ich dafür? Mehr Geschwindigkeit durch weniger Genauigkeit?
    Ein Term ist in der Programierung ein Term und den schränke ich doch in seiner Genauigkeit als Wert schon ein, indem ich ihn als “integer” definiere.
    Was ist denn noch ungenauer als eine ganze Zahl?

  22. #22 rolak
    4. Januar 2011

    Nee borgdrone, das siehst Du ein wenig falsch: Es soll keine eierlegende Wollmilchsau aus Jux und Dollerei kastriert werden, sondern ein neuer Gerätetypus generiert werden, und zwar (so wie ich es verstanden habe) als Ausbaustufe zu so etwas. Also nicht mit Standardlogik als kleines (bzw im verlinkten Beispiel großes) Helferlein, sondern mit problemoptimierter Technik.

    Es wird also nichts für x86 programmiert um etwas ungenaues zu simulieren, sondern etwas wie variabel auch immer in Chip gegossen, das die LSB-Berechnungen erst gar nicht ausführt, wenn sie für das Ergebnis irrelevant sind. Und natürlich spart solch eine Strategie sowohl an Zeit- als auch an Leistungs-Bedarf. Genauso wie das ‘Vergessen’ unnötiger bis unhörbarer Feinheiten bei Formaten wie mp3 Dateigröße bzw Übertragungsrate spart.

    btw: Integer als Zahlenformat ist in keiner Weise ungenau, wenn das Abzubildende nicht mehr Möglichkeiten hat als der Zahlenbereich. Mal ganz abgesehen davon, daß alle Zahlendarstellungen in Digital-Rechnern letztendlich nur sorta pimped integer sind.

  23. #23 Bullet
    5. Januar 2011

    @borgdrone:

    Was ist denn noch ungenauer als eine ganze Zahl?

    Das ist einfach: eine Größenordnung. Also sowas wie 10^n

  24. #24 rolak
    5. Januar 2011

    ..was im Binären einer Beschränkung auf das MSB entspräche. Soweit muß es ja nicht getrieben werden 😉

  25. #25 borgdrone
    5. Januar 2011

    rolak ..ich les mir deine links mal durch
    bitte gibt mir zeit das alles zu verstehen…mal sehn wo ich damit hinkomme ^^

    @bullet

    10^n sind meines Verständnisses nach auch ganze Zahlen…. eben große ganze Zahlen^^

  26. #26 Bullet
    5. Januar 2011

    @borgdrone:
    natürlich – aber nicht jede ganze Zahl ist durch den Term 10^n zu beschreiben. Daher ist dieser Term ungenauer.
    Zum Vergleich: jede ganze Zahl ist ein Bruch. 4/2 … 10/2 … 84/4 … 42/7 … usw. Aber nicht jeder Bruch ist eine ganze Zahl.