<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Support for C/C++0x atomic operations in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Support-for-C-C-0x-atomic-operations/m-p/877184#M3197</link>
    <description>&lt;P&gt;Does Intel have some plans to support "fine-grained" atomic operations in future x86 processors in the context of emerging C/C++0x standard and it's support for such operations?&lt;BR /&gt;&lt;BR /&gt;Particularly I mean atomic RMW operations (XADD, XCHG, CMPXCHG, ADD, AND etc) with fine-grained memory ordering parameters. For example:&lt;BR /&gt;&lt;BR /&gt;std::atomic_xchg(x, 1, std::memory_order_relaxed);&lt;BR /&gt;&lt;BR /&gt;or:&lt;BR /&gt;&lt;BR /&gt;std::atomic_fetch_sub(x, 1, std::memory_order_release);&lt;BR /&gt;&lt;BR /&gt;The main point is that programs relying on C/C++0x atomic API will be able to transparently benefit from those fine-grained hardware operations.&lt;BR /&gt;&lt;BR /&gt;Since load on x86 is always acquire, and store is always release, so I think it will be difficult to eliminate acquire/release fences, i.e. provide real relaxed operations. But at least store-load memory fence can be eliminated from atomic RMW operations. Is it possible/feasible?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 30 Sep 2008 05:08:27 GMT</pubDate>
    <dc:creator>Dmitry_Vyukov</dc:creator>
    <dc:date>2008-09-30T05:08:27Z</dc:date>
    <item>
      <title>Support for C/C++0x atomic operations</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Support-for-C-C-0x-atomic-operations/m-p/877184#M3197</link>
      <description>&lt;P&gt;Does Intel have some plans to support "fine-grained" atomic operations in future x86 processors in the context of emerging C/C++0x standard and it's support for such operations?&lt;BR /&gt;&lt;BR /&gt;Particularly I mean atomic RMW operations (XADD, XCHG, CMPXCHG, ADD, AND etc) with fine-grained memory ordering parameters. For example:&lt;BR /&gt;&lt;BR /&gt;std::atomic_xchg(x, 1, std::memory_order_relaxed);&lt;BR /&gt;&lt;BR /&gt;or:&lt;BR /&gt;&lt;BR /&gt;std::atomic_fetch_sub(x, 1, std::memory_order_release);&lt;BR /&gt;&lt;BR /&gt;The main point is that programs relying on C/C++0x atomic API will be able to transparently benefit from those fine-grained hardware operations.&lt;BR /&gt;&lt;BR /&gt;Since load on x86 is always acquire, and store is always release, so I think it will be difficult to eliminate acquire/release fences, i.e. provide real relaxed operations. But at least store-load memory fence can be eliminated from atomic RMW operations. Is it possible/feasible?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Sep 2008 05:08:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Support-for-C-C-0x-atomic-operations/m-p/877184#M3197</guid>
      <dc:creator>Dmitry_Vyukov</dc:creator>
      <dc:date>2008-09-30T05:08:27Z</dc:date>
    </item>
    <item>
      <title>Re: Support for C/C++0x atomic operations</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Support-for-C-C-0x-atomic-operations/m-p/877185#M3198</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/347331"&gt;Dmitriy Vyukov&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;P&gt;Does Intel have some plans to support "fine-grained" atomic operations in future x86 processors in the context of emerging C/C++0x standard and it's support for such operations?&lt;BR /&gt;&lt;BR /&gt;Particularly I mean atomic RMW operations (XADD, XCHG, CMPXCHG, ADD, AND etc) with fine-grained memory ordering parameters. For example:&lt;BR /&gt;&lt;BR /&gt;std::atomic_xchg(x, 1, std::memory_order_relaxed);&lt;BR /&gt;&lt;BR /&gt;or:&lt;BR /&gt;&lt;BR /&gt;std::atomic_fetch_sub(x, 1, std::memory_order_release);&lt;BR /&gt;&lt;BR /&gt;The main point is that programs relying on C/C++0x atomic API will be able to transparently benefit from those fine-grained hardware operations.&lt;BR /&gt;&lt;BR /&gt;Since load on x86 is always acquire, and store is always release, so I think it will be difficult to eliminate acquire/release fences, i.e. provide real relaxed operations. But at least store-load memory fence can be eliminated from atomic RMW operations. Is it possible/feasible?&lt;BR /&gt;&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;Dmitriy,&lt;/DIV&gt;
&lt;DIV&gt;Intel generally does not comment on future architectures but we have announced Intel AVX&lt;WWW.INTEL.COM&gt;&lt;/WWW.INTEL.COM&gt;. There is a good overview paper on the new instructions and capabilities.&lt;/DIV&gt;
&lt;DIV&gt;&lt;A href="http://software.intel.com/en-us/articles/intel-avx-new-frontiers-in-performance-improvements-and-energy-efficiency" target="_blank"&gt;http://software.intel.com/en-us/articles/intel-avx-new-frontiers-in-performance-improvements-and-energy-efficiency&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;
&lt;DIV&gt;Cheers,&lt;/DIV&gt;
&lt;DIV&gt;Aaron&lt;/DIV&gt;</description>
      <pubDate>Thu, 12 Nov 2009 23:04:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Support-for-C-C-0x-atomic-operations/m-p/877185#M3198</guid>
      <dc:creator>AaronTersteeg</dc:creator>
      <dc:date>2009-11-12T23:04:29Z</dc:date>
    </item>
    <item>
      <title>Re: Support for C/C++0x atomic operations</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Support-for-C-C-0x-atomic-operations/m-p/877186#M3199</link>
      <description>As far as I understand it's not quite what I was talking about.&lt;BR /&gt;</description>
      <pubDate>Thu, 12 Nov 2009 23:17:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Support-for-C-C-0x-atomic-operations/m-p/877186#M3199</guid>
      <dc:creator>Dmitry_Vyukov</dc:creator>
      <dc:date>2009-11-12T23:17:26Z</dc:date>
    </item>
  </channel>
</rss>

