<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780593</guid>
        <pubDate>Fri, 12 Oct 2018 04:20:24 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780593</link>
        <description><![CDATA[MBo: А покажите критический по времени кусок кода - может быть, что-то можно будет более конкретно посоветовать]]></description>
        <author>MBo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780509</guid>
        <pubDate>Thu, 11 Oct 2018 08:27:49 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780509</link>
        <description><![CDATA[BenGan: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Нет, через FSQRT. Можно поставить точку останова в нужном месте кода и Ctrl-Alt-C покажет асм<br>
</div></div><br>
Спасибо&#33;]]></description>
        <author>BenGan</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780501</guid>
        <pubDate>Thu, 11 Oct 2018 07:11:47 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780501</link>
        <description><![CDATA[MBo: &gt;Нет, к распараллеливанию я пока не готов<br>
Толковый компилятор сам распараллелит, например, такой цикл<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">for (i=0; i &#60; 1024; i++)</div><div class="code_line">&nbsp;&nbsp; B[i] = sqrt(A[i])</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
     <br>
<br>
&gt;мне кажется, BCB6 корень считает через ряд<br>
Нет, через FSQRT. Можно поставить точку останова в нужном месте кода и Ctrl-Alt-C покажет асм]]></description>
        <author>MBo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780497</guid>
        <pubDate>Thu, 11 Oct 2018 06:37:39 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780497</link>
        <description><![CDATA[BenGan: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Однако, как я понял, требуется распараллеливание вычислений.</div></div><br>
Нет, к распараллеливанию я пока не готов, более банальные вопросы не решены.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Корень одной командой считался и на FPU x87, причём с лучшей точностью...</div></div><br>
Как я понял, по результатам обсуждения, пока достаточно будет посмотреть на критичные фрагменты кода на ассемблере, что-то мне кажется, BCB6 корень считает через ряд.]]></description>
        <author>BenGan</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780494</guid>
        <pubDate>Thu, 11 Oct 2018 06:20:14 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780494</link>
        <description><![CDATA[MBo: Корень одной командой считался и на FPU x87, причём с лучшей точностью, чем в SSE (хотя, возможно, это относится только к RSQRT).<br>
В SSE можно посчитать 4 корня одновременно.<br>
<br>
64-разрядная компиляция использует SSE арифметику, а не FPU. Однако, как я понял, требуется распараллеливание вычислений.<br>
Умеет ли компилятор Билдера это <strong class='tag-b'>сам </strong>делать - не знаю. Кажется, там можно использовать CLANG.<br>
Но как оно по сравнению с компиляторами, умеющими делать продвинутую автоматическю оптимизация - не скажу.]]></description>
        <author>MBo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780489</guid>
        <pubDate>Thu, 11 Oct 2018 05:47:53 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780489</link>
        <description><![CDATA[BenGan: Да меня не точность привлекает, а корень одной командой (уж не знаю, сколько он тактов).<br>
Считается молекулярная механика, вычисление расстояния между взаимодействующими атомами - большая доля трудозатрат процессора (а там как раз корень).<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Под 128-битностью вы, небось, подразумеваете 4 раза по 32 бита&#33;?</div></div><br>
Я почему-то уверен, что не обязательно загружать все 128 бит, можно и обычные double скормить FPU.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>А тогда сто́ит ли оно того, чтобы искусственно переводить на эти рельсы имеющийся код?</div></div><br>
Да, похоже, одним кликом не получится.  <br>
<br>
А современные версии C++ Builder от Embarcadero Technologies не имеют настроек компиляции с использованием расширенного (по сравнению с X86) набора команд?]]></description>
        <author>BenGan</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780467</guid>
        <pubDate>Wed, 10 Oct 2018 17:08:28 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780467</link>
        <description><![CDATA[MBo: Если речь идёт о о четверной точности, которая описана, например, в стандарте IEEE 754<br>
<a class='tag-url' href='https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format' target='_blank'>https://en.wikipedia.org/wiki/Quadruple-pre...ng-point_format</a><br>
то аппаратной поддержки такой арифметики нет (кроме IBM POWER9 и древних мэйнфреймов)<br>
<br>
Некоторые компиляторы операции с такими числами поддерживают, но софт-эмуляция, конечно, намного медленнее<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Ряд компиляторов, в том числе GCC (с версии 4.0, 2010[5]), IBM XL (10.1[5]), Intel, позволяет использовать числа точности &quot;Quadruple&quot; в программах на языках C/C++ и Fortran (например как тип __float128[6], long double, REAL*16), реализуя вычисления над ними программно, на 1-2 порядка более медленно, чем с точностью, поддерживаемой аппаратно</div></div><br>
<br>
А SSE, как Славян уже сказал, это совсем другое - параллельная обработка нескольких float или double.]]></description>
        <author>MBo</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780456</guid>
        <pubDate>Wed, 10 Oct 2018 15:39:06 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780456</link>
        <description><![CDATA[amk: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=413639&view=findpost&p=3780448'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>BenGan &#064; <time class="tag-quote__quoted-time" datetime="2018-10-10T13:08:23+00:00">10.10.18, 13:08</time></span><div class='quote '>современные процессоры давно поддерживают 128 битную арифметику с плавающей точкой </div></div> Даже распространённые 64-битные плавающие (двойная точность) зачастую имеют избыточную точность, а тут сразу четверная. Эти числа предназначены, в основном, для решения плохо обусловленных задач. Повышение точности в этом случае позволяет немного отодвинуть наступление численной неустойчивости. Для обычных задач хватает двойной, а часто даже одинарной точности.]]></description>
        <author>amk</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780451</guid>
        <pubDate>Wed, 10 Oct 2018 14:26:40 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780451</link>
        <description><![CDATA[Славян: Под 128-битностью вы, небось, подразумеваете 4 раза по 32 бита&#33;? А тогда сто́ит ли оно того, чтобы искусственно переводить на эти рельсы имеющийся код? В самом среднем случае - крайне сомнительно. :yes-sad:]]></description>
        <author>Славян</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780448</guid>
        <pubDate>Wed, 10 Oct 2018 13:08:23 +0000</pubDate>
        <title>Использование 128 бит FPU на C#</title>
        <link>https://forum.sources.ru/index.php?showtopic=413639&amp;view=findpost&amp;p=3780448</link>
        <description><![CDATA[BenGan: <span class="tag-font" data-value="Arial" style="font-family:Arial">Жил спокойно, работал в старом BCB6, потом узнал, что современные процессоры давно поддерживают 128 битную арифметику с плавающей точкой и даже корни умеют брать (например, MULSS, DIVSS, SQRTSS из набора команд SSE Intel).<br>
<br>
Какие есть наиболее короткие пути перекомпилировать готовый код под Windows API, чтобы арифметика выполнялась на 128 битном FPU?</span>]]></description>
        <author>BenGan</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	