<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Optimierungen für double&#x2F;float]]></title><description><![CDATA[<p>Hallo,</p>
<p>welches Format ist zu bevorzugen, wenn mir theoretisch einfache Genauigkeit reicht, ich jedoch auf effizienten Code hinaus will.</p>
<p>Stichworte: 4-Byte-Alignment im Speicher, Caching, 64bit-CPU etc</p>
<p>Im Prinzip geht es mir um die Zugriffs- und Berechnungsoptimierung auf Arrays zwischen 10 und einigen hundert MByte im Speicher (bzw doppelter Größe bei double).</p>
<p>Die Einsatz- und Entwicklungsumgebung ist hauptsächlich Linux, muss jedoch auch auf Win laufen. Ich hoffe mal, dass die Frage nicht unbedingt OS-abhängig ist.</p>
<p>Danke für eure Erfahrungen</p>
<p>C</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194719/optimierungen-für-double-float</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 18:35:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194719.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Oct 2007 09:00:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Wed, 10 Oct 2007 09:00:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>welches Format ist zu bevorzugen, wenn mir theoretisch einfache Genauigkeit reicht, ich jedoch auf effizienten Code hinaus will.</p>
<p>Stichworte: 4-Byte-Alignment im Speicher, Caching, 64bit-CPU etc</p>
<p>Im Prinzip geht es mir um die Zugriffs- und Berechnungsoptimierung auf Arrays zwischen 10 und einigen hundert MByte im Speicher (bzw doppelter Größe bei double).</p>
<p>Die Einsatz- und Entwicklungsumgebung ist hauptsächlich Linux, muss jedoch auch auf Win laufen. Ich hoffe mal, dass die Frage nicht unbedingt OS-abhängig ist.</p>
<p>Danke für eure Erfahrungen</p>
<p>C</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381828</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Wed, 10 Oct 2007 09:00:10 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Wed, 10 Oct 2007 09:04:56 GMT]]></title><description><![CDATA[<p>Bei so einer Größe nimmst du besser die einfache Genauigkeit! Wenn's auf einige hundert MB hinausläuft, wird afair sowieso ein Großteil der Pages auf die Festplatte gepackt und bei Bedarf wieder in deinen Programmspeicher geladen. Bei doppelt so großen Datenmengen muss doppelt so oft ge-paged werden, was dann wohl auf Geschwindigkeitsverlust hinausläuft; das etwas suboptimalere Alignment kannst du da meiner Meinung nach vernachlässigen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381835</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 10 Oct 2007 09:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Wed, 10 Oct 2007 09:13:40 GMT]]></title><description><![CDATA[<p>RAM ist kein Problem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Da wird idR nix geswappt, sonst würde ich mir auch keine Sorgen machen.</p>
<p>Ich ergänze mal meine Frage, inwiefern sich doubles lohnen würden, bei normalen Funktionsaufrufen, Bsp:</p>
<pre><code class="language-cpp">void function(double a, double b, double c, double d, double e, double f, double g, double h, double i, double j, double k);
</code></pre>
<p>Jetzt mal von Geschichten wie Referenzen etc abgesehen, würde es Geschwindigkeit bringen, hier nur mit floats zu arbeiten. Angenommen natürlich, function ist eine sehr kurze Methode, wird jedoch sehr häufig aufgerufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381843</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Wed, 10 Oct 2007 09:13:40 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Wed, 10 Oct 2007 09:41:51 GMT]]></title><description><![CDATA[<p>Wie wärs, wenn du es einfach mal ausprobierst? Auf der einen Plattform könnte float schneller verabeitet werden als double, auf einer anderen wäre es umgekehrt, auf einer dritten macht es womöglich keinen Unterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381869</guid><dc:creator><![CDATA[Gast98565]]></dc:creator><pubDate>Wed, 10 Oct 2007 09:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Wed, 10 Oct 2007 11:20:43 GMT]]></title><description><![CDATA[<p>Bau dir doch mal ein kleines Beispiel auf (Am besten templateisiert), dann kompile es einmal als float, einmal als double, und dann noch einmal mit SSE2 als float und double.</p>
<p>Meine Prognose:</p>
<p>ohne SSE2 float 20 ms<br />
ohne SSE2 double 100 ms<br />
mit SSE2 float 3 ms<br />
mit SSE2 double 2.5 ms</p>
<p>Kannst du aber nur durch ausprobieren rausfinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381953</guid><dc:creator><![CDATA[Gast25250]]></dc:creator><pubDate>Wed, 10 Oct 2007 11:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Fri, 12 Oct 2007 09:29:04 GMT]]></title><description><![CDATA[<p>Also ich habs mal überwiegend mit floats versucht. Ergebnis: 10% schneller (ca 20 zu ca 22min). Mein Fazit: lohnt nicht, im Vergleich zum erhöhten Speicherbedarf bei double (der Produktiv-Rechner wird wahrscheinlich schwächer sein, als meiner).</p>
<p>Die SSE2-Optimierungen sollten doch wohl -- sofern nutzbar -- automatisch aktiviert sein, lt. Compilerbeschreibung (GCC 4.1.2)??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383531</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Fri, 12 Oct 2007 09:29:04 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Fri, 12 Oct 2007 10:05:18 GMT]]></title><description><![CDATA[<p>crashterpiece schrieb:</p>
<blockquote>
<p>Also ich habs mal überwiegend mit floats versucht. Ergebnis: 10% <strong>schneller</strong> (ca 20 zu ca 22min). Mein Fazit: <strong>lohnt nicht</strong>, im Vergleich zum erhöhten Speicherbedarf bei double (der Produktiv-Rechner wird wahrscheinlich schwächer sein, als meiner).</p>
</blockquote>
<p>wtf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383567</guid><dc:creator><![CDATA[spatzvomdach]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Fri, 12 Oct 2007 10:22:47 GMT]]></title><description><![CDATA[<p>es lohnt sich nicht, weil der rechner, auf dem das tool laufen soll nicht dermassen viel RAM hat, so dass mehr geswappt wird (s.o.) und der vorteil wieder flöten geht.<br />
bei einer steigerung von vielleicht 20-30% und mehr hätte ich jedoch das swapping in kauf genommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383582</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Fri, 12 Oct 2007 10:45:10 GMT]]></title><description><![CDATA[<p>Aber floats brauchen doch nur halb so viel Speicher wie doubles..? Oder hab ich da was falsch verstanden? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383612</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 12 Oct 2007 10:45:10 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Fri, 12 Oct 2007 11:01:44 GMT]]></title><description><![CDATA[<p>öhh, dann hab ichs wohl missverständlich geschrieben</p>
<p>also floats sind kleiner und schneller -- <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383636</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Fri, 12 Oct 2007 11:01:44 GMT</pubDate></item><item><title><![CDATA[Reply to Optimierungen für double&#x2F;float on Fri, 12 Oct 2007 14:16:42 GMT]]></title><description><![CDATA[<p>Wenn man mit der float Genauigkeit auskommt sollte man floats nehmen, so Einfach ist das IMO <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Wenn man natürlich die Genauigkeit von double braucht ... dann muss man eben doubles nehmen - dann stellt sich die Frage aber nichtmehr.</p>
<p>Wie schon geschrieben wurde sind floats kleiner, und gerade wenn man mit grossen Datenmengen rechnet kann das einen grossen Unterschied machen - nicht nur wegen Swapping sondern auch wegen der Caches. Natürlich ist es nie ein Fehler Benchmarks zu machen, denn es könnte ja sein dass wider alle Erwartungen irgendwas mit doubles schneller ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1383826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1383826</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 12 Oct 2007 14:16:42 GMT</pubDate></item></channel></rss>