PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KI in der CPU


Badesalz
2022-10-06, 13:12:50
Grüß euch.

Da das überhaupt nicht mein Thema ist :rolleyes: würde ich mich gern endlich bisschen schlau machen. Sowas macht man ja natürlich am liebsten im 3DC :tongue:
Ausgelöst wurde das jetzt durch die Meldungen über Zen4 und auch über weitere... Befehlserweiterung diesbezüglich beim Zen5.

1.
Das fing aber damit an, daß ich nicht verstanden haben was KI überhuapt ist bzw. sein soll. Ist das wirklich nur das wie im Link beschrieben? Weil dann verstehe ich erst recht nicht warum das in ALLER Munde ist oder sein sollte :confused:
https://netzpolitik.org/2022/neue-signal-chefin-kuenstliche-intelligenz-ist-vor-allem-ein-marketinghype/?utm_source=pocket-newtab-global-de-DE

Ok dass ist auch der Seite entsprechend gesellschaftspolitisch angehaucht, aber es geht über weite Strecken eben auch (allgemein) um die Technik.

2.
Es gibt dafür die Hardwareunterstüzung für andere Zahlenformate, als es das früher noch mit Integer und Floatingpoint gab. Es gibt Vektor-Einheiten, es gibt Matrix-Einheiten und dazu wohl passend neben FP64 und FP32 noch FP16, FP8, BF16 und auch Int8.
Das ist imho mal eine ganze Menge... Wofür genau werden sie jeweils gebraucht?

3.
Aldebaran erwähn ich jetzt nur nebenbei, der kann vieles obiges auch, ist aber grundsätzlich für FP64/FP32 und klassisches HPC gemacht. Matrix wie Vektor. Was das tut leuchtet ja noch ein ;) Die Leistung pro Sockel ist auch absolut brutal gegenüber CPUs.
Der Hopper aber, macht alles andere, obige, noch und nöcher schneller. Auch wenn man nicht so sehr an die realen Möglichkeiten von Sparsity glauben muss (diesen kleinen Teil hab ich verstanden :tongue:) ist das immernoch ein ziemliches Pfund an Rechenleistung. UND JETZT

liest man immer öfters von solche Datenformaten welche bisher gewöhnliche CPUs unterstützen sollen. Wofür ist das sinnvoll? Welche Möglichkeiten eröffnen sich da? Für Profs wie vielleicht auch daheim?
Ich bin ja immer so frusitert bei dem Thema, wenn es um GPGPU daheim geht. Tools wie auch bezahlbare Anwendungen fürs Daheim (mit denen der s.g. Consumer auch was anfangen kann). Aber eben auch was allgemein die Nutzung des schon längst Vorhandenes in den CPUs.

Jetzt bekommen die CPUs gleich allgemein die Fähigkeiten, bei welchen sie gegenüber z.B. Nvidia immer weit hinter dem liegen werden, wie sie mit FP32/64 hinter AMDs Aldebaran liegen.
Wofür ist das also nützlich? Ok man hat vieleicht beruflich zwischendurch auch mal einen Miniworkload für int8 oder bf16 (?) den man direkt an seiner "normalen" Workstation durchkauen kann und es reicht aus, daß wenn man es vorm Feierabend anwirft, man morgens am nächsten Tag die Ergebnisse hat. Und nicht nach 30min mit Tesla. Man spart sich aber so eine sauteure Maschine/Karte. Ok. Welcher Art Jobs sollen das aber sein?

Hier hat jeamnd versucht zu differenzieren, für mich ist das aber auch nur ein riesen Wischiwaschi. Geht das nicht auch nur minimal genauer?
https://www.amaxai.com/gpus-and-cpus-understanding-how-to-choose-the-right-processor-for-your-workload/

Ok. Das wars fürs Erste :smile:

Badesalz
2022-10-07, 02:39:40
117 Hits... Oh wow :cool:

Ok zwischendurch hab ich erfahren - so grob wegen 3 - daß man die gigantische Leistung braucht um ein Netzwerk zu schulen, aber um ein geschultes zu betreiben braucht man die Datenformate eben auch. Nur nicht mehr unbedingt diese wahnsinnige Leistung. Daher kann das schon Sinn machen das in die CPUs zu stecken.
Das wäre noch gut nachvollziehbar, falls dem so wäre. Telum hat es ja auch.

Zum Rest gab es aber keine echte Aufklärung. Wie hier eben auch. Wie es scheint, reden alle über KI, aber keiner versteht so wirklich um was es eigentlich geht.

Skysnake
2022-10-07, 06:11:08
Zu 1. Es gibt halt nicht "die" KI.

2. Die neuen Datenformate werden nur dafür verwendet um mit limitierten Transistor und Power Budget eben mehr Arbeit zu erledigen. Das wird halt immer weiter auf die Spitze getrieben, weil man sieht, das es für gewisse Bereiche good enough ist. Aber eben nicht für alle, daher gibt es die anderen Formate weiterhin.

3. Da hast du den Grund doch eigentlich ganz gut erfasst. Zudem gibt es aber auch Probleme, bei denen die GPUs eben nicht so gut passen und riesige Datensätze bearbeitet werden müssen.

Zudem hast du eventuell schon ein großes CPU Cluster, dass du eben eh brauchst und dann auch nutzen kannst. Dann brauchst du nicht noch ne extra GPU kiste(n). Du erhöhst also die Nutzung der vorhandenen Kisten. Naja und dann hast du eben vielleicht auch Mixed workloads. Bei Simulationen wird immer öfters auch mal getestet mittels einer KI automatisiert die Simulation zusteuern, statt Proberuns zu machen und eben einen Experten drauf schauen zu lassen. Da macht es auch total Sinn das einfach auf der CPU laufen zu lassen.

Badesalz
2022-10-07, 11:27:33
An sich gibt es nur die eine KI. Von den passenden Theorems gibt es ja nicht Unmengen. Wieviele? 3, 4, aus welchen man KIs bastelt?
Was die KIs produktiv tun (sollen), das ist halt unterschiedlich.

Das zu finden und begreifen fällt noch nicht so schwer. Ab da aber, hört es mit dem Informationsfluss ziemlich hart auf. Sieht man exemplarisch gut an diesem Thread.

Hier gibts auch wenigstens bisschen Grobes
https://artemoppermann.com/de/ki-vs-machine-learning-vs-deep-learning/

PS:
Hier wird übrigens mehr oder weniger die schöne Eigenschaft verschwiegen, daß wir null peilen warum eine KI beim sich Lernen plötzlich von der "Grundwahrheit" entfernt. Man dreht paar Schrauben anders, und dann läuft das gesamte Prozess von vorn los =) Absolut irre.

basix
2022-10-07, 11:34:21
Der grosse Vorteil von KI im allgemeinen: Extrem hohe "Compression Ratios". Was ist damit gemeint? Wenn man sich ein trainiertes Netzwerk anschaut:
- Geringe Rechenlast
- Geringer Speicherbedarf

Da man nur noch den "sinnvollen" Weg berechnen muss, ist die Ausführung viel effizienter als es mit "Brute Force" zu rechnen. Zudem ist der Speicherbedarf für ein trainiertes Netz ziemlich gering. Neben der Möglichkeit, Datenformate mit geringerer Präzision zu verwenden, ist das einer der wesentlichen Vorteile gegenüber herkömmlichen Algorithmen.

Ein zweiter Vorteil ist natürlich, dass man bessere Resultate erreichen kann (kann). Und das mit geringerer Iterationszeit, da man via GPU etc. trainieren / die Performance verbessern kann.

Zum Thema CPU vs. GPU:
Es gibt Probleme, die lassen sich auf der CPU wunderbar rechnen. Da benötigt man nicht 1000 TOPs einer RTX 4090. DNN sind zudem scharf auf Bandbreite und Latenzen. Wenn das Ding also in den L3$ der CPU passt, wird das ganz ordentlich performen. GPUs haben hier viel höhere Latenzen und performen erst bei grösseren Netzwerken und Batch-Sizes bedeutend schneller als CPUs. Viele kleinere Netzwerke könnten aufgrund Task Switching usw. zudem bedeutend schneller auf einer CPU laufen als auf einer GPU. Wenn ich mir hier irgendwelche Lightweight DNN und andere Dienste und Hintergrundprozesse vorstelle, welche via DNN beschleunigt werden, wäre die CPU wohl der bessere Platz dafür.

Badesalz
2022-10-07, 11:45:28
@basix
Das ist uraltes Wissen. Korrekt, aber zu unkonkret ;)

Hier bisschen was über diese Erfindung von Google (bfloat16)
https://www.elektroniknet.de/halbleiter/prozessoren/neues-datenformat-bfloat16-soll-ml-anwendungen-beschleunigen.169986.html
https://winfuture.de/news,126290.html

Und hier das erste Beispiel für KI-Code in einer für den Consumer stinknormalen Anwendung
https://www.hardwareluxx.de/index.php/news/software/anwendungprogramme/45080-adobe-photoshop-nutzt-kuenstliche-intelligenz-fuer-das-feature-select-subject.html
Jedenfalls schön, daß es nicht erst ab CooperLake funktioniert :tongue:

Dovregubben
2022-10-07, 11:54:38
An sich gibt es nur die eine KI
Nein. Es gibt nicht die eine "KI". Deine ganze Beschreibung ließt sich so, dass du an Machine Learning oder noch eher an Deep Learning denkst, was nur Submengen davon sind. Damit baut man aber selten ein komplettes System. Auch Self Driving bei Tesla besteht und dutzenden verschiedenen Komponenten und nur manche davon nutzen Deep Learning. Wenn die ganze Erkennung durch ist, sucht dann doch am Ende ne Monte Carlo Treesearch den eigentlichen Pfad.

Deiner ganzen Argumentation nach würde ich mir aber mal Neuronale Netzwerke anschauen. Die Grundstruktur ist super trivial und die eigentlichen Fragen sind heute eher Highlevel. Wie strukturiert man größere Netze, wie führt man sie mit Milliarden an Parametern aus, etc.

Badesalz
2022-10-07, 12:10:25
@Dovregubben
Ähm... Argumente?

Ehrlich gesagt sehe ich die... Diversität der KIs nicht. Sie werden nur auf verschiedene Sachen trainiert. Von den Theorems selbst gibt es IMHO nicht so viele (was ich so bisher fand). Um die Aufklärung ging es aber auch. Ich bin da fortlaufend flexibel ;)

Was du meinst ist (?) daß man das neuronale Netzwerk selbst, recht verschieden bauen kann bevor man anfängt es zu trainieren?
Gibt es da aber unzählige Varianten die man so klar unterscheiden könnte? Es gibt auch in der Biomasse unzählige Gehirne. Wenn man aber einem Biologiestudenten jeweils 5 Gramm Stück des Gehirns vom Zebra und ein solches vom Hecht gibt - und die Aufgabe "Analysiere die Gewebeproben" lautet - dann wird er in kürzester Zeit eben rausfinden, daß es sich um 2 Gehirne handelt.

Ein Gehirn ist eben ein Gehirn (so meine Aussage bezüglich KI).

EDIT:
Jemand mochte das Licht in dem Zoo der Formate bringen (es ist aber noch vor der neusten NV-Kreation: FP8)
https://moocaholic.medium.com/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407

Es steht auch dabei wofür welche Formate den meisten Sinn ergeben. Passt gut zu "2". Zeigt für mich auch den Blödsinn hinter TF32 und den Versuch irgendwelche Alleinstellungsmerkmale herbeizufantasieren die so wirklich niemand braucht.

Dovregubben
2022-10-07, 13:10:21
@Dovregubben
Ähm... Argumente?

Ehrlich gesagt sehe ich die... Diversität der KIs nicht.
KI ist ein Sammelbecken für Algorithmen und Pattern. Neuronale Netzwerke sind nur eins der Werkzeuge davon.
KI ist kein abstraktes Wesen oder kein virtuelles Gehirn

vinacis_vivids
2022-10-07, 14:04:41
Hier sind KI, AI, Deep-Learning und NN Benchmarks der Zen4 uArch gemacht worden:
https://www.phoronix.com/review/amd-ryzen-7900x-7950x-linux/16

Badesalz
2022-10-07, 15:23:06
@v_v
Du bist im falschen Thread.

@dovregubben
Also passte mein Beispiel halbwegs? Oder was gibt's neben den NNs noch so? O-Tons wie "Gibts ja auch noch anderes" haben einen extrem niedrigen Lehrinhalt...

blaidd
2022-10-07, 15:39:56
Die Verwirrung fängt doch schon bei dem Begriff "KI" bzw. "Künstliche Intelligenz" an. Je nachdem, wie genau man das definiert. Ist eine Intelligenz erst eine Intelligenz, wenn sie wirklich selbstständig denken kann? Dann ist keine einzige der aktuellen Techniken wirklich "KI", die Bezeichnung dann streng genommen nur Marketing.

Wenn man aber eine gewisse Lernfähigkeit (bzw. Wiederholungen von Vorgängen, bei denen nach und nach Fehlschläge aussortiert werden) schon als "KI" bezeichnet, dann ist potenziell recht viel "KI". Kommt darauf an. ;)

unl34shed
2022-10-07, 17:02:55
Aber das lernen wird ja nur beim Training gemacht, die Modelle die am Ende genutzt werden sind fix und lernen selbst ja nicht mehr dazu.

Von daher ist IMHO vieles was als AI bezeichnet/verkauft wird nur Marketing BS.

Badesalz
2022-10-07, 17:13:03
Ja Leute... So grob ist der Topic aber keineswegs ;)

Dovregubben
2022-10-07, 17:16:21
@dovregubben
Also passte mein Beispiel halbwegs? Oder was gibt's neben den NNs noch so? O-Tons wie "Gibts ja auch noch anderes" haben einen extrem niedrigen Lehrinhalt...
Nope. Das Beispiel passt halt schon nur zu neuronalen Netzwerken und selbst Machine Learning hat so viele andere Ansätze, die auch oft (noch) effizienter sind.

Und ja, bei Neuronalen Netzwerken ist es super entscheidend wie man sie aufbaut. Da geht ein nicht kleiner Teil der Forschung drauf.

Grob kannst du für klassische KI unterteilen in symbolische KI, Simulation (da würde ich auch die Tesla Wegsuche einsortieren) und statistische KI. Neuronale Netzwerke gehören zur statistischen KI, aber da gibt es halt auch hunderte andere Varianten und auch Mischformen zur Symbolik.
Sobald du einen kontrollierbaren Layer irgendwo haben willst, macht meistens auch Sinn nochmal auf eine symbolische Darstellung zu kommen und klassische Algorithmen anzuwenden.

Auch hier noch ein Beispiel: Wenn du einen guten Spracherkenner hast, hast du fast immer noch ein Regelsystem hinter dem neuronalen Netzwerk, was offensichtliche Fehler, Inkonsistenzen und bekannte Sonderfälle fixt.

why_me
2022-10-07, 18:03:31
Ja Leute... So grob ist der Topic aber keineswegs ;)

Deine Fragen oben sind aber auch sehr grob geschrieben.

Zu 1: Welche Aussage in dem verlinkten Artikel verwirrt dich?
Vereinfacht gesagt, stimmt das. Was heutzutage als KI verkauft wird, ist vereinfacht gesagt ein Matrix bei der die verbindung zwischen den Eingangs- und Ausgangsgrößen gewichtet sind. Die Werte dieser Gewichtung wird zufällig bestimmt, bis man dem geünschten Ergebnis am nähsten ist (Training).
Das Ergebnis des Trainings ist ein kompakter Code, der meistens das richtige tut und auch bei im training nicht bekannten Eingaben meistens richtig funktioniert.

Zu 2: Die unterschiedlichen Datentypen gibt es, weil die Größe der Gewichtung nicht so fein aufgelöst werden muss und deutlich kleinere Datentypen eine ausreichende Genauigkeit liefern. Ein weitere Vorteil, eine 64 Bit ALU kann (wenn es die HW unterstützt, gillt nicht allgemein) 8 mal 8 Bit Operationen gleichzeitig berechnen, was die Geschwindigkeit deutlich erhöhet, mit der die Matrix berechnet wird.

Nr3 finde ich die Frage nicht.

Badesalz
2022-10-07, 19:30:29
why_me, die oberflächliche Arbeit taten schon andere wie auch ich selbst hinterher. Etwas besser. Auch zu 3, wo Skysnake meine anschliessende Aufarbeitung schon recht gut fand. Du findest die Frage nicht...
Trotzdem danke =)

@Dovregubben
danke

Badesalz
2022-10-14, 11:59:34
Gruselige HI (hybrid)
https://www.n-tv.de/wissen/Hirnzellen-auf-Chip-erlernen-Videospiel-Pong-article23645529.html

Dovregubben
2022-10-14, 12:28:30
Das Ergebnis des Trainings ist ein kompakter Code, der meistens das richtige tut und auch bei im training nicht bekannten Eingaben meistens richtig funktioniert.
Im Grunde hat man eine Funktion mit sehr vielen Dimensionen, die man nicht effizient berechnen oder gar bestimmen kann. Nun nimmt man eine generische Funktion mit wesentlich weniger Dimensionen, wirft da reale Datensätze drauf und versucht die Parameter so anzugleichen, dass die Fehler möglichst gering werden. Deswegen ist es auch so wichtig, dass die Netzwerkstruktur passt und die Trainingsdaten alle relevanten Szenarien abdecken. Sonst schafft man es nicht die originale Funktion im notwendigen Bereich zu matchen.

Badesalz
2022-10-14, 13:11:03
Diese überbordende Power an BFP16 und INT8 braucht man eigentlich nur deswegen, weil man das alles immer wieder verwirft (Regelwerkgröße vs. Fehlerquote) und quasi neu anfangen muss. Man kann Fehlannahmen leider kaum bis garnicht mittendrin korrigieren. Die Power brauht man um irgendwann doch fertig zu werden, da man dauernd vom Neuen loslegen muss ;)

Dovregubben
2022-10-14, 14:46:06
Grade vorher warst du bei neuronalen Netzwerken und auf einmal bei Regelwerken^^ Für Regelwerke brauchst du eine symbolische Repräsentation.

Badesalz
2022-10-14, 15:01:06
Weißt du wie man ein neuronales Netzwerk, der nach 40% Abarbeitung der Trainingsdaten plötzlich immer stärker daneben liegt, noch patcht(korrigiert)? (keine rhetorische Frage)