GTC17: Alle Details zur Volta-Architektur von NVIDIA

Jo schade - ich hatte gehofft hier vielleicht auch mal Leute zu treffen, die ganz abseits der Daddelei sich mit dem Kram ernsthaft für Deep Learning beschäftigen. Naja, ein Versuch war's wert. :)

Werde jedenfalls demnächst mal in einer freien Minute (die muss ich nur noch finden) damit mein Glück versuchen und dann ggf. hier die Diskussion fortsetzen/anstossen. :d
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Maxwell war einfach ein Glücksgriff für Nvidia, deshalb ist Pascal nur ein Maxwell Shrink mit höheren Taktraten (Maxwell/Pascal mit selben Takt = selbe Performance) und Volta zeigt fast nur Verbesserungen im Profi Bereich, aber mal abwarten, vllt. ist da doch mehr dahinter.
Maxwell war für die HPC-Gemeinde ein Totalausfall, d.h. alle Maxwell GPUs sind rein auf GPU Jobs optimiert. Mit Pascal gibt es wieder einen HPC Chip - den GP100, der gleich auch ein Meilenstein war. D.h. der Sprung vom GK110 zum GP100 ist sehr groß. In vielerlei Sicht muss man den GP100 eher mit den XeonPhis 200 von Intel vergleichen und nicht mit AMDs GCN GPUs. Der nun vorgestellte GV100 ist der Nachfolger des GP100s und definitiv nicht auf Grafikperformance optimiert. Die Quadro GP100 ist bei Grafik auch langsamer als die Quadro P6000, die auf dem GP102 basiert. Man kann daher aus den Daten des GV100 kein wirklich sinnvollen Schlüsse für die GPUs der Volta Familie schließen. Man sollte auch nicht den Fehler machen und die GP100/GV100 als GPU betrachten, das bekommen diese Chips auch auf die Reihe, aber dafür sind sie nicht optimiert. Es sind Coprozessoren für das technischwissenschaftliche Rechnen.

Fangen wir bei der alten C/C++ Sprache an, die laut Computersprachexperten elendig ineffizient sein sollen.
Da ich selbst Software entwickle und so viele Sprachen kenne und einige beherrsche, in welcher Hinsicht sollen sie ineffizient sein? Bei dem Thema LOCs trifft es zu, man bekommt mit anderen Sprachen am Tag mehr Arbeit getan, aber der Code ist dann entsprechend lahm. Wenn man schnellen Programmcode haben will, läuft das noch immer auf Ada, C, C++ oder Fortran hinaus. Es gibt noch ein paar wenige neuere Sprachen, die auch nicht schlecht sind, aber da hat man oftmals das Problem, dass es für die gewünschte Plattform keine Compiler gibt, keine hoch optimierenden Compiler, es fehlt an Werkzeugen für die Codeanalyse es fehlt an Debuggersupport, … Die Liste kann man nahezu beliebig verlängern.

Dann die ollen alten Instruction Sets, die auch längst überholt sind und durch elegantere Sachen wie ARM ersetzt werden könnten.
Intel führt beständig neue Instrunctionssets ein, um die Effizienz der Plattform zu erhöhen. Das klappt mit den neuen AVX, AVX2, AVX512 auch ganz gut. Das Problem sind die Altlasten der total vermurksten x86 Architektur. IA32 stammt aus einer Zeit, als man sich über solche Dinge noch keinerlei Gedanken machen musste. Die Befehlslänge ist daher total unterschiedlich was das Decoden erschwert und die Cache Misses erhöht. Bei einer modernen CPU ist die Minimierung der Cache Misses das wichtigste Ziel der Optimerung.

Macht nur keine Sau, weils niemand kaufen würde. Ohne Windows - mööp. Ohne X86 - mööp. Ihr versteht schon...
Das ist ein reines Windows Problem! Mein erster Kontakt mit einem 64Bit System ist nun gut 20 Jahre (!) her, und wenn man damals einige wenige Dinge (ByteOrder, die korrekte Verwendung der C Basistypen) beachtete hatte, dann läuft der Code vollkommen unverändert noch heute effizient und schnell. Nur reden wir hier über UNIX/Linux Code und nicht über Windows Code. Die CPU Architektur der Plattform ist dabei sch***egal, darum kümmert sich der Compiler, daher sollte man i.d.R. kein Assembler nutzen, das bringt zu wenig um den Aufwand zu rechtfertigen. Gerade für das technischwissenschaftliche Rechnen ist das wichtig, da man sehr viel Geld in die Software steckt und den Code nicht jedesmal neuschreiben kann wenn irgend ein neuer Hype vorhanden ist. Dazu ist man vollkommen unabhängig von der Hardware. Es ist egal, ob da ein MIPS, ARM, HP-PA, Alpha, Power, SPARC, IA32, IA64 oder Intel64 drin steckt. Bis auf Alpha und IA64 habe ich auf allen Systemen schon Software entwickelt.

AMD haut regelmäßig tolle neue Technologien raus, die kaum eine Sau nutzt.
Da ich nicht nur eine Firma erlebt habe, AMD ist was die Software betrifft eine einzige Zumutung. Daher ist es enorm schwierig Software für AMD zu optimieren. Ja, man kann schnelle Programme für AMD Hardware schreiben, der Aufwand ist aber enorm.

Mir tut AMD da ein wenig leid. Die treiben mit ihrem Einkommen an der roten Linie so viel Innovation, dass Nvidia und Intel eigentlich rot vor Scham werden müssten.
Die Hardware von AMD ist gut, die Software ist der letzte Dreck, und genau deshalb nutzten so viele lieber nVidia und Intel. Ein simples Beispiel: Will man Programmcode optimieren, muss man dazu spezielle Software einsetzen einen sogenannte Profiler. Intels Software kann unter Linux als Serverprozeß gestartet werden und ein jeder Nutzer kann ohne Privilegien sein Programm profilen. Tja, mit AMD geht das natürlich nicht man muss root sein, damit man den AMD Profiler einsetzen kann, was natürlich bei einem Cluster mit zig Nutzern aus Sicherheitsgründen kategorisch ausgeschlossen ist. :wall:

Wenn die Softwareentwickler OpenCL benutzen würden, könnte AMD in den Rechenzentren ne Menge erreichen. Aber seit über 10 Jahren gibts nur CUDA, CUDA und wieder CUDA.
OpenCL für AMD ist nicht OpenCL für nVidia, deshalb muss man den Programmcode so oder so portieren. Dazu ist das ganze CUDA Umfeld dramatisch besser.

Ich mag CUDA nicht, hauptsächlich weil es proprietär ist. Ich frag mal so: Warum nicht gleich OpenCL? Ist bei gleichem Entwicklungsaufwand der Softwarehersteller genauso schnell wie CUDA (evtl. sogar noch schneller), offen, wird aktiv weiterentwickelt, sehr flexibel und ist kompatibel mit Nvidia, Intel und AMD.
Weil der Entwicklungsaufwand mit OpenCL deutlich höher ist! AMD liefert für OpenCL faktisch nur einen Compiler und sonst nichts. nVidia liefert eben nicht nur den CUDA Compiler sondern massenweise Libraries mit, analog verhält sich das bei Intel.

- - - Updated - - -

Ich warte immer noch auf das Argument FÜR CUDA.
Der Softwarestack ist der wichtigste Grund für CUDA. Wollte man zu Anfang ein Programm schreiben das wissenschaftliche Rechnungen ausführte, dann musste man bei AMD mit OpenCL alles selbst machen. Bei nVidia hat man einfach die cuBLAS und cuFFT Libraries eingebunden und das Multiplizieren zweier Matrizen einfach durch DGEMM (…A,B,C…) erschlagen, bei AMD durftest Du die Matrixmultiplikation selbst programmieren. Mit der Zeit gab es dann eine Pseudo BLAS von AMD, da war nur eine Routine implementiert die DGEMM (SGEMM, CGEMM und ZGEMM schon nicht mehr), weil man nur diese Routine für den Linpack braucht.

Erst seit wenigen Jahren gibt es nun die ersten Ansätze von universitären Arbeitsgruppen BLAS und LAPACK als OpenSource Projekte für GPGPUs und die XeonPhis umzusetzen: siehe Magma Library, ViennaCL, … Und bitte nicht wundern von der Magma Library gibt es drei Versionen CUDA, OpenMP (Intel), OpenCL (AMD).

Soweit völlig korrekt. Er ist ein Biologe, kein Programmierer. Ich bin Ingenieur für Signalverarbeitung und kein C/C++ Hacker. Ich bastle Prototypen. In meinem Bereich gibts aber auch einige Kollegen, die Machine-Learning machen sollen. Und auf einmal kommen Leute an, die dann verlangen, dass wir auch C/C++ können sollen.
Das Programmieren-können gehört meines Erachtens zwingend dazu. Es muss nicht gleich C oder C++ sein, es gibt auch noch andere Möglichkeiten z.B. Python -> NumPy.

Matlab ist nennt, aber stößt relativ schnell an seine Grenzen. Es wird gerne von Wissenschaftlern eingesetzt, die sich weigern zu programmieren. Die Probleme fangen an, wenn man die Software zur Beschleunigung der Arbeit auf einem Cluster ausführen will. Da kommt sofort das Lizenzproblem nach oben, daher entweder Matlab Compiler oder lieber gleich GNU Octave, dafür gibt es auch OpenCL Backends.

Recht einfach: Wenn ich mir ein auto kaufe,
Um einen nachvollziehbaren Vergleich zu bringen: Mit dem nVidia PKW kann man beim Händler vom Hof fahren, bei AMD muss man den PKW-Bausatz auf dem Hof zuerst zusammenbauen.

Vielleicht will ich das gar nicht?
Dann nutze ein anderes Programm.
 
Erstmal Danke für die lange Antwort. ^^

Da ich selbst Software entwickle und so viele Sprachen kenne und einige beherrsche, in welcher Hinsicht sollen sie ineffizient sein? Bei dem Thema LOCs trifft es zu, man bekommt mit anderen Sprachen am Tag mehr Arbeit getan, aber der Code ist dann entsprechend lahm. Wenn man schnellen Programmcode haben will, läuft das noch immer auf Ada, C, C++ oder Fortran hinaus. Es gibt noch ein paar wenige neuere Sprachen, die auch nicht schlecht sind, aber da hat man oftmals das Problem, dass es für die gewünschte Plattform keine Compiler gibt, keine hoch optimierenden Compiler, es fehlt an Werkzeugen für die Codeanalyse es fehlt an Debuggersupport, … Die Liste kann man nahezu beliebig verlängern.
Sofern ich die historische Entwicklung von C in Erinnerung habe, wurde das von 2 Studenten auf einer Billig-Kiste entwickelt und auch darauf optimiert. Ich habe leider nicht mehr alle Details im Kopf, aber die damalige Arch auf der C als Basis entwickelt wurde war recht... ramschig - selbst für damalige Verhältnisse. Populär wurde C hauptsächlich deswegen, weil es eben auf so einer billig-Kiste lief, es sich deswegen jeder leisten konnte und schwupps hat sich das Zeug etabliert gehabt. Keine Ahnung, ob die "Altlasten" der damaligen Entwicklung heute noch alle drin sind - da kannst du mir bestimmt mehr drüber erzählen, da du ja damit zu tun hast.


Intel führt beständig neue Instrunctionssets ein, um die Effizienz der Plattform zu erhöhen. Das klappt mit den neuen AVX, AVX2, AVX512 auch ganz gut. Das Problem sind die Altlasten der total vermurksten x86 Architektur. IA32 stammt aus einer Zeit, als man sich über solche Dinge noch keinerlei Gedanken machen musste. Die Befehlslänge ist daher total unterschiedlich was das Decoden erschwert und die Cache Misses erhöht. Bei einer modernen CPU ist die Minimierung der Cache Misses das wichtigste Ziel der Optimerung.
Exakt das. Warum nicht einfach den ganzen alten Schrott rauswerfen, die X86 Architektur ausmisten und nach der Grundreinigung eine neue, schlankere und effizientere Architektur genießen?

Das ist ein reines Windows Problem! Mein erster Kontakt mit einem 64Bit System ist nun gut 20 Jahre (!) her, und wenn man damals einige wenige Dinge (ByteOrder, die korrekte Verwendung der C Basistypen) beachtete hatte, dann läuft der Code vollkommen unverändert noch heute effizient und schnell. Nur reden wir hier über UNIX/Linux Code und nicht über Windows Code. Die CPU Architektur der Plattform ist dabei sch***egal, darum kümmert sich der Compiler, daher sollte man i.d.R. kein Assembler nutzen, das bringt zu wenig um den Aufwand zu rechtfertigen. Gerade für das technischwissenschaftliche Rechnen ist das wichtig, da man sehr viel Geld in die Software steckt und den Code nicht jedesmal neuschreiben kann wenn irgend ein neuer Hype vorhanden ist. Dazu ist man vollkommen unabhängig von der Hardware. Es ist egal, ob da ein MIPS, ARM, HP-PA, Alpha, Power, SPARC, IA32, IA64 oder Intel64 drin steckt. Bis auf Alpha und IA64 habe ich auf allen Systemen schon Software entwickelt.
Ist halt das Matlab-Ding. Ich schreib meinen Matlab-Code und es läuft auf Windows, Linux und OS-X gleichermaßen. Was ich mit meiner aussage aber eigentlich meinte: 90% der Leute da draussen haben Windows-Rechner und werden niemalsnicht auf eine anderes OS umsteigen, selbst wenn das OS in ALLEN Belangen besser wäre. Deswegen "historisch".

Da ich nicht nur eine Firma erlebt habe, AMD ist was die Software betrifft eine einzige Zumutung. Daher ist es enorm schwierig Software für AMD zu optimieren. Ja, man kann schnelle Programme für AMD Hardware schreiben, der Aufwand ist aber enorm.

Die Hardware von AMD ist gut, die Software ist der letzte Dreck, und genau deshalb nutzten so viele lieber nVidia und Intel. Ein simples Beispiel: Will man Programmcode optimieren, muss man dazu spezielle Software einsetzen einen sogenannte Profiler. Intels Software kann unter Linux als Serverprozeß gestartet werden und ein jeder Nutzer kann ohne Privilegien sein Programm profilen. Tja, mit AMD geht das natürlich nicht man muss root sein, damit man den AMD Profiler einsetzen kann, was natürlich bei einem Cluster mit zig Nutzern aus Sicherheitsgründen kategorisch ausgeschlossen ist. :wall:

Okay, das sind dann die großartigen Geschichten aus den tiefen der Softwareentwicklung. Ich bin mir sicher, da findet sich für jeden Anbieter eine Grube zum reinwerfen. Seien es Intels Grafiktreiber, AMDs "Middleware" oder auch Nvidias 3,5 GB Fail. Nur: Wenn ich mir die Open Source Adaptionen der Technologien angucke (nehmen wir mal HSA) finde ich da von Intel zum Beispiel kein Derivat. (zu mindest nicht für Consumer)

Das meine ich mit technologischer Entwicklung.


OpenCL für AMD ist nicht OpenCL für nVidia, deshalb muss man den Programmcode so oder so portieren. Dazu ist das ganze CUDA Umfeld dramatisch besser.
Ich frage mal anders: Ist die Einsparung von Geld für eine ordentliche Portierung so groß, dass man lieber mehr Hardware kauft? Bisher musste doch alles implementiert werden, was neu rausgekommen ist. Warum ist das bei AMD auf einmal problematisch? Aber evtl. hast du das schon mit dem nächsten Ding beantwortet:

Weil der Entwicklungsaufwand mit OpenCL deutlich höher ist! AMD liefert für OpenCL faktisch nur einen Compiler und sonst nichts. nVidia liefert eben nicht nur den CUDA Compiler sondern massenweise Libraries mit, analog verhält sich das bei Intel.

Und ich nehme an, das ist der Hauptgrund, warum man sich "den Stress spart" und einfach Nvidia benutzt?

Der Softwarestack ist der wichtigste Grund für CUDA. Wollte man zu Anfang ein Programm schreiben das wissenschaftliche Rechnungen ausführte, dann musste man bei AMD mit OpenCL alles selbst machen. Bei nVidia hat man einfach die cuBLAS und cuFFT Libraries eingebunden und das Multiplizieren zweier Matrizen einfach durch DGEMM (…A,B,C…) erschlagen, bei AMD durftest Du die Matrixmultiplikation selbst programmieren. Mit der Zeit gab es dann eine Pseudo BLAS von AMD, da war nur eine Routine implementiert die DGEMM (SGEMM, CGEMM und ZGEMM schon nicht mehr), weil man nur diese Routine für den Linpack braucht.

Erst seit wenigen Jahren gibt es nun die ersten Ansätze von universitären Arbeitsgruppen BLAS und LAPACK als OpenSource Projekte für GPGPUs und die XeonPhis umzusetzen: siehe Magma Library, ViennaCL, … Und bitte nicht wundern von der Magma Library gibt es drei Versionen CUDA, OpenMP (Intel), OpenCL (AMD).
Okay, ich verstehe so langsam das große Ganze und die Problematik dahinter. AMD hat schlichtweg kaum bis gar keinen Support für ihre Hardware ausgeliefert und im Falle von Nvidia kamen gleich ein paar Libs mit, so dass man direkt loslegen konnte. Mich wundert es nur, warum für AMD dann über die Zeit nicht auch welche rausgekommen sind. War/Ist die Nachfrage so gering?

Das Programmieren-können gehört meines Erachtens zwingend dazu. Es muss nicht gleich C oder C++ sein, es gibt auch noch andere Möglichkeiten z.B. Python -> NumPy.
Kommt drauf an was du machst. Wenn ich Messtechnik betreibe und mit Hilfe dieser Parameter optimieren will, will ich nicht 2 Tage mit dem Schreiben von Quelltext beschäftigt sein, für ne Messung die 5 Minuten dauern soll. Genau für sowas ist Matlab ja da. Ich setz mich hin, code einen Dreck-Code zusammen bei dem alle Informatiker grün anlaufen würden und ich erhalte das, was ich brauche. Genau hier soll Matlab ja einfach nur rennen. 100 Mal langsamer als C, aber dafür bin ICH 100 Mal schneller. Wenn ich meinen Code dann aber auf einem anderen Rechner ausführen lasse, der anstatt ne Nvidia Karte ne AMD Karte drin hat und es dann auf einmal nicht mehr geht - dann möchte ich entweder AMD oder Matlab dafür schlagen. Und da zuckt meine Hand doch schon eher Richtung Matlab.


Matlab ist nennt, aber stößt relativ schnell an seine Grenzen. Es wird gerne von Wissenschaftlern eingesetzt, die sich weigern zu programmieren.
Korrekt. Von Biologen über Chemiker bis hin zu Systemarchitekten - keiner von denen hat im Studium wirklich programmieren gelernt, weil die halt Sachen wie Chemie, Biologie oder Physik gelernt haben. Ist ja auch erstmal vollkommen okay. Und da ist Matlab gut, dass die überhaupt was runtercoden können, was läuft. Ich rege mich ja auch gerne über Manager auf, die nur Excel können und glauben, die Weisheit mit Löffeln gefressen zu haben - Fakt ist aber nun mal, dass es auch nur deren Werkzeug ist, was ihnen vorgesetzt worden ist. Ich möchte mal nen BWLer sehen, der seine Analysen in LaTeX schreibt und seine Daten in Python berechnet. Das ist vielleicht einer von 10.000 - am Ende des Tages ergibt es aber trotzdem Sinn. Obwohl die Ingenieure über ne Excel-Tabelle nur müde lächeln können, brauchen die aber auch nicht mehr. Nur weils "schöner" ist, ist halt kein Grund. Ein Grund ist es aber, wenn man länger an der gleichen Arbeit sitzt.

Von daher ist "weigern" ein grenzwertiger Begriff.

Die Probleme fangen an, wenn man die Software zur Beschleunigung der Arbeit auf einem Cluster ausführen will. Da kommt sofort das Lizenzproblem nach oben, daher entweder Matlab Compiler oder lieber gleich GNU Octave, dafür gibt es auch OpenCL Backends.
Da hasst du einen echten Punkt getroffen. Octave ist so langsam die bessere Alternative.


Um einen nachvollziehbaren Vergleich zu bringen: Mit dem nVidia PKW kann man beim Händler vom Hof fahren, bei AMD muss man den PKW-Bausatz auf dem Hof zuerst zusammenbauen.
Gut, soweit hab ichs verstanden.

Danke für die konstruktive Antwort. :)
 
Sofern ich die historische Entwicklung von C in Erinnerung habe, wurde das von 2 Studenten auf einer Billig-Kiste entwickelt und auch darauf optimiert. Ich habe leider nicht mehr alle Details im Kopf, aber die damalige Arch auf der C als Basis entwickelt wurde war recht... ramschig - selbst für damalige Verhältnisse. Populär wurde C hauptsächlich deswegen, weil es eben auf so einer billig-Kiste lief, es sich deswegen jeder leisten konnte und schwupps hat sich das Zeug etabliert gehabt. Keine Ahnung, ob die "Altlasten" der damaligen Entwicklung heute noch alle drin sind - da kannst du mir bestimmt mehr drüber erzählen, da du ja damit zu tun hast.
Erstens es waren keine Studenten sondern Mitarbeiter der Bell Labs und Billig ist im Kontext relativ zu sehen.

Ken Thompson, Dennis Ritchie, M. D. McIlroy und J. F. Ossanna hatten nach dem Scheitern der MULTICS Entwicklung, an der die Bell Labs beteiligt waren, einen kleineren einfacheren Ansatz gewählt und auf einer freien PDP-7 (d.h. innerhalb der Bell Labs wurde die Maschine gerade nicht benötigt) implementiert. Damals wurde UNIX komplett in Assembler entworfen und implementiert. Das war damals so üblich. Als es endlich für das Team eine eigene Maschine gab war das eine PDP-11, und für den Port von UNIX auf dieses System wurde extra C entwickelt, um nicht mehr so von Assembler abhängig zu sein. Ein ganz wesentlicher Schritt in der Geschichte der Betriebssysteme, es wurde das erste leicht portable OS geboren. Und eine PDP-11 war zwar "billig" im Vergleich zu einem Mainframe, aber nicht in dem Sinne dass sich das Dinge eine Privatperson hätte hinstellen können. Dazu waren die Dinger viel zu teuer. "Ramschig" war eine PDP-11 definitiv nicht, das war das beste was es damals in diesem Marktsegment überhaupt zu kaufen gab. Man sollte auch auf dem Radar haben wann das war - Anfang der 1970er!!!

Die Schwächen von C sind eher zu laxe Typisierung, so dass etliche Programmierfehler durchrutschen können. Performance hingegen ist üblicherweise mit C nicht das Problem. Ja, einige sehr spezielle Optimierungen kann man mit C nicht so ohne weiteres durchführen, die sich mit einer anderen Sprache eher umsetzen lassen. Aaaaber dann reden wir über ziemlich spezielle Fälle und z.B. Fortran o.ä. als Vergleichsmaßstab. Populär wurde C weil UNIX damit programmiert war. Nachdem die Bell Labs UNIX an die Universitäten und einige Firmen herausgab, hat es sich sehr schnell verbreitet. Daher kamen in den USA sehr viele Studenten in Kontakt mit UNIX und C. In den 80er war UNIX schon so weit entwickelt, dass es de facto nur noch auf Systemen mit linearen Speicher mit MMUs lief. Im Heimbereich waren damals nur 8Bit oder 16Bit Systeme mit Paging üblich. Übrigens hat die Firma Microsoft einmal Xenix entwickelt und als Nachfolger von DOS im Sinn. Da es aber nur auf 80286 mit viel Speicher lief und damals relativ teuer war, setzte es sich nicht durch. Erst mit dem 80386 und dem speziellen ProtectedMode des 386 wurde endlich das möglich, was z.b. bei der Motorola 68k Familie von Anfang möglich war. Den Arbeitsspeicher linear ansprechen zu können, ohne irgend welchen dämlichen Hürden in der Hardware und Software. Zum Vergleich: man konnte auf einem Motorola 68000 schon so programmieren, dass die Software unverändert (d.h. ohne Übersetzung) auf einem 68020 mit mehr als 16MB lief. Auf einem 80286 war dies mit dem Übergang zum 80386 nicht möglich. Zwar konnte der 80386 mehr als 16MB ansprechen, aber dazu brauchte man neue Software. Der spezielle Protected Mode des 386 inspirierte einen gewissen Linus Torvalds.

Exakt das. Warum nicht einfach den ganzen alten Schrott rauswerfen, die X86 Architektur ausmisten und nach der Grundreinigung eine neue, schlankere und effizientere Architektur genießen?
Intern ist das längst geschehen. Da werkelt mittlerweile ein RISC Core mit vorgeschalteten Hardware Emulator. Dinge wie AVX, AVX2 werden nativ an den RISC Core durchgereicht der alte x86 Code wird von Frontend erstmal in Befehle des Cores übersetzt. Wir verdanken es AMD, dass es x86 noch gibt. Intel wollte es mit IA64 ersetzen. Nur AMD musste unbedingt x86-64 einführen. Ohne das wäre x86 Weg vom Fenster gewesen. Da aber die Welt so auf Windows fixiert ist, und Windows nie wirklich gut mit anderen CPU Plattformen zurecht kam, blieb uns der Mist erhalten.

Und ich nehme an, das ist der Hauptgrund, warum man sich "den Stress spart" und einfach Nvidia benutzt?
Es gab bis vor einigen Jahren noch einen weiteren Grund. nVidia lieferte schon recht früh spezielle Tesla Karte für Server, AMD hat das jahrelang verpennt, und im Server will man keine Grafikkarte mit Lüfter verbaut haben. Da will man nur einen passiven Kühlkörper haben, den Rest erledigen die Gehäuselüfter des Servers. Gamerkarten behindern eher der Luftstrom im Server.

Mich wundert es nur, warum für AMD dann über die Zeit nicht auch welche rausgekommen sind. War/Ist die Nachfrage so gering?
Im HPC Markt kamen wenn man die Top500 anschaut auf ein AMD System ca. 100 nVidia Systeme. Sicherlich wären viele Privatpersonen Studenten und wissenschaftliche Mitarbeiter weltweit froh über gute Software für AMD gewesen, aber von AMD selbst kam fast nichts. Erst in letzter Zeit bessert sich das, aber AMD unterstützt nur externe Gruppen und macht die Arbeit nicht selbst.

Korrekt. Von Biologen über Chemiker bis hin zu Systemarchitekten - keiner von denen hat im Studium wirklich programmieren gelernt, weil die halt Sachen wie Chemie, Biologie oder Physik gelernt haben.
Bei mir hieß es während des Physikstudiums nur lapidar, dann programmieren sie mal schnell eine Lösung für die Übungsaufgabe! Im Grunde wurde es stillschweigend erwartet. Falls man es trotzdem nicht konnte und in der Arbeitsgruppe benötigte, es gab extra Kurse dafür. Fortran was sonst.

Von daher ist "weigern" ein grenzwertiger Begriff.
Wie gesagt, ich bin da Härteres gewohnt. Ob das Vorgehen bei Euch so sinnvoll ist, ist ein anderes Thema. Nur kenne ich es von Cluster an der Uni, dass immer wieder Nutzer von Computer fernen Fachbereichen anfragen, ob sie z.B. Matlab Code auf dem Cluster ausführen könnten. Der erste Schock ist es, dass es sich um Linux Cluster handelt, der zweite dass sie nicht einfach so Matlab Code ausführen können, weil die Lizenzen dafür nicht vorhanden sind. Wenn dann die Anpassungen an GNU Octave gemacht sind, und die ersten Rechnungen gelaufen sind, sind sie meist froh. Trotzdem taucht dann früher oder später die Frage auf, wie man den Code schneller machen könnte. D.h. Matlab ist ein tolles Tool, wenn man nie wirklich lange rechnen muss. Ab einem gewissen Punkt sollte man die Offenheit mitbringen und akzeptieren, dass es für bestimmte Problemlösungen nicht das Optimum ist.
 
Bei mir hieß es während des Physikstudiums nur lapidar, dann programmieren sie mal schnell eine Lösung für die Übungsaufgabe! Im Grunde wurde es stillschweigend erwartet. Falls man es trotzdem nicht konnte und in der Arbeitsgruppe benötigte, es gab extra Kurse dafür. Fortran was sonst.

Wir wurden direkt auf Matlab geworfen, haben nebenbei einen kleinen C/C++ Kurs gehabt, um es mal "gesehen" zu haben und es nie wirklich gebraucht. Später gab es dann ein paar Fälle, wo der Prototyp dann in echte Produkte eingebaut werden sollte - da musste man den Matlab-Code natürlich in C übersetzen. Das war aber gar nicht mehr unser Aufgabengebiet. Bei der Entwicklung neuer Algos will man eigentlich so wenig wie möglich Zeit vor dem "Ballast-Code" sitzen und eher so viel wie möglich testen und analysieren um die eigentliche Funktion zu verbessern. Das einfachste Beispiel wäre hier die Parameteroptimierung auf bereits vorhandenen Algos, dann kommt eine Kombination verschiedener die sich nicht-linear beeinflussen und dann betreten wir schon so langsam das Feld der neuronalen Netze. Wissenschaftlich sind die leider völlig wertlos, weil sie keinen logischen Wissensgewinn bringen - sie machen Dinge einfach nur "besser", aber keiner kann mehr sagen warum.

Deswegen wird ein neuronales Netz auch eher ungerne bei der Ursachenforschung eingesetzt, weil man keine Rückschlüsse draus ziehen kann - es sei denn, es handelt sich um ein sehr einfaches Netz. Dort kann man noch ein paar Rückschlüsse ziehen. Bei den großen Dingern stehst du aber vor ner Nebelkerze. Da isses nur noch "Diese Kombination ist die beste, weil das Netz es so sagt" und nicht "Dies ist die beste Kombination, weil der Parameter A einen besseren SNR hat als Parameter B."


Wie gesagt, ich bin da Härteres gewohnt. Ob das Vorgehen bei Euch so sinnvoll ist, ist ein anderes Thema.
Ganz ehrlich - ich würde auch gerne nur mit performanten Tools arbeiten. Aber ich hab dafür schlichtweg keine Zeit. Würde man nicht allein auf ner Insel arbeiten, sondern hätte 1-2 Leute mehr in der Abteilung, könnte man auch mal was anderes als Fast-Food Forschung betreiben. Wir hatten sogar mal einen reinrassigen Informatiker, der den ganzen Laden hier etwas effizienter machte. Leider wurde der vom Obermufti rausgeekelt, weil er nicht so gut in Physik war. (Musste er auch nicht, aber so sind Menschen nun einmal)

Nur kenne ich es von Cluster an der Uni, dass immer wieder Nutzer von Computer fernen Fachbereichen anfragen, ob sie z.B. Matlab Code auf dem Cluster ausführen könnten. Der erste Schock ist es, dass es sich um Linux Cluster handelt, der zweite dass sie nicht einfach so Matlab Code ausführen können, weil die Lizenzen dafür nicht vorhanden sind.
Jupp - wenn wir unendlich viel Zeit hätten, könnten wir das auch alles lernen. Wenn ich aber zwischen 2 Forschungsaufträgen aber mal eben C/C++ lernen soll und es dann so gut können darf, dass mein Code auf magische Weise sofort performanter ist als "Standard-Tools", dann würde es diese Standard-Tools nicht mehr geben. ^^

Wenn dann die Anpassungen an GNU Octave gemacht sind, und die ersten Rechnungen gelaufen sind, sind sie meist froh. Trotzdem taucht dann früher oder später die Frage auf, wie man den Code schneller machen könnte. D.h. Matlab ist ein tolles Tool, wenn man nie wirklich lange rechnen muss. Ab einem gewissen Punkt sollte man die Offenheit mitbringen und akzeptieren, dass es für bestimmte Problemlösungen nicht das Optimum ist.
Ich hab etwas mit Python rumgespielt und find das ganz nett - das ist aber ehrlich gesagt eher ein Luxus. Andere Kollegen machen in ihrer Freizeit was anderes wie... Schlaf nachholen oder so. ;)
 
Zuletzt bearbeitet:
Und wo ist da jetzt bitte dein Problem?
Du kannst doch (nach eigenen Aussagen) werder das eine noch das andere?
Ob da nun Cuda oder OpenCL drin/drauf/dran/drüber ist, ist doch völlig irrelevant... Es macht für dich und deine Arbeit genau NULL Unterschied. Du kannst weder das eine noch das andere... Dennoch urteilst du über Entscheidungen, welche Leute irgendwann mit welchem Gründen auch immer getroffen haben, weil es für DICH irgendeinen Nachteil gibt -> den es, wenn es anders wäre, immernoch gegeben hätte.

WO ist also jetzt genau dein Problem!?



Das Stichwort lautet hier übrigens Akzeptanz...
Würde ich zu meinem Chef gehen und sagen, ja lieber Chef -> OpenCL geht nicht, unsere AMD Hardware packt das nicht -> wir brauchen NV mit Cuda Support. Dann kommt als aller erstes die Frage -> was haben wir davon?
Wenn ich ihm dann sage, die Berechnung unseres "Problems" dauert anstatt nun 20h auf den CPUs nur noch 2h auf den GPUs -> und er mal fix überlegt, wo eine Arbeitsstunde mit ~250€ dem Kunden in Rechnung gestellt wird, 20h Ersparnis = 5000€ = min. eine brauchbare NV GPU... Dann gibts da auch absolut gar kein Problem.
DAS ist Business. Da gehts ums Geld und um nix anderes. Rumheulen bringt da nix. Vor allem bringt es einen nicht weiter ;)
 
Zuletzt bearbeitet:
Und wo ist da jetzt bitte dein Problem?
Du kannst doch (nach eigenen Aussagen) werder das eine noch das andere?

CUDA ist ne Art Nvidia Dongle für Matlab. Das ist ne künstlich eingebaute Schranke. Nun ja, das Thema ist bereits abgefrühstückt, dank Octave. Ergo, kein Problem. Und nein, ich muss nicht alles programmieren können um es zu nutzen. Ein einfaches Verständnis darüber, wie man es benutzt reicht in 99% der Fälle für alles aus, was ich brauche. Und wenns dann doch mal ein Problem gibt, kann ich ne Tür weiter in 5 Minuten die restlichen 1% der Probleme lösen.


Ob da nun Cuda oder OpenCL drin/drauf/dran/drüber ist, ist doch völlig irrelevant... Es macht für dich und deine Arbeit genau NULL Unterschied.
Für mich ist das chillig, es hat aber auch schon einige Kunden gegeben, die Matlab-Scripte haben wollten. Und wenn die dann definierte Hardware-Anforderungen haben gibts Probleme - um die ICH mich gar nicht kümmern will, weil Matlab das verbockt hat. Und ja, dem Kunden gut zureden und ihm Octave anbieten kann man zwar versuchen, stößt aber in den meisten Fällen auf taube Ohren. Dann sitz ich mit einem Problem an, mit dem ich eigentlich gar nix zu tun hab.

Du kannst weder das eine noch das andere... Dennoch urteilst du über Entscheidungen, welche Leute irgendwann mit welchem Gründen auch immer getroffen haben, weil es für DICH irgendeinen Nachteil gibt...
Wie gesagt, es erzeugt Probleme mit denen ich mich gar nicht rumschlagen will, weil ich absolut keine Kontrolle darüber habe. Es ist nicht mein Bier, ob etwas bestimmte Anforderungen hat oder nicht. Also schalt mal nen Gang runter.


Das Stichwort lautet hier übrigens Akzeptanz...
Würde ich zu meinem Chef gehen und sagen, ja lieber Chef -> OpenCL geht nicht, unsere AMD Hardware packt das nicht -> wir brauchen NV mit Cuda Support. Dann kommt als aller erstes die Frage -> was haben wir davon?
Wenn ich ihm dann sage, die Berechnung unseres "Problems" dauert anstatt nun 20h auf den CPUs nur noch 2h auf den GPUs -> und er mal fix überlegt, wo eine Arbeitsstunde mit ~250€ dem Kunden in Rechnung gestellt wird, 20h Ersparnis = 5000€ = min. eine brauchbare NV GPU... Dann gibts da auch absolut gar kein Problem.
DAS ist Business. Da gehts ums Geld und um nix anderes. Rumheulen bringt da nix. Vor allem bringt es einen nicht weiter ;)
Yo, in der freien Wirtschaft wäre es auch genau das. Versuch das aber mal in einer Uni durchzuboxen, die an jeder Ecke den euro dreimal umdreht. Die lassen sich auf der CPU und Ende. Und weil AMD-Hardware halt nicht 5k kostet, sondern nur 400 - ist es mit etwas Glück schon eher möglich, so eine GPU zu bekommen. Und dann wäre es ja toll, wenn man sie nutzen könnte.

Kann man ja auch (mit Octave) - wenn Obermufti aber Matlab will, fangen die Probleme wieder an.
 
lol dank der perversen Quoterei is der Thread unlesbar :d
 
Sind doch hier im Luxx immer die selben User, die dafür sorgen das sämtliche CPU / GPU Threads nicht lesenswert sind.
 
Jupp - wenn wir unendlich viel Zeit hätten, könnten wir das auch alles lernen. Wenn ich aber zwischen 2 Forschungsaufträgen aber mal eben C/C++ lernen soll und es dann so gut können darf, dass mein Code auf magische Weise sofort performanter ist als "Standard-Tools", dann würde es diese Standard-Tools nicht mehr geben.
Wenn man technischwissenschaftliche Rechnungen macht, und einmal das Grundgerüst eines C, C++ oder Fortran Programms hat, dann ist der Aufwand nicht sehr viel größer als mit Matlab, wenn man die passende Libraries nutzt. D.h. man muss auf BLAS, LAPACK, Sundials, fftw usw. zurückgreifen. Dann reduziert sich der Codeaufwand dramatisch, weil man eben nur noch xGEMM nutzt anstatt von Hand die Matrixmultiplikation zu auszuschreiben. Der große Vorteil der BLAS & Co. ist, dass man hoch optimierte Versionen bekommt z.B. Intels MKL, und man einfach durch Linken der passenden Library massive Geschwindigkeitszuwächse bekommt. Der Referenzcode von netlib.org läuft nur auf einem Prozessor Core, die MKL skaliert auf einem Knoten. Wenn das nicht mehr ausreicht gibt es auch spezielle Netzwerkversion, die sich aber nur lohnt wenn die Matrizen riesig sind und man eine sehr schnelle Fabric hat (Infiniband oder Omnipath). Zumindest bei Octave ist es dokumentiert, dass die BLAS verwendet wird. D.h. die eigentliche Matrixmultiplikation ist schnell. Performance geht hier verloren, weil nicht alle Operationen effizient auf den Matrizen arbeiten und auch nicht an die BLAS & Co. ausgelagert werden. Falls Du doch einmal Lust auf etwas anderes hast. Meine Leseempfehlung für diesen Fall: Fortran 95/2003 for Scientists and Engineers: 1995-2003. Neben dem gfortran gibt es mitterweile auch eine Community Version von PGI.
 
Fangen wir bei der alten C/C++ Sprache an, die laut Computersprachexperten elendig ineffizient sein sollen.
Nur damit es keine Missverständnisse gibt, C und C++ sind zwei Sprachen. C++ basiert zwar auf C, also Syntax und Semantik überlappen sich teilweise, mehr isses dann aber auch nicht. Beide Sprachen werden voneinander unabhängig standardisiert. Und du meintest vermutlich aufwändig statt ineffizient. Das mag durchaus stimmen. Es gibt Sprachen, die einfacher zu handhaben sind und schneller zu Ergebnissen führen. Dafür lässt sich mit C und C++ idR immer noch am meisten aus der Hardware rausholen.

edit: Hab die "Moral von der Geschichte" vergessen. Kurz: Wenn die Softwareentwickler OpenCL benutzen würden, könnte AMD in den Rechenzentren ne Menge erreichen. Aber seit über 10 Jahren gibts nur CUDA, CUDA und wieder CUDA.
Naja, mittlerweile wird, zum Glück, auch auf OpenCL und andere offene Lösungen gesetzt, gerade bei neuen Projekten. Alte Softwareinfrastrukturen baut man hingegen nicht einfach mal über Nacht um. Wird aber sicherlich noch seine Zeit brauchen, bis OpenCL & Co CUDA weitestgehend auf dem offenen Markt verdrängt haben. Spezifische Projekte, wie Supercomputer, sind dann nochmal eine andere Sache. Die werden wohl immer spezifische Softwarelösungen einsetzen. Aber auch da sehe ich die Möglichkeiten von OpenCL & Co heute schon im Vorteil gegenüber CUDA. Nur braucht es dafür halt auch leistungsfähige Hardware von AMD und Intel.

Deswegen sag ich ja, das wir generell mal so langsam was "neues" brauchen. Neue Programmiersprache (schnell und gut), neue Instruction sets, neues alles was nur aus Kompatibilitätsgründen noch mitgeschliffen wird.
Eine Programmiersprache wie C ist nicht schnell per se. Zumindest wenn wir von Performance reden. Schnell sind maximal Kompilate. Und die werden vom Compiler erstellt. Dessen Implementierung wird vom C Sprachstandard nicht vorgegeben.

Ja, was neues wäre nett. Aber nicht, weil C oder C++ nicht schnell genug wären. Da gibt's ganz andere Gründe aufgrund der Altlasten. Wie nervige Syntax, was ich gerade immer wieder an unnötiger Interpunktion merke. Selbst LUA zeigt, dass es besser geht. Oder fehlende Funktionalität, wie zB Support für parallelisierte Operationen. Was auch die Optimierungsarbeit des Compilers auf ILP Ebene erleichtern würde und man sich nicht zusätzlich mit entsprechenden SSE/AVX Intrinsics und dergleichen oder gar Assembler rumärgern müsste. Seit C++11 hat sich gerade bei C++ viel zum Positiven gewandelt. Neues auto, constexpr, declspec, for/each Schleifen, lambdas usw. Alles tolle Sachen. Leider ist und bleibt einiges halt trotzdem nur Flickschusterei. Einen Neuanfang mit einer sauberen und auf moderne Bedürfnisse zugeschnittenen Hochsprache, der parallel zum bisherigen C/C++ Ökosystem läuft und wo man irgendwann komplett umsteigen kann, würde ich extremst begrüssen. Nur scheint da niemand wirklich Interesse zu haben. Sachen wie D sind mMn leider nur halbgare Aufgüsse und unzureichend.

Eben. Und genau da setzt doch auch CUDA an. Die Kunst ist eben, eine in sich stimmige Plattform hinzustellen, die sich möglichst ohne vertiefte Kenntnisse "bestmöglich" und von Haus aus optimiert einsetzen lässt. Und da trennen - in diesem Bereich - AMD und NVIDIA momentan Welten (jedenfalls in meiner Wahrnehmung). NVIDIA baut inzwischen hier eben nicht nur Hardware, sondern schafft auch faktisch die Voraussetzungen für ganz neue Märkte.
Das macht AMD genauso. Ich sage nur GPUOpen. AMD investiert mittlerweile sehr viel in ihr Softwareökosystem. Da nehmen sich beide Unternehmen kaum noch was. Im Gegenteil, AMD scheint da im Moment sogar einiges besser zu machen. Nvidia hatte mit Treibern und GameWorks in letzter Zeit nicht gerade die besten Kritiken.
 
Das macht AMD genauso. Ich sage nur GPUOpen. AMD investiert mittlerweile sehr viel in ihr Softwareökosystem. Da nehmen sich beide Unternehmen kaum noch was. Im Gegenteil, AMD scheint da im Moment sogar einiges besser zu machen. Nvidia hatte mit Treibern und GameWorks in letzter Zeit nicht gerade die besten Kritiken.

Gameworks hat doch genau gar nichts mit GV100 zu tun??
Das Argument ist dünn, sehr dünn.

Mal davon ab, Gameworks ist genau der gleiche Ansatz. Das quasi rundum Sorglos Paket inkl. allem Beiwerk. Ob einem das nun schmeckt oder nicht, eine derartige Sammlung gibt es im Moment nicht als Alternative... Es heist also selbst bauen oder Gameworks... Exakt das gleiche ist/war die Aussage oben. Investitionen in was auch immer bringen leider nichts, wenn nichts greifbares bei raus kommt... Und genau hier ist nach wie vor NV und ein Stück weit auch Intel deutlich vor AMD. Das sieht man allerdings nur dann, wenn man die Vorzüge der jeweiligen Möglichkeiten mal live und in Farbe erleben/nutzen/anfassen konnte, anstatt nur zu quatschen... ;) Denn von der Pauschale, Cuda ist scheiße, OpenCL ist toll, kann sich kein Entwickler der Welt was kaufen. Ebenso nicht von wegen mit OpenCL geht alles auch wie mit Cuda -> wenn man den Aufwand ausklammert, der dahinter steht (stehen kann)


Ob AMD da jemals auf das gleiche Level kommt, bleibt abzuwarten... aus meiner Sicht hat der Hersteller der properitären Lösung schlicht per se einen leichten Vorteil, einfach weil alles aus einem Boot kommt. Genau das spielt NV ein Stück weit auch aus... Die liefern das, was gefragt wird und der Markt nimmt es offenbar auch an...
 
Die liefern das, was gefragt wird und der Markt nimmt es offenbar auch an...
Vor allem kann man für teures Geld Lösungen verkaufen, die anderswo gratis sind, und dann mit dem Geld sehr viel Marketing betreiben, und sich Unterstützer einkaufen, die die Software als einzige Lösung darstellen, sodass standardisierte Lösungen wie OpenCL oder Adaptive Sync gar nicht als Alternative auftauchen. Macht Microsoft auch so: Windows teuer verkaufen, Kinder und Studenten bekommen es in Bildungseinrichtungen gratis, Spiele werden mit der XBox auf Windows gezwungen und Raubkopierer quasi geduldet - dadurch werden C#, DirectX und MS Office als "normal" angesehen, denn offene (Industrie-)Standards, die zusammen beschlossen werden, damit alle vom freien Zugang profitieren, haben mangels finanzieller Mittel keine Lobby.

Edit: Aber es gibt nicht nur diese Seite der Medaille: Immer mehr Leuten geht das gewaltig gegen den Strich und sie wehren sich. Deshalb sollte vor allem die Volta-Hardware überzeugen.
 
Zuletzt bearbeitet:
Immer die leiche Leier mit offenen Standards und blah. Ich kanns echt nicht mehr hören. Wenn den meißten das so wichtig ist dürfte doch im Grunde keiner von Euch ein Apple Gerät, oder einen x86 basierten Windows PC kaufen. Nichts davon ist richtig offen. Apple samt iOs nicht, Windows nicht und x86 schon mal gleich gar nicht. Hauptsache mal auf CUDA rumhacken aber das nicht jeder einfach x86 basierte CPUs bauen darf wie er will oder eben Geräte samt iOs, dass ist dann egal. Doppelmoral at its Best.

Ich sags mal ganz frech in Bezug auf CUDA. Nvidia hat den HPC und AI/DeepLearning Markt maßgeblich kreiert. Kein anderes Unternehmen hat zu den Anfangszeiten das Potential erkannt, nicht mal Intel. Das war ein Invest mit vollem Risiko. Das Nvidia kein Interesse daran hat einer "mee too" Firma wie AMD hier einfachen Zugang zu gewähren ist doch völlig klar. AMD hat zu diesem Markt nichts aber auch gar nichts beigetragen. Ich sehe nicht wieso AMD nun hier einen leichten Eintritt zum profitieren bekommen soll. Wenn sie OpenCL wollen, sollen sie halt die Software selber portieren und das Geld dafür in die Hand nehmen. Steht ihnen ja frei. AMD setzt doch im Grunde nur auf Dinge wie OpenCL weil sie wie immer hoffen, dass andere, insbesondere die Nutzer Community , die Drecksarbeit machen. Das altbekannte Lied. Eigene Software Initiativen werden immer groß angekündigt und gehen dann in der Regel über die Zeit unter. Man hofft das es andere übernehmen.

Fakt ist für AI/DeepLearning ist AMD einfach zu spät drann. Der Zug ist m.E. abgefahren und das ist jetzt nicht gerade unverdient. Als Entwickler ist mir AMD doch erstmal scheiß egal. Ich will maßgeschneiderte Lösungen die einfach zu implementieren sind und die ich im Idealfall mit so geringen Portierungsaufwänden wie möglich einsetzten kann. AMD setzt halt nach wie vor darauf, dass dieses Geschäft ein reines Hardware Geschäft ist. Und das ist es eben nicht mehr, insbesondere durch den allgemeinen Cloud Trend. 10 Jahre lang hat Nvidia hier in ein Softwareökosystem investiert, dass eben mittlerweile analog x86 oder Windows ein "Quasistandard" ist, ohne eben komplett offen zu sein. Und genau das ist weder Windows, noch x86 noch iOS und andere Dinge. That's Life. AMD ist einfach zu spät.
 
Zuletzt bearbeitet:
Vor allem kann man für teures Geld Lösungen verkaufen, die anderswo gratis sind, und dann mit dem Geld sehr viel Marketing betreiben, und sich Unterstützer einkaufen, die die Software als einzige Lösung darstellen, sodass standardisierte Lösungen wie OpenCL oder Adaptive Sync gar nicht als Alternative auftauchen. Macht Microsoft auch so: Windows teuer verkaufen, Kinder und Studenten bekommen es in Bildungseinrichtungen gratis, Spiele werden mit der XBox auf Windows gezwungen und Raubkopierer quasi geduldet - dadurch werden C#, DirectX und MS Office als "normal" angesehen, denn offene (Industrie-)Standards, die zusammen beschlossen werden, damit alle vom freien Zugang profitieren, haben mangels finanzieller Mittel keine Lobby.

Und der nächste der urteilt ohne selbst Für- und Wieder gesehen zu haben...
Welche Alternativen zu auf Cuda basierte Lösungen gibt es denn in vollem Umfang "gratis"? Du scheinst ja welche zu kennen, wenn du dies behauptest? Also mal raus mit den Fakten?? Und nein, OpenCL ist keine Lösung... Das drum rum macht dort vor allem beim Beiwerk aber die Lösung, während genau dieses Bewerk bei anderen Teilnehmern am Markt einfach fehlt oder in Teilen weit weniger gut funktioniert, keine/unzureichende Dokus vorhanden sind, keine/unzureichender Support beim Hersteller erhältlich ist usw.

Irgendwie kann man da nur den Kopf schütteln über so viel Naivität... Mal davon ab, im Kapitalismus geht es doch gerade darum, die Lösung für teures Geld zu verkaufen? Irgendwas scheint da NV ja richtig zu machen... Denn da knallen quasi jedes Quartal die Sektkorken...
 
@mr.dude
Auch du hast dich an das Thema zu halten
Den Nonsens kannst du dir schenken. Hier geht es um "Alle Details zur Volta-Architektur ..." und nicht deine persönliche Befindlichkeit zum Thema NV, OpenCL oder mir gegenüber.
:btt:
 
Zuletzt bearbeitet:
IMG_3068.JPG

Derzeit kursiert dieses Bild, welches eine Titan-Karte auf Volta-Basis zeigen soll. Was sagt ihr dazu?
 
hmmm interessant
 
Mich irritiert das Gelb... NV hätte doch eher was in Richtung grün gebracht!? Oder gibt es irgend einen Zusammenhang mit Volta und der Farbe Gelb?
Und keine BlingBling LEDs mehr mit dem Schriftzug an der Seite?
 
Komische Farbe.

Sagt mal, kann es sein, dass die SLI-Connectoren fehlen? :o
 
Komische Farbe.

Sagt mal, kann es sein, dass die SLI-Connectoren fehlen? :o

Das sind NVLink-Anschlüsse wie bei der Quadro P100: https://www.hardwareluxx.de/index.php/news/hardware/grafikkarten/41825-nvidia-praesentiert-quadro-gp100-mit-gp100-gpu-und-16-gb-hbm2.html
 
Zuletzt bearbeitet:
Jupp, definitiv NVLink:
quadrogp100-be1bfa44qikva.jpeg


Vielleicht eine Titan auf GP100? Oder GV100?
Oder einfach nur eine Quadro GP100 mit anderem Kühler?
Die Kiste ist ja aus... Sagt also nix darüber aus, ob das Dingens so laufen würde oder einfach nur jemand was zusammengedängelt hat...

EDIT: GP100 mit anderem Kühler kann nicht sein -> die Stromstecker sind anders
 
Zuletzt bearbeitet:
wenn ich Jensen wäre hieße das Ding Tytan Y :d
 
Na ja, das eine ist die aktuelle Marktsituation, das andere das Potential.

Fangen wir bei der alten C/C++ Sprache an, die laut Computersprachexperten elendig ineffizient sein sollen.

Dann die ollen alten Instruction Sets, die auch längst überholt sind und durch elegantere Sachen wie ARM ersetzt werden könnten. (Auch die Russen haben mal vor ein paar Jahren ne CPU mit unglaublicher IPC gebastelt)

Dann können wir da drauf noch die ganzen Sachen aus den Betriebsystemen schmeißen, die auf Grund von Historie noch rumgammeln.

Dann ein neues Systemdesign um die ganzen Flaschenhälse rauszuwerfen und zum Schluss optimierte Software da drauf.

Macht nur keine Sau, weils niemand kaufen würde. Ohne Windows - mööp. Ohne X86 - mööp. Ihr versteht schon...

So - was hat das ganze mit dem Thema zu tun? Ganz einfach: AMD haut regelmäßig tolle neue Technologien raus, die kaum eine Sau nutzt. WENN sie aber mal genutzt wird, geht sie ab wie Nachbars Katze.

Mir tut AMD da ein wenig leid. Die treiben mit ihrem Einkommen an der roten Linie so viel Innovation, dass Nvidia und Intel eigentlich rot vor Scham werden müssten. Werden sie aber nicht, weil die "Kunden" halt immer den gleichen Mist kaufen.

/rant

edit: Hab die "Moral von der Geschichte" vergessen. Kurz: Wenn die Softwareentwickler OpenCL benutzen würden, könnte AMD in den Rechenzentren ne Menge erreichen. Aber seit über 10 Jahren gibts nur CUDA, CUDA und wieder CUDA.

full ack, ich hätte es nicht besser schreiben können :)
 
angeblich soll die Karte in 2 Monaten schon verkauft werden, also ich glaub ja nicht, dass es sich hierbei um eine Volta handelt, falls aber ja muss man nv schon lassen, dass die verdammt schnell sind :d
 
Glaube ich nicht dran. Die ganzen GV100 gehen doch sicherlich erstmal alle in den margenträchtigen Servermarkt.

Was sollte denn solch eine GV100 Gamerkarte kosten?! Kleine 'Überschlagsrechnung' ohne Anspruch auf 100%ige Korrektheit...


Quadro M6000 24GB 5.000 USD UVP / GeForce Titan Xm 12GB 999 USD UVP = ~5x

Quadro P6000 24GB 4.850 USD UVP / GeForce Titan Xp 12GB 1.200 USD UVP = ~4x

Quadro GP100 16GB Ø~7.800 € / ~4,5x = GeForce Titan GP100 16GB ?! ~1.733 €


Es ist also kaum vorstellbar das es eine GP100 Gamerkarte unter 1700 Euro zu kaufen sein würde (zumal die Karte ohne den 3840 Shader Vollausbau des GP100 wahrscheinlich sowieso langsamer wäre als die Titan Xp mit 3840 Shader GP102). Nun muss man noch bedenken das der GV100 Chip alleine nochmal deutlich größer und damit teurer ist als GP100, die Herstellung mit dieser Doppel-Interposer Technik das ganze wahrscheinlich noch aufwendiger und damit noch teurer macht als die HBM2 Technik ohnehin schon ist. Bevor da eine weitere Titan kommt, wird sicherlich auch erstmal ne Quadro GV100 auf die Beine gestellt oberhalb der Quadro GP100, bringt mehr Geld. Aber vielleicht kann zu guter letzt der absolute Ultra-High-End Gamer-Enthusiast noch in den Genuss der GV100 Ausschuss-Chips kommen und dann 'günstige' 2.000 Euro für ne 'Titan V 16GB HBM2' hinlegen ^^
 
Ich hoffe in ein paar Wochen ist die Karte da, dann gibt es ein episches Duell Volta gegen Vega.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh