App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
News NVIDIA: DirectX 11 ist nicht so wichtig
- Ersteller pipin
- Erstellt am
Bobo_Oberon
Grand Admiral Special
- Mitglied seit
- 18.01.2007
- Beiträge
- 5.045
- Renomée
- 190
Es verwundert mich, dass du als Programmierer die Stärken von OpenCL vermeintlich kennen willst ... aber noch nicht die Möglichkeit der Extensions gehört hast?!Doch. Das Wesen von Standards ist Plattformunabhängigkeit. Das ändert sich auch mit OpenCL nicht.
Du bist nicht auf den Dampfer was die Nachrichtenlage hergibt.... Daher war ich der Meinung, du sprichst von proprietären Sachen wie x86 oder CUDA. Wenn Intel und nVidia offene Standards ebenfalls pushen, wie OpenCL, umso besser. Ich habe da aber ehrlich gesagt Zweifel angesichts LRBni und eben der strikten Fokussierung auf CUDA bei nVidia.
AMD, Intel, Nvidia sind bei der aktiven Entwicklung von OpenCL dabei gewesen.
Alle drei beabsichtigen in ihren Entwicklersuiten diesen allgemeinen Standard mit zu unterstützen. Intel hat in jüngerer Zeit auch noch entsprechende Firmen deswegen aufgekauft.
AMD will OpenCL in Stream (Hinweis-> Entwicklersuiten) integrieren.
Nvidia will und hat OpenCL schon in CUDA (Hinweis-> Entwicklersuiten) integriert.
Ich verzichte darauf Links einzubinden, weil ich das schon mehrfach getan habe, ohne dass das Eingang in deine Argumentation gefunden hat.
CUDA und Stream sind Namenshüllen für ein Paket (Hinweis-> Entwicklersuiten) verschiedener Standards/APIs ... darunter auch OpenCL.
MFG Bobo(2009)
Dr@
Grand Admiral Special
- Mitglied seit
- 19.05.2009
- Beiträge
- 12.791
- Renomée
- 4.066
- Standort
- Baden-Württemberg
- Aktuelle Projekte
- Collatz Conjecture
- Meine Systeme
- Zacate E-350 APU
- BOINC-Statistiken
- Mein Laptop
- FSC Lifebook S2110, HP Pavilion dm3-1010eg
- Prozessor
- Turion 64 MT37, Neo X2 L335, E-350
- Mainboard
- E35M1-I DELUXE
- Speicher
- 2x1 GiB DDR-333, 2x2 GiB DDR2-800, 2x2 GiB DDR3-1333
- Grafikprozessor
- RADEON XPRESS 200m, HD 3200, HD 4330, HD 6310
- Display
- 13,3", 13,3" , Dell UltraSharp U2311H
- HDD
- 100 GB, 320 GB, 120 GB +500 GB
- Optisches Laufwerk
- DVD-Brenner
- Betriebssystem
- WinXP SP3, Vista SP2, Win7 SP1 64-bit
- Webbrowser
- Firefox 13
Aber Plattformunabhängigkeit hat doch nichts damit zu tun, ob mein Code schnell oder langsam auf einer speziellen Hardware/Architektur läuft. Plattformunabhängigkeit garantiert mir doch nur, dass das Programm läuft. Dieser Geschwindigkeitsunterschied hat sicher nicht nur was mit der theoretischen Rohleistung des Prozessors zu tun, sondern auch damit wie sie ausgenutzt wird.Doch. Das Wesen von Standards ist Plattformunabhängigkeit. Das ändert sich auch mit OpenCL nicht.
Ja einen Compiler braucht man immer, ich habe nichts gegenteiliges behauptet. Natürlich findet hier ein Teil der Optimierung statt. Für mich als Laien, der kein Informatik studiert hat und auch nicht studiert, fehlt natürlich der Umfassende Blick auf das Thema. Für mich stellt sich die Situation aber so dar (allgemein):Dieser Satz ist völlig unverständlich. Einen Compiler brauchst du immer. Und der übernimmt auch die Hauptarbeit der Optimierung.
Folgende Komponenten haben einen Einfluss auf die Performance einer Anwendung:
- Algorithmus
- Implementierung des Algorithmus (ist er an sich optimal?, kann der Compiler die Semantik erkennen um so den Code zu optimieren)
- verwendete Programmiersprache (verursachter Overhead, ohne hoch optimierte Bibliotheken)
- Compiler ("Grundperformance", automatische Vektorisierung, genutzte Optimierungsstufe)
- Hardware (Rohleistung, Wie funktioniert diese?,Fähigkeit des Programmierers diese zu nutzen)
- Parallelisierung (z.B. OpenMP, MPI)
Damit ich als Programmierer weiß, wo ich zu optimieren habe, muss ich mich mit folgendem auseinandersetzen:
- Welcher Teil meines Codes ist der heiße Teil, in dem die meiste Zeit verbraucht wird.
- Wie kann ich die vorhandene Hardware (Aufbau, Größe der Caches, Befehlssätze, Multicore?, Prefetch, wo liegen die bottlenecks, ...) optimal einsetzen. <-- Testen/Messen ist notwendig, Dies kann ohne Hardware und entsprechenden Compiler nicht durchgeführt werden.
- ...
Diese Auflistungen sind sicher nicht vollständig und höchstwahrscheinlich auch nicht vollständig richtig, aber sie spiegeln mein Verständnis der Dinge wieder.
In einem früheren Post hast du (?) mich ja schon mal darüber aufgeklärt, dass bei OpenCL die eigentliche Codeoptimierung erst auf der CAL-/PTX-Ebene (bei GPUs, wie sieht das eigentlich bei den CPUs aus?) stattfindet. Nach meinem Verständnis ändert das aber nichts an der Tatsache, dass man es dem CAL-/PTX-Compiler einfacher oder schwerer machen kann. Außerdem läuft nicht jeder Algorithmus und dessen Implementierung auf jeder Hardware gleich performant (CPU <--> GPU, Intel <--> AMD, ATI <--> Nvidia, unterschiedliche Genarationen). Und hier kommen die von Bobo angesprochenen Tools zum Einsatz. Mit ihnen kann man gezielt Code aufspüren, der nicht optimal ist. Auf das komplexe Thema Parallelisierung will ich gar nicht erst eingehen, da ich wahrscheinlich ohnehin schon genug Quark erzählt habe.
So einfach, wie du es darstellst, kann es doch eigentlich nicht sein? Was machen sonst Dokument wie der "Software Optimization Guide for AMD Family 10h Processors" für einen Sinn?
Sorry, wenn ich mich an der Stelle noch dummer anstelle als sonst, aber was ist hier genau mit Runtime gemeint und was sind ihre Aufgaben?Das musst du gar nicht. Wie sich der Code auf der jeweiligen Hardware verhält, bestimmt eben die Runtime. Und mit der hat der Entwickler erstmal nichts zu tun.
Danke für die Gedult!
@
gruffi
Grand Admiral Special
- Mitglied seit
- 08.03.2008
- Beiträge
- 5.393
- Renomée
- 65
- Standort
- vorhanden
- Prozessor
- AMD Ryzen 5 1600
- Mainboard
- MSI B350M PRO-VDH
- Kühlung
- Wraith Spire
- Speicher
- 2x 8 GB DDR4-2400 CL16
- Grafikprozessor
- XFX Radeon R7 260X
- Display
- LG W2361
- SSD
- Crucial CT250BX100SSD1
- HDD
- Toshiba DT01ACA200
- Optisches Laufwerk
- LG Blu-Ray-Brenner BH16NS40
- Soundkarte
- Realtek HD Audio
- Gehäuse
- Sharkoon MA-I1000
- Netzteil
- be quiet! Pure Power 9 350W
- Betriebssystem
- Windows 10 Professional 64-bit
- Webbrowser
- Mozilla Firefox
- Verschiedenes
- https://valid.x86.fr/mb4f0j
Welche Extensions?Es verwundert mich, dass du als Programmierer die Stärken von OpenCL vermeintlich kennen willst ... aber noch nicht die Möglichkeit der Extensions gehört hast?!
Doch, bin ich. Du erzählst mir daher nichts neues. Das ändert trotzdem nichts an meiner Aussage.Du bist nicht auf den Dampfer was die Nachrichtenlage hergibt.
Und genau darum ging es doch. Nicht mehr und nicht weniger.Aber Plattformunabhängigkeit hat doch nichts damit zu tun, ob mein Code schnell oder langsam auf einer speziellen Hardware/Architektur läuft. Plattformunabhängigkeit garantiert mir doch nur, dass das Programm läuft.
Nein, darum kümmert sich der Entwickler nicht. Wir programmieren schliesslich nicht mehr Assembler. Das ist die Aufgabe des Compilers bzw der Runtime. Dem Entwickler ist also, wie schon mehrfach erwähnt, die Hardware erstmal völlig egal. Das erklärt sich schon durch Logik. Willst du ein plattformunabhängiges Projekt wirklich mit jeder möglichen Hardware testen? Wie soll das möglich sein? Und willst du in diesem Leben noch damit fertig werden?Wie kann ich die vorhandene Hardware (Aufbau, Größe der Caches, Befehlssätze, Multicore?, Prefetch, wo liegen die bottlenecks, ...) optimal einsetzen. <-- Testen/Messen ist notwendig, Dies kann ohne Hardware und entsprechenden Compiler nicht durchgeführt werden.
Dass irgendein Hardwarehersteller bei einem Entwickler anklopft und ihn "überredet", auf die eigene Hardware hin zu optimieren, kann man natürlich nicht ausschliessen. Diese schwarzen Schafe wollen wir bei der Diskussion aber mal aussen vor lassen. Das ist ein Thema für einen anderen Thread.
Wie schon gesagt, das übernimmt der Compiler. In dem Fall natürlich der Teil, der für den x86 Code verantwortlich ist bzw der ISA, auf der der Prozessor basiert.In einem früheren Post hast du (?) mich ja schon mal darüber aufgeklärt, dass bei OpenCL die eigentliche Codeoptimierung erst auf der CAL-/PTX-Ebene (bei GPUs, wie sieht das eigentlich bei den CPUs aus?) stattfindet.
Das kann man natürlich machen. Eine Möglichkeit ist zB Profiling. Das ist aber kein Bestandteil der eigentlichen Entwicklung, sondern wird in der Testphase durchgeführt.Außerdem läuft nicht jeder Algorithmus und dessen Implementierung auf jeder Hardware gleich performant (CPU <--> GPU, Intel <--> AMD, ATI <--> Nvidia, unterschiedliche Genarationen). Und hier kommen die von Bobo angesprochenen Tools zum Einsatz. Mit ihnen kann man gezielt Code aufspüren, der nicht optimal ist.
Wenn du dir das Dokument mal genau anschaust, diverse Beispiele sind gar nicht speziell auf AMD Hardware bezogen, sondern sehr allgemein gehalten, eben C bzw C++ Code. Der Rest, also wenn es auf Assembler Ebene geht, richtet sich vor allem an Compiler Entwickler bzw an Entwickler, die Assembler Routinen schreiben. Es sollte aber klar sein, dass wir bei den letztgenannten nur über einen kleinen Teil aller Entwickler sprechen. Oder um es anders auszudrücken, es ist nicht repräsentativ für Softwareentwicklung.So einfach, wie du es darstellst, kann es doch eigentlich nicht sein? Was machen sonst Dokument wie der "Software Optimization Guide for AMD Family 10h Processors" für einen Sinn?
foenfrisur
Grand Admiral Special
- Mitglied seit
- 19.02.2002
- Beiträge
- 4.791
- Renomée
- 77
ich hoffe ihr erinnert euch noch alle an das thema der news?
sonst solltet ihr es euch ruhig nochmal anlesen
diese kleinka**erei macht kaum noch spass durchzulesen, weil jeder schlauer ist, als der andere und dennoch alle irgendwo recht haben. an welchen stellen weiß ich nicht, weil ich selber nicht in der materie stecke.
jeder ist in seinem themengebiet sicher sehr gut, aber sobald ihr euch vermischt, reitet jeder auf falsche formulierungen des anderen rum bzw. nimmt wörter in deren bedeutung komplett auseinander.
nicht übertreiben und wenn, dann in einem eigenen thread...das wäre ein traum.
mfg
sonst solltet ihr es euch ruhig nochmal anlesen
diese kleinka**erei macht kaum noch spass durchzulesen, weil jeder schlauer ist, als der andere und dennoch alle irgendwo recht haben. an welchen stellen weiß ich nicht, weil ich selber nicht in der materie stecke.
jeder ist in seinem themengebiet sicher sehr gut, aber sobald ihr euch vermischt, reitet jeder auf falsche formulierungen des anderen rum bzw. nimmt wörter in deren bedeutung komplett auseinander.
nicht übertreiben und wenn, dann in einem eigenen thread...das wäre ein traum.
mfg
Dr@
Grand Admiral Special
- Mitglied seit
- 19.05.2009
- Beiträge
- 12.791
- Renomée
- 4.066
- Standort
- Baden-Württemberg
- Aktuelle Projekte
- Collatz Conjecture
- Meine Systeme
- Zacate E-350 APU
- BOINC-Statistiken
- Mein Laptop
- FSC Lifebook S2110, HP Pavilion dm3-1010eg
- Prozessor
- Turion 64 MT37, Neo X2 L335, E-350
- Mainboard
- E35M1-I DELUXE
- Speicher
- 2x1 GiB DDR-333, 2x2 GiB DDR2-800, 2x2 GiB DDR3-1333
- Grafikprozessor
- RADEON XPRESS 200m, HD 3200, HD 4330, HD 6310
- Display
- 13,3", 13,3" , Dell UltraSharp U2311H
- HDD
- 100 GB, 320 GB, 120 GB +500 GB
- Optisches Laufwerk
- DVD-Brenner
- Betriebssystem
- WinXP SP3, Vista SP2, Win7 SP1 64-bit
- Webbrowser
- Firefox 13
Also ich finde die Diskussion sehr interessant!
foenfrisur
Grand Admiral Special
- Mitglied seit
- 19.02.2002
- Beiträge
- 4.791
- Renomée
- 77
das ändert dennoch nix daran, dass sie in einen eigenen thread gehört.
mfg
mfg
Ähnliche Themen
- Antworten
- 6
- Aufrufe
- 586
- Antworten
- 1
- Aufrufe
- 303
- Antworten
- 1
- Aufrufe
- 389
- Antworten
- 0
- Aufrufe
- 747
- Antworten
- 0
- Aufrufe
- 266