"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Conroe- der Killer ;)

tombman 08.03.2006 - 14:02 18888 231 Thread rating
Posts

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5024
ist eh meitens so
ist auch nicht schwer zu verstehen, ein sw-entwickler will am am besten alle plattformen ansprechen und wenn er da in eine spezielle sache investiert fallen ihm halt die anderen aus

bei dem was ich jetzt schreibe bin ich mir jetzt nicht ganz sicher weil ich noch nie wirklich in bezug auf sse was programmiert habe
aber könnte man solche opitmierungen an einen entsprechenden compiler abtretten?

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
Zitat von Castlestabler
ALso bei SSE von neuen und sehr speziellen Befehlssätzen zu sprechen kommt mir ziemlich so vor wie die Propaganda der Softwarehersteller.

SSE ist jetzt 6 oder 7Jahre alt, die Codeoptimierer von Intel sind auch schon lange heraussen und funktionieren schon super, selbst SSE2 ist jetzt schon einige jahre alt. Dann gibt es noch 3Dnow das ist irgendwann dazwischen rausgebracht worden.

Es versucht halt nur immer der eine dem anderen die Schuld in die Schuhe zu schiben, ein vernünftiger C-Compiler zur Codeoptimierung kostet halt mal ein paar 10k Euro und die will sich nich jeder leisten, aber profitieren tut davon eigentlich schon jede Software, weil der ursprüngliche Befehlssatz ist schon so veraltet das er für schnelle Programme fast nicht mehr zu gebrauchen ist.

ähm welcher C++ compiler (und die meiste games sind wohl C++) kostet bitte mehrere 10K€? der ICC kostet schlappe 200USD. MSVC und dergl kosten sicher nicht mehrere 10K€.

@mat:
da hast du recht, aber absolut JEDES komerzielle game heutzutage hat SSE codepaths.

Castlestabler

Here to stay
Registered: Aug 2002
Location: Wien
Posts: 3756
Es geht nicht um die Compiler selber die sind billig, sondern um die Code-Optimimizer und die sind schweineteuer.

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
und Code-Optimizer sind bei dir? Menschen? Tools?

Castlestabler

Here to stay
Registered: Aug 2002
Location: Wien
Posts: 3756
Mein Preis war auch etwas zu hoch, so wie deiner zu niedrig war.

Intel Compiler

Die Preis sind zwar nicht ganz schlimm, wie du aber seihst brauchst du für jede Optimierung ein eigenes Tool.
Also ganz billig ist es nicht und es sicher ein posten an dem man sparen kann, wenn man kein Geld ausgeben will.

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
du glaubst doch nicht wirklich daß die 400,- für eine firma teuer sind, oder? (außerdem sind das hier die listenpreise pro seat, glaub mir es wird ordendlich billiger wenn man mehr licences haben möchte ...)

aber dennoch versteh ich deinen post oben nicht: compiler sind billig aber optimizer sind teuer :confused: ?

optimization ist eine compile stage.

mein preis war zu teuer weil ich noch die preise für die academic edition hatte. ich war zwar um die hälfte verfehlt, aber du warst um mehr als eine zehnerpotenz daneben.

Castlestabler

Here to stay
Registered: Aug 2002
Location: Wien
Posts: 3756
Es ist einfach nicht klar formuliert, du bekommst einen Compiler auch locker als Freeware, der dir einfach das Programm übersetzt und sich nachher den Code nicht mehr ansieht.

Bei den Compilern die du von Intel beziehst sind nachfolgenden noch Code optimierungsstufen eingebaut, die dir den Code ständig gegenrechen, diese compilierung dauert zwar länger, aber der Code ist auch deutlich effizienter auf der richtigen CPU.
Selsbt wenn Intel an Entwickler selber nur die Hälfte verlang sind das für eine komplette Systementwicklung noch immer über 500€ pro Arbeitsplatz, weil im ersten Compiler sind noch nicht die neuen Befehlssätze und threading integriert.

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
hast du schon selbst mal ein programm übersetzt?

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: /at/wien/meidlin..
Posts: 11203
Zitat von SYSMATRIX
hast du schon selbst mal ein programm übersetzt?

:)

SYSMATRIX

Legend
Legend
Registered: May 2000
Location: ~
Posts: 5020
thati du weißt wies gemeint war ;)

ob er schon mal etwas "compiled" hat. mit einem dieser "gegenrechnenden" compiler ;)

Castlestabler

Here to stay
Registered: Aug 2002
Location: Wien
Posts: 3756
Ich weiß jetzt nicht genau was du meinst, aber Assemblercode selber nach kontrolliert und programmiert, habe ich ja.

Aber ich habe noch nie für eine neuere CPU den ganzen Wahnsinn gemacht, weil alle Pipelines richtig zu befüllen ist mir doch etwas zu mühselig.

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3593
Kann ich nicht einfach dem Compiler mitteilen (wie gesagt, ich bin kein Entwickler, ich frage einfach Mal so), daß er SSE/SSE2 nutzen soll, wenn der Code davon profitiert, und der Compiler entscheidet dann einfach, ob er die Erweiterungen nutzt?

Castlestabler

Here to stay
Registered: Aug 2002
Location: Wien
Posts: 3756
Du kannst dem Comipler schon sagen ob er es nutzen soll oder nicht, aber der Compiler muss auch wissen was er damit anfängt.
Eine IF-Schleife ist ja zum beispiel in Maschinensprache, keine IF-Schleife sondern eine Anhäufung von JUMP Befehlen.

Jeder Befehlssatzerweiterung bringt jetzt einige Neuerungen die im Compiler enthalten sein müssen um diesem seine Arbeit zu ermöglichen, es wird also allen Befehlen die es gibt verschiedenste Arten von Maschinenbefehlen zugewiesen.
Weiters ist der erzeugte Code ja auch davon abhängig wie die interne Struktur der Prozessors aussieht, eine lange Pipeline zum Beispiel sollte möglichst vor JUMP-Befehlen bewahrt werden oder gleich im Programmablauf die wahrscheinlichste Abfolge hintereinander liegen.

Weiters hat jeder Prozessor verschieden viele parallele Verarbeitungseinheiten, die aber nicht immer gleich ausgeführt sind, jetzt muss man beim Pipelining auch aufpassen, welche Befehle man dem Prozessor hintereinander schickt.

XXL

insomnia
Avatar
Registered: Feb 2001
Location: /dev/null
Posts: 15503
wenn man ein programm wirklich optimieren will muss man eh den code nach dem compilieren selber noch optimieren, bei grand prix 4 (z.b.) wurde die physik-engine überhaupt in assembler geschrieben weil c++ net genau genug gerechnet hat und die abläufe doch recht zeitkritisch sind ...

Castlestabler

Here to stay
Registered: Aug 2002
Location: Wien
Posts: 3756
Wenn man alles in Assembler macht dann spart man sich alles und ist sich ziemlich sicher das man die CPU top auslastet, aber frage mal bei informatikern nach wer von denen einen modernen X86 Prozessor einfach so mit assembler programmieren kann, wenn es gut geht 1% und vielleicht 20% können Assemblercode ohne Dokumentaion lesen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz