Anti-Jammer-Thread
-
- Establishment
- Beiträge: 201
- Registriert: 07.07.2010, 13:00
- Kontaktdaten:
Re: Anti-Jammer-Thread
Weil Du zu wenig Dokumentationen liest? :P
Imaging-Software und bald auch Middleware: http://fd-imaging.com
- Chromanoid
- Moderator
- Beiträge: 4272
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Anti-Jammer-Thread
http://code.google.com/p/google-guice
Warum kannte ich das noch nicht <3 :) ich sollte mich mehr bei anderen Communities rumtreiben und nicht in diesen Java feindlichen Gefilden :D
Warum kannte ich das noch nicht <3 :) ich sollte mich mehr bei anderen Communities rumtreiben und nicht in diesen Java feindlichen Gefilden :D
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Wenn man weiß, dass die Daten an 16 Bytes ausgerichtet sind, kann man in zehn Zeilen ein memcpy() schreiben, das 33 % schneller als das ist, was VC eingebaut hat.
Re: Anti-Jammer-Thread
Was wir aber auch hier sehen wollen :) Was ist mir der Variante?Krishty hat geschrieben:Wenn man weiß, dass die Daten an 16 Bytes ausgerichtet sind, kann man in zehn Zeilen ein memcpy() schreiben, das 33 % schneller als das ist, was VC eingebaut hat.
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ist ja bloß ordinary routine – identisch mit deinem Vorschlag, nur, dass ich für 2 statt 4 Schreibvorgänge abgerollt habe:Was mir zu denken gibt ist, dass ich bei ziemlich genau 6 GiB/s feststecke. Das sind 50 % mehr als memcpy() (bzw 33 % weniger Ausführungszeit für die gleiche Menge), liegt aber immernoch weit unter der theoretischen Höchstleistung meines Core i7 (die irgendwo zwischen 15 und 30 GiB/s lokalisiert sein müsste) … Prefetching hat keinen Einfluss; macht das Ganze bei zu hohen Offsets nur noch langsamer.
Der Compiler macht außerdem lustige Dinge: Adressiert Quelle und Ziel durch vier verschiedene Register statt durch zwei; Speichert xmm0–xmm6 am Anfang der Funktion und stellt sie danach wieder her.
Nachtrag: Wartewartewarte – Lois, das sind nicht meine Batman-Mnemonics! Dein Vorschlag benutzt genau die umgekehrten Befehle?! Bei mir setzt VC movdqa zum lesen und movntdq (ohne a, obwohl die Doku sagt, „Address p must be 16-byte aligned“) zum schreiben … was imho auch vollkommen sinnvoll ist – was man lädt, soll ja im Cache landen, und was man schreibt, soll so schnell wie möglich weg damit mehr Cache für zu ladendes bleibt. Die Version aus dem Link arbeitet bei mir durch die Bank 70 % langsamer; wenn ich nur movntdqa zum lesen einsetze sind es immernoch 5 %.Ich werde es mal in Verbindung mit Prefetching testen. noch langsamer, und das hier lässt vermuten, warum.
Code: Alles auswählen
#include <emmintrin.h>
void copyGranulated(
void * toDestination,
void const * toSource,
CByteSize minimalSizeToCopy
) {
CRIC_ASSERT(isAligned(toDestination));
CRIC_ASSERT(isAligned(toSource));
__m128i * const toEnd = (__m128i *)(((builtIn::CByte *)toDestination) + minimalSizeToCopy);
__m128i * toCurrentDestinationBlock = (__m128i *)toDestination;
__m128i const * toCurrentSourceBlock = (__m128i const *)toSource;
// Unroll this loop and use 8 (or 16) SSE registers for a few percent higher performance.
while((toCurrentDestinationBlock + 2) < toEnd) {
__m128i const cache[2] = {
::_mm_load_si128(toCurrentSourceBlock + 0),
::_mm_load_si128(toCurrentSourceBlock + 1)
};
::_mm_stream_si128(toCurrentDestinationBlock + 0, cache[0]);
::_mm_stream_si128(toCurrentDestinationBlock + 1, cache[1]);
toCurrentSourceBlock += 2;
toCurrentDestinationBlock += 2;
}
// Transform to a while loop or a switch statement if the loop above has been unrolled.
if(toCurrentDestinationBlock < toEnd)
::_mm_stream_si128(toCurrentDestinationBlock, ::_mm_load_si128(toCurrentSourceBlock));
// Make the non-temporal stores globally visible.
::_mm_sfence();
return;
}
Der Compiler macht außerdem lustige Dinge: Adressiert Quelle und Ziel durch vier verschiedene Register statt durch zwei; Speichert xmm0–xmm6 am Anfang der Funktion und stellt sie danach wieder her.
Nachtrag: Wartewartewarte – Lois, das sind nicht meine Batman-Mnemonics! Dein Vorschlag benutzt genau die umgekehrten Befehle?! Bei mir setzt VC movdqa zum lesen und movntdq (ohne a, obwohl die Doku sagt, „Address p must be 16-byte aligned“) zum schreiben … was imho auch vollkommen sinnvoll ist – was man lädt, soll ja im Cache landen, und was man schreibt, soll so schnell wie möglich weg damit mehr Cache für zu ladendes bleibt. Die Version aus dem Link arbeitet bei mir durch die Bank 70 % langsamer; wenn ich nur movntdqa zum lesen einsetze sind es immernoch 5 %.
-
- Establishment
- Beiträge: 324
- Registriert: 08.04.2003, 18:09
- Alter Benutzername: Enrico_
- Echter Name: Enrico
- Wohnort: San Diego
- Kontaktdaten:
Re: Anti-Jammer-Thread
Yay, ich kann mich wieder einloggen :)
Zum Glueck ist die Frage bei zu vielen falschen Logins nicht allzu schwer :lol:
Zum Glueck ist die Frage bei zu vielen falschen Logins nicht allzu schwer :lol:
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Anti-Jammer-Thread
Jaaa! Das heutige Flash-Update bringt Multimonitor-Support für den Fullscreen-Modus!
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Wir haben schon überlegt ob wir das Nivea dort nicht anheben wollen – Sozialdarwinismus quasi, indem rausfliegt, wer sich dreimal falsch einloggt (bzw. dem entsprechenden Raub-Bot zum Opfer fällt) und nicht demonstrativ den Momentverlust eines Doppelneutronensternsystems durch Gravitationswellen vorrechnen kann.Enrico_ hat geschrieben:Zum Glueck ist die Frage bei zu vielen falschen Logins nicht allzu schwer :lol:
Dann fiel uns wieder ein, dass wir ja Nachwuchsprobleme haben und das Forum zu professionell wirkt … und haben uns in der Folge darauf beschränkt, solche Filterkriterien auch weiterhin nur auf unsere persönlichen Freundeskreise anzuwenden.
Re: Anti-Jammer-Thread
Oder so. (Ein paar mal aktualisieren ;))Krishty hat geschrieben:Wir haben schon überlegt ob wir das Nivea dort nicht anheben wollen – Sozialdarwinismus quasi, indem rausfliegt, wer sich dreimal falsch einloggt (bzw. dem entsprechenden Raub-Bot zum Opfer fällt) und nicht demonstrativ den Momentverlust eines Doppelneutronensternsystems durch Gravitationswellen vorrechnen kann.Enrico_ hat geschrieben:Zum Glueck ist die Frage bei zu vielen falschen Logins nicht allzu schwer :lol:
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Anti-Jammer-Thread
Die Fragen sind nicht ohne Ueberlegung entstanden. Ziel war, dass sie entweder durch Google bzw. Wissen und gesunden Menschenverstand loesbar sein sollten. Bis heute haben es sogut wie keine Bots geschafft, das zu packen.
Nur so nebenbei (auch wenn es eher in den Jammer-Thread gehoert): letzte Woche hab ich die Frage nach der Berliner Mauer bekommen und geistesabwesend 1990 eingetippt. Glaubt mir, es ist deprimierend an seinen eigenen Anti-Bot-Fragen zu scheitern.
Nur so nebenbei (auch wenn es eher in den Jammer-Thread gehoert): letzte Woche hab ich die Frage nach der Berliner Mauer bekommen und geistesabwesend 1990 eingetippt. Glaubt mir, es ist deprimierend an seinen eigenen Anti-Bot-Fragen zu scheitern.
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Die hatte ich letzte Woche ebenfalls. Und ebenfalls 1990 eingetippt. Zum zweiten Mal.Aramis hat geschrieben:Letzte Woche hab ich die Frage nach der Berliner Mauer bekommen und geistesabwesend 1990 eingetippt.
Re: Anti-Jammer-Thread
Krishty hat geschrieben: Wir haben schon überlegt ob wir das Nivea dort nicht anheben wollen – Sozialdarwinismus quasi, indem rausfliegt, wer sich dreimal falsch einloggt (bzw. dem entsprechenden Raub-Bot zum Opfer fällt) und nicht demonstrativ den Momentverlust eines Doppelneutronensternsystems durch Gravitationswellen vorrechnen kann.
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Aus der Serie „Man muss nur lange genug nerven“:
http://forums.create.msdn.com/forums/t/73249.aspx
Es ist übrigens wirklich verblüffend, dass keins der SDK-Beispiele die Datentypen benutzt, die bei mir so abkacken. Sie hatten mal eine RWTexture1D im Tonemapping-Beispiel; haben sie aber rausgenommen, damit es endlich auch auf D3D10-Hardware läuft – nachdem D3D11-Hardware rauskam. Wenn mich meine ungerichtete Paranoia nicht trügt, könnte sie die verblüffend schlechte Leistung auf Karten eines bestimmten Herstellers motiviert haben. (Dieses spezielle Beispiel ist bei mir übrigens mit Compute Shader 0,1 % schneller als mit Pixel Shader; yeah.)
http://forums.create.msdn.com/forums/t/73249.aspx
Es ist übrigens wirklich verblüffend, dass keins der SDK-Beispiele die Datentypen benutzt, die bei mir so abkacken. Sie hatten mal eine RWTexture1D im Tonemapping-Beispiel; haben sie aber rausgenommen, damit es endlich auch auf D3D10-Hardware läuft – nachdem D3D11-Hardware rauskam. Wenn mich meine ungerichtete Paranoia nicht trügt, könnte sie die verblüffend schlechte Leistung auf Karten eines bestimmten Herstellers motiviert haben. (Dieses spezielle Beispiel ist bei mir übrigens mit Compute Shader 0,1 % schneller als mit Pixel Shader; yeah.)
Re: Anti-Jammer-Thread
Nächsten Montag gibts übrigens auf der GDC einen für dich wohl nicht ganz uninteressanten Vortrag:
Nachtrag: Ich lass das hier mal so stehen:
Das findet im ganztägigen Programming-Track „Advanced Visual Effects with DirectX 11“ statt (die Vortragenden sind hauptsächlich von Nvidia und AMD). Da Nvidia und Konsorten gerne Mal ihre Folien vorab online stellen (bzw. „gestellt werden“), würde ich mal die Augen offen halten. ;)http://schedule.gdconf.com/session/ hat geschrieben: 5:30-6:15pm
High Performance Post-Processing (Nathan Hoobler, NVIDIA)
This talk discusses common performance concerns for effects utilizing DirectCompute by walking through a sample post-processing application, applying non-obvious but important optimizations one by one and explaining how they relate to topics such as exposing parallelism, taking advantage of shared memory, and efficient data access patterns.
Nachtrag: Ich lass das hier mal so stehen:
Nachtrag: Klasse gemacht, eXile! Weil ich mich selbst zitieren wollte, erst einmal den Post hier kaputtgeschrieben. Schnell aus dem Google-Cache wiederhergestellt.This session will take a look at some of AMDs favorite techniques from the last year, including the use of DirectCompute to accelerate physics, an innovative new highly efficient solver for Diffusion DOF, and DirectCompute accelerated post-processing.
Zuletzt geändert von eXile am 27.03.2011, 15:21, insgesamt 3-mal geändert.
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Da könnte ich auch sprechen! Beste Optimierung: Benutzt D3D 10.1 und CS 4.1 … so einfach ist das!
Nein, obwohl mir Post-Processing langsam zum Hals raus kommt: Es klingt tatsächlich nicht schlecht. Wäre dir sehr verbunden, wenn du das eine oder andere Schätzchen verlinken könntest.
Was Physik mit DirectCompute angeht: Die benutzen schlicht und einfach keine Texturen dafür, sondern lineare Puffer. Achtfache Performance. Thema erledigt. Bei Postprocessing sicher genau so; tut Microsoft ja auch.
Nein, obwohl mir Post-Processing langsam zum Hals raus kommt: Es klingt tatsächlich nicht schlecht. Wäre dir sehr verbunden, wenn du das eine oder andere Schätzchen verlinken könntest.
Was Physik mit DirectCompute angeht: Die benutzen schlicht und einfach keine Texturen dafür, sondern lineare Puffer. Achtfache Performance. Thema erledigt. Bei Postprocessing sicher genau so; tut Microsoft ja auch.
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Gute Nachrichten für alle Kiddies, die noch nicht auf DirectX 10 umsteigen wollen!
http://www.heise.de/newsticker/meldung/ ... 95138.html
http://www.heise.de/newsticker/meldung/ ... 95138.html
Re: Anti-Jammer-Thread
Jay! Meine collision-sphere-tree-basierte Kollisionsabfrage funktioniert nun für rotierte, skalierte, bewegte wenn auch statische Modelle bzw. verschiedene Instanzen von Modellen auch bei 3rd-Person-Kamera. Die Zwerge rotieren und wenn einer einen anderen trifft, bleibt er stehen und macht erst weiter, wenn der andere Zwerg weg ist. Und bisher verhakt auch nichts, ich glaube sogar, das ist z.Z. nicht möglich. Außerdem ist die Performance fast perfekt, da Kugel-zu-Kugel-Kollisionsabfrage überhaupt kein Aufwand ist.
Der nächste Schritt ist dann die Kollisionsabfrage mit bone-animierten Modellen, das wird nochmal ne Herausforderung. Aber auch die Variante lässt sich durch ein paar Vorberechnungen äußerst performant umsetzen. Und danach kann ich endlich mit dem eigentlichen Spiel beginnen (na ja, besser gesagt mit alternativer BoundingBox-Kollision für quaderförmige Objekte wie Mauern, aber gut)!
Der nächste Schritt ist dann die Kollisionsabfrage mit bone-animierten Modellen, das wird nochmal ne Herausforderung. Aber auch die Variante lässt sich durch ein paar Vorberechnungen äußerst performant umsetzen. Und danach kann ich endlich mit dem eigentlichen Spiel beginnen (na ja, besser gesagt mit alternativer BoundingBox-Kollision für quaderförmige Objekte wie Mauern, aber gut)!
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
HLSLs nointerpolation ist nicht nur nützlich, sondern bringt bei kurzen Shadern mit vielen Parametern auch handfestes Leistungsplus. So muss das sein!
Re: Anti-Jammer-Thread
Meine Bitte, meine Steuerung für mehrere angeschlossene USB-Raketenwerfer auf der Bestellseite zu veröffentlichen, bzw. einen Link zur Homepage zu machen, wurde angenommen.
http://www.getdigital.de/products/USB_Raketenwerfer
:)
http://www.getdigital.de/products/USB_Raketenwerfer
:)
Re: Anti-Jammer-Thread
Zusätzlich bekomm ich von GetDigital nun noch nen 50%-Rabatt-Gutschein.
Und ich hab schon einiges an Netzwerkcode für mein MissileControl-Programm zusammen gerafft und hab ihn soweit auch verstanden :)
Problem ist nur noch die IP-Adressenfindung innerhalb des Netzwerkes...Ich werde es schaffen!
Und ich hab schon einiges an Netzwerkcode für mein MissileControl-Programm zusammen gerafft und hab ihn soweit auch verstanden :)
Problem ist nur noch die IP-Adressenfindung innerhalb des Netzwerkes...Ich werde es schaffen!
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Boah endlich! Geil.
Obwohl
Jetzt darf ich entweder auf GCC umsteigen oder bis 2012 warten, damit die guten Features in Visual C++ implementiert sind.
Und Concepts sind ja sowieso wieder rausgeflogen.
Toll.
Obwohl
Jetzt darf ich entweder auf GCC umsteigen oder bis 2012 warten, damit die guten Features in Visual C++ implementiert sind.
Und Concepts sind ja sowieso wieder rausgeflogen.
Toll.
Re: Anti-Jammer-Thread
Ich hab meinen Beitrag gerade durch Zufall wiedergesehen, und mittlerweile sind alle Vorträge von AMD online, und zwar hier. Beim Schnellen drübergucken war es jetzt nicht wirklich berauschend, aber für Chromanoid gibts wenigstens wieder ein paar Bokeh-Bilder. ;)eXile hat geschrieben:Nächsten Montag gibts übrigens auf der GDC einen für dich wohl nicht ganz uninteressanten Vortrag:
High Performance Post-Processing (Nathan Hoobler, NVIDIA)
(Ehrlich gesagt, hatte ich die Seite von AMD gar nicht mehr auf meinem Radar, weil die so lange unaktualisiert blieb. Ich habe extra nicht zur Nvidia-Seite gelinkt, weil die Präsentation dort nur als PDF ohne Kommentare vorliegt, die Powerpoint-Präsentation besitzt dahingegen Notizen.)
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Die bittere Wahrheit. Kopflos rumprobieren, weil man bei dem Compiler eh nicht logisch vorgehen kann.Efficient Compute Shader Programming.pps hat geschrieben:
- Try lots of different configurations
- Avoid hard-coding variables
- Use GPUPerfStudio to edit in-place
High-Definition Ambient Occlusion optimieren, indem man die High Definition wegnimmt. Genial.
- HDAO [High-Definition Ambient Occlusion] at full resolution is expensive
- Running at half resolution captures more occlusion – and is obviously much faster
Re: Anti-Jammer-Thread
Dir ist schon klar dass du das im Anti-Jammer Thread gepostet hast? ;)
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ich muss halt beim Thema bleiben!
Re: Anti-Jammer-Thread
Ich finds klasse, das ab Qt 4.6 Shader unterstützt werden.
Muss ich mir keinen Kopf darum machen, einfach nur Shader-Code schreiben, an QGLShader übergeben, kompilieren und linken.
So einfachte sollte es laut Doku funktionieren.. Ich werde sehen. Ich werde ebenfalls sehen, wie ich mit der ganzen Shader-Sache zurecht komme... vlt. bin ich dann auch so cool :)
Gruß
Muss ich mir keinen Kopf darum machen, einfach nur Shader-Code schreiben, an QGLShader übergeben, kompilieren und linken.
Code: Alles auswählen
QGLShader shader(QGLShader::Vertex);
shader.compileSourceCode(code);
QGLShaderProgram program(context);
program.addShader(shader);
program.link();
program.bind();
...
Gruß
- Krishty
- Establishment
- Beiträge: 8308
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Jetzt bin ich aber gespannt, ob sie mirnichtsdirnichts einen zusätzlichen Zentimeter aus der Hardware-Hose gelutscht haben oder ob sie tatsächlich mal am Compiler gedreht haben.http://www.heise.de/newsticker/meldung/Nachgelegt-Catalyst-Treiber-mit-OpenCL-Schnittstelle-1218277.html hat geschrieben:Zudem bietet AMD eine Vorschau auf den nächsten Catalyst-Treiber. Für Version 11.4 verspricht der Hersteller bei 3D-Spielen Performance-Zuwächse im zweistelligen Prozentbereich mit Grafikkarten der Serien Radeon HD 6800 und 6900.
Aber testen kann ich das ja eh erst in fünf Monaten (wenn ein GPU Shader Analyzer raus ist, der den 11.4er unterstützt) …