[...] Dem hat der Autor, Zorgim, zunächst unter Rückfrage widersprochen. Ich habe ihm das kurz erläutert, bald sollte sich Feedback finden.
Zogrim, wie der Autor des Artikels sich korrekt schreibt, hat mittlerweile geantwortet und eine mir sehr schlüssige Erklärung gegeben. Wer des Englischen mächtig ist, mag vielleicht seine Antwort im Artikelforum bei PhysXinfo lesen:
New PhysX FluidMark 1.2: First Tests | PhysXInfo.com - PhysX News
Ich übersetze sie mal (leicht gekürzt) nach bestem Wissen und Gewissen:
>>
Zunächst einmal hat die "Multi-Core-PhysX"-Option weniger mit der Anzahl der Emitter zu tun -- sie ermöglicht lediglich Applikationsthreading und packt PhysX und Rendering in einzelne Threads -- daher gibt es einen derart grossen Gewinn sowohl für CPU- als auch GPU-Berechnungen gegenüber dem Single-Thread-Modus. In der Grafik haben sowohl sowohl die "ON" als auch die "OFF"-Seite dieselbe Anzahl Emitter.
[...]
Die "Anzahl der CPU-Kerne"-Option ist ein wenig kniffelig: Im PhysX-SDK [also nvidias Entwicklungsumgebung für PhysX -- das, was ich gestern Framework nannte; cesimbra] kann man zwar zehn Emitter auf einem CPU-Kern (oder einer GPU) laufen lassen, es ist aber nicht möglich, einen Emitter dazu zu bringen, zehn Kerne zu nutzen, und um alle Kerne auszulasten, werden weitere Emitter hinzugefügt.
Daher, um Gleichberechtigung herzustellen, wurden drei Emitter sowohl für CPU- als auch für GPU-Berechnungen genutzt, sowohl mit der Multi-Core-Option ON als auch OFF -- ein Emitter läuft auf der GPU zwar schneller als drei Emitter (bei gleicher Anzahl von 15.000 Partikeln), aber es wäre nicht fair, einen Emitter auf der CPU mit einem Emitter auf der GPU zu vergleichen, denn auch wenn Multithreading aktiviert ist, nutzt ein Emitter maximal zwei CPU-Kerne. [an dieser Stelle ist mir lediglich eine kleine Unklarheit geblieben -- nämlich ob ein Emitter auf der CPU maximal zwei Kerne nutzt oder maximal zwei Kerne auslastet; cesimbra]
<<
Ich hoffe, das hilft jedem, der da genauso irritiert war wie ich, etwas weiter -- auch wenn ich das zumindest für mich selbst sagen kann, wird das allerdings vermutlich nicht gerade für jeden der Fall sein, da müsste man dann doch wohl tiefer einsteigen.
Man kann aber meines Erachtens (wenn man Zogrims Aussagen folgt) festhalten, daß das Skalieren der GPUs beim Multithreading nicht damit zu tun hat, daß die CPU bei aktiviertem Multithreading der GPU in Sachen PhysX zusätzlich hilft (da hatte ich Marc gestern nicht zugestimmt, auch wenn es naheliegend schien), sondern wirklich mit dem Multithreading zu tun hat, daß also Rendering und PhysX in getrennte Threads gepackt werden -- aber eben unter der Prämisse, daß dort drei Emitter am Werke sind, was für die GPU nicht der Optimalfall ist.
Wünschenswert an der Stelle wäre m.E. daher vor allem auch noch ein Vergleichswert für die GPU ohne Multithreading und mit genau einem Emitter, aber gleicher Partikelanzahl gewesen -- dann wäre die Verständnisproblematik wohl zumindest so nicht aufgekommen. Solche Vergleiche werden wir aber sicher alsbald sehen.