<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
  <title>AMD Developer Blogs - Inside Dev Central</title> 
  <description></description> 
  <link>http://forums.amd.com/devblog/index.cfm?forumid=8</link>
  <language>en-US</language>
  <generator>FuseTalk Hosting Executive Plan 3.2 Build 80405</generator>

	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>AMD Developer Inside Track - Taking Advantage of Multi-Core</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=117588</link> 
		<pubDate>2009-08-17T14:17:16 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=117588#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p>I was fortunate to have the opportunity to host a panel discussion on <a href="http://developers.sun.com/events/communityone/2009/west/pdfs/S305066_B2.pdf">application development and multi-core at CommunityOne West</a> this year. It was a fantastic opportunity to meet and work with software experts who are in the trenches and every day working on parallel programming solutions. The basic question here was: "How do I get started in taking advantage of multi-core processors?" To answer this question, everybody involved brought unique experiences and perspectives to the table. In the above link, you can see a view of AMD's roadmap - from our perspective, you should take away that from the desktop to the server, multi-core will be king.&nbsp;&nbsp;</p>
<p>Check out the <a href="http://developer.amd.com/documentation/videos/InsideTrack/Pages/default.aspx"><span style="color: #009966;">AMD Developer Inside Track video</span></a>&nbsp;for a snapshot of three of our partners from this panel and myself answering the question of how to start taking advantage of multi-core processors.</p>
<p>After these events I often get asked the same how-to-get-started question, but with more detail. Someone will say, "Okay, but let me tell you about this..." - so we talk it over. The questions I ask usually include at least some of the following:</p>
<ul>
<li>Who do you work for?</li>
<li>What field are you in?</li>
<li>What are you trying to do?</li>
<li>Where is your code spending the most time now?</li>
<li>What are your primary bottlenecks (CPU, I/O, Memory)?</li>
<li>Do you need to scale up, or scale out?</li>
<li>Are you trying to reduce response time?</li>
<li>Are you trying to increase throughput?</li>
<li>Where and how big is your data?</li>
<li>What are your data dependencies?</li>
<li>Are you using a managed runtime environment?</li>
<li>What tools are you using?</li>
<li>Are you open to using other tools?</li>
<li>Will you be able to rewrite code?</li>
<li>Who have you talked to in researching your problem?</li>
<li>Do you have an n-tier infrastructure?</li>
<li>What hardware are you using right now?</li>
<li>What are your hardware upgrade plans?</li>
</ul>
<p>These questions help decompose the problem and also provide a high-level view.&nbsp; I find these discussions often touch on a mix of abstract principles combined with some specific practical advice. Below, I have some basic getting-started suggestions which I've mapped to the above questions, along with my perspectives on how they bear on the problem. For simplicity's sake, I've decided to map a question once to a single suggestion, though it may really have multiple applications.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="213" valign="top">
<p>Suggestion</p>
</td>
<td width="213" valign="top">
<p>Relevant Questions</p>
</td>
<td width="213" valign="top">
<p>Perspectives</p>
</td>
</tr>
<tr>
<td width="213" valign="top">
<p>Identify your problem domain.</p>
</td>
<td width="213" valign="top">
<p>Who do you work for?</p>
<p>What field are you in?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</td>
<td width="213" valign="top">
<p>Telecommunications, financial services, manufacturing, scientific programming & HPC, web services, database, ERP/CRM, BI: for these and many other segments there is typically an ecosystem of software tools for building products and solutions, in many cases with significant experience in parallelism.</p>
</td>
</tr>
<tr>
<td width="213" valign="top">
<p>Don't be afraid to ask for advice -- talk to your community of experts.</p>
</td>
<td width="213" valign="top">
<p>Who have you talked to in researching your problem?</p>
</td>
<td width="213" valign="top">
<p>Your community of experts can be found at conferences, in online forums, and at your tools vendors.</p>
</td>
</tr>
<tr>
<td width="213" valign="top">
<p>Clearly define your performance problem and the associated metrics.</p>
</td>
<td width="213" valign="top">
<p>What are you trying to do?</p>
<p>Do you need to scale up, or scale out?</p>
<p>Are you trying to reduce response time?</p>
<p>Are you trying to increase throughput?</p>
</td>
<td width="213" valign="top">
<p>This is critical in explaining the problem to yourself and others. This should be an easy to understand and simple statement that includes a baseline.</p>
</td>
</tr>
<tr>
<td width="213" valign="top">
<p>Analyze and identify primary bottlenecks.</p>
</td>
<td width="213" valign="top">
<p>Where is your code spending the most time now?</p>
<p>What are your primary bottlenecks (CPU, I/O, Memory)?</p>
<p>Where and how big is your data?</p>
<p>What are your data dependencies?</p>
<p>Do you have an n-tier infrastructure?</p>
<p>&nbsp;</p>
</td>
<td width="213" valign="top">
<p>If you don't know the answers to these questions then you need to do some analysis.&nbsp; Diagram your infrastructure.&nbsp; Use performance analysis tools found in your OS and from your tools vendors.&nbsp; There are usually a few places in your code where most of the time is spent. <br /><br />Like any optimization effort, you'll analyze first, re-measure, and re-analyze throughout your parallelization effort.</p>
</td>
</tr>
<tr>
<td width="213" valign="top">
<p>Review alternate algorithms.</p>
</td>
<td width="213" valign="top">
<p>Will you be able to rewrite code?</p>
<p>&nbsp;</p>
</td>
<td width="213" valign="top">
<p>After some initial analysis you should take a high-level look at your overall algorithm. It may not be the best choice. It also may place constraints on how easily you can parallelize.</p>
</td>
</tr>
<tr>
<td width="213" valign="top">
<p>Review current tools and look for acceptable alternates.</p>
</td>
<td width="213" valign="top">
<p>Are you using a managed runtime environment? What tools are you using?</p>
<p>Are you open to using other tools?</p>
<p>Will you be able to rewrite code?</p>
<p>&nbsp;</p>
</td>
<td width="213" valign="top">
<p>This is often closely related to the problem domain and associated business requirements.&nbsp; Maybe you can take a new Fortran compiler that supports parallelization with OpenMP, or maybe you need to focus on a new math library.</p>
</td>
</tr>
<tr>
<td width="213" valign="top">
<p>Review current hardware and evaluate new hardware.</p>
</td>
<td width="213" valign="top">
<p>What hardware are you using right now?</p>
<p>What are your hardware upgrade plans?</p>
<p>&nbsp;</p>
</td>
<td width="213" valign="top">
<p>Along with looking at the architectural and tools aspects of your software, think about how much you could improve your basic situation with new hardware, be it one of more RAM, more or faster CPUs, or bigger or faster disks.</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;In conclusion, I want to emphasize that after carefully stating your problem and doing some initial analysis, that you try new implementations with caution.&nbsp; Measure with appropriate precision, and make sure your measurements are repeatable.&nbsp; Only then can you be sure that your work is worthwhile. Finally, take a look at the AMD Developer Central for <a href="http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel">parallelization articles</a>, our <a href="http://developer.amd.com/cpu/CodeAnalyst/Pages/default.aspx">CPU analysis tool CodeAnalyst</a>, and our <a href="http://developer.amd.com/cpu/Libraries/Pages/default.aspx">performance libraries</a>.&nbsp;</p>
<p>Be sure to check out the first <a href="http://developer.amd.com/documentation/videos/InsideTrack/Pages/default.aspx">AMD Developer Inside Track video</a> featuring three of AMD's software tools partners giving their perspectives on taking advantage of multi-cores.</p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif;">-<span style="font-size: x-small;"><span style="font-size: small;">Tracy</span> <span style="font-size: small;">Carver, Software Developer and Evangelist, AMD</span></span></span></p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Introducing the AMD Developer Inside Track - a New Monthly Video Series</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=117586</link> 
		<pubDate>2009-08-17T13:58:45 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=117586#comments</comments>
		<trackback:ping>2</trackback:ping>
		<description><![CDATA[ <p>I'm a member of AMD's software division (and yes, you read it correctly - I said software).&nbsp; It turns out that a lot of people are surprised to hear that AMD has a software division.&nbsp; I can't count the number of times that we've been at tradeshows showing off the <a href="http://developer.amd.com/CPU/CODEANALYST/Pages/default.aspx">AMD CodeAnalyst Performance Analyzer</a> or our <a href="http://developer.amd.com/CPU/LIBRARIES/Pages/default.aspx">Performance Libraries</a> and people have wondered why the heck AMD was at a software developer conference.&nbsp; The answer is simple; you can't run the hardware without software.&nbsp; We have a significant investment in software within AMD and with our software partners.&nbsp; I've vowed to do my part to get you behind-the-scenes, one-on-one time with AMD software developers and our software partners' to get the scoop on what AMD is doing that would matter to software developers.&nbsp;</p>
<p>The first installment of the <a href="http://developer.amd.com/documentation/videos/InsideTrack/Pages/default.aspx">AMD Developer Inside Track</a> is available now.&nbsp; This one features a panel of our software developer tools partners from <a href="http://www.allinea.com/">Allinea</a>, <a href="http://www.pervasivesoftware.com/Pages/default.aspx">Pervasive</a> and <a href="http://www.roguewave.com/">Rogue Wave</a> talking about taking advantage of multi-core processing.&nbsp; I was able to pull them aside after the <a href="http://developers.sun.com/events/communityone/2009/west/sessions.jsp">CommunityOne West 2009 Multicore Panel</a> sponsored by AMD.&nbsp; Check out the <a href="http://developer.amd.com/documentation/videos/InsideTrack/Pages/default.aspx">video</a>, <a href="http://forums.amd.com/devblog/blogpost.cfm?threadid=117588&catid=208">Tracy Carver's blog</a>, and the <a href="http://developers.sun.com/events/communityone/2009/west/pdfs/S305066_B2.pdf">slides</a> that were presented.&nbsp;</p>
<p>Next month we will be talking with Michael Houston about <a href="../devforum/categories.cfm?catid=390">OpenCL</a>.&nbsp; And we have a multitude of topics planned for the rest of the year.&nbsp; If you have a topic in mind, let us know by making a comment on this blog post, or on our <a href="../devforum/categories.cfm?catid=390">forums</a>.&nbsp;</p>
<p>&nbsp;</p>
<p>-Sharon Troia, Sr. Developer Relations Engineer</p>
<p>&nbsp;</p>
<p>ps.&nbsp; If you are&nbsp;experience any&nbsp;viewing problems, please let me know.&nbsp; We will be adding some different formats, lower resolution versions to &nbsp;download, as well as the transcripts&nbsp;over the next two weeks.</p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Windows&#xae; 7 and AMD  -  Technical Collaboration</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=117048</link> 
		<pubDate>2009-08-05T20:05:01 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=117048#comments</comments>
		<trackback:ping>1</trackback:ping>
		<description><![CDATA[ <p>AMD is a close collaborator with Microsoft.&nbsp; We work together to help ensure the operating system runs smoothly and efficiently on AMD platforms.&nbsp; Here are some of the key technology collaborations for Windows&reg; 7:</p>
<ul>
<li><strong>Power Management:</strong> AMD worked closely with Microsoft to support a new AMD product-specific power management driver in Windows 7. This in-box driver supports older processors as well as the latest generation AMD Opteron<sup>TM</sup> processor and AMD Phenom<sup>TM</sup> II processor. In addition to the power management driver, AMD collaborated with Microsoft to fine tune default power policy parameters that control power state transitions to help optimize for power and performance. And since this driver is "in-box", there's no need to download.</li>
<li><strong>Virtualization:</strong> AMD provided code to Microsoft and worked with the Hypervisor teams to help ensure that Hyper-V R2 and Windows Virtual PC in Windows 7 utilize Rapid Virtualization Indexing (aka nested paging tables) for improved performance of VM guests. All of the third-generation AMD Opteron processors, AMD Phenom processors, and AMD Phenom II processors support Rapid Virtualization Indexing. In addition, most of AMD's shipping processors (other than AMD Sempron<sup>TM</sup> processors) include AMD-V<sup>TM</sup> technology and thus support Windows XP Mode for Windows 7.</li>
<li><strong>Stability & Performance:</strong> Current and upcoming reference platforms containing multi-core processors from AMD were loaned to Microsoft's labs to vet out potential incompatibilities with Windows 7 and Windows Server 2008 R2.</li>
<li><strong>Graphics:</strong> AMD has been working hard to support DirectX&reg; 11, so there are plans to make native DirectX 11 hardware from AMD in its ATI Radeon<sup>TM</sup> GPUs available when Windows 7 is released.</li>
<li><strong>GPU Compute:</strong> DirectX 11 Compute Shader (CS) is a new API in Windows 7 that helps enable rich applications through the use of compute on the GPU (General Purpose GPU or GPGPU). Rich experiences such as drag-and-drop media transcoding, physics, and AI are a few areas that DirectX 11 CS can help enable.</li>
</ul>
<p>&nbsp;</p>
<p>For more information on AMD and Microsoft technical collaboration visit the <a href="http://developer.amd.com/zones/windows/Pages/default.aspx">Windows Zone</a> on <a href="http://developer.amd.com/">developer.amd.com</a>.&nbsp; For more information on what AMD is doing overall with Microsoft for end users, check out the <a href="http://sites.amd.com/us/microsoft/Pages/default.aspx">Microsoft & AMD</a> corporate site, or see the AMD video on Microsoft's <a href="http://readyset7.com/">Ready. Set. 7</a> site.</p>
<p>&nbsp;</p>
<p>-Robin Maffeo, Microsoft Alliance Manager</p>]]></description>
	</item>
	
	<item>
		<dc:creator>Anton Chernoff</dc:creator>
		<title>Performance Profiling Without the Overhead</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=116487</link> 
		<pubDate>2009-07-24T11:04:19 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=116487#comments</comments>
		<trackback:ping>1</trackback:ping>
		<description><![CDATA[ <p><!--[if gte mso 9]><xml> Normal   0         false   false   false                             MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><xml> </xml><![endif]-->
<style>

</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]--></p>
<p>Performance Profiling Without the Overhead</p>
<p>Here at AMD, we know that in order to improve program performance, you have to be able to measure it. <a href="http://developer.amd.com/cpu/LWP">AMD's Lightweight Profiling feature (LWP)</a> is designed to make performance measurement even easier and with negligible overhead. In this post, I'll give you an overview of LWP and tell you why we think it's an exciting next step in the area of performance tuning.</p>
<p>First, a little history. Late in 2007, AMD announced Lightweight Profiling as a proposed extension to the AMD64 architecture that would allow an application to gather performance statistics about itself with low overhead. We posted the preliminary specification and asked for feedback from the developer community. Much to our delight, many of you responded with comments, criticisms, and suggestions on the proposal. We've read all of your feedback, and last week we posted the current version of the LWP specification. The announcement and the link to the spec are <a href="http://developer.amd.com/cpu/LWP">here</a>. Thanks to all of you who helped us out.</p>
<p><strong>What came before...</strong></p>
<p>It's important to be able to measure the details of a program's performance in order to find ways to speed it up. Until now, there have been just two ways to do this. The first is via <em>instrumentation</em>, i.e., adding code to the program to watch the clock, or the cycle counter, or just to count the number of times an instruction or loop is executed. Instrumentation can be added by the programmer or by a compiler. Unfortunately, it seriously perturbs the application, and the instrumented code usually doesn't have the same characteristics as the original code, especially when dealing with the data and instruction caches. Also, instrumentation can't observe the hardware caches, so it can't gather data about cache behavior.</p>
<p>The second traditional method of monitoring performance is to use the hardware performance counters. These count hardware events and generate an interrupt after a programmed number of events have happened. The counters can report on events that are too hard to instrument (like counting each x86 instruction) or are not visible to software (like cache misses). These counters are used by the <a href="http://developer.amd.com/cpu/CodeAnalyst">AMD CodeAnalyst Performance Analyzer</a> and provide deep insight into application and system performance. However, each time a data sample is gathered, the processor must take an interrupt to a kernel-mode driver, and that takes hundreds or thousands of cycles. The driver, by simply executing, changes the contents of the data cache and the instruction cache and may perturb the application's performance. The counters can only be configured, started, and stopped from kernel mode, so an application must call a driver or the operating system to control them. Finally, some systems do not context-switch the performance counters when changing threads or processes, and on those systems, performance monitoring can only be done globally by a single user at a time.</p>
<p><strong>Introducing LWP</strong></p>
<p>After reading about current technology, you might think that an ideal performance monitor should:</p>
<ul type="disc">
<li>Operate entirely in user mode </li>
<li>Cause little or no perturbation of the application </li>
<li>Be controlled separately for each thread </li>
<li>Have low overhead to allow for higher sampling rates </li>
</ul>
<p>And that describes LWP!</p>
<p>Lightweight Profiling adds a set of user-controlled counters to the AMD64 architecture. They can monitor multiple events simultaneously. An application thread starts profiling by providing the address of an LWP control block (LWPCB) as the operand to the new <strong>LLWPCB</strong> instruction. The contents of the LWPCB specify which events to count and how often to count them. It also points to a ring buffer in the application's memory into which the hardware will store event records. That's it.</p>
<p>Once started, LWP counts the specified events. When an event counter underflows, it stores an event record at the head of the ring buffer and resets the counter. (If requested, LWP randomizes the bottom bits of the new counter value to prevent "beating" against constant length loops.) LWP stores the record without interrupting the flow of the program, so the only perturbation to the program's performance is writing the record (usually affecting only a single data cache line) and a few cycles to perform the write. The record contains the event type, the address of the instruction that caused the underflow, and other information about the event. All event types share one ring buffer and can be sorted out by the event type field in the record.</p>
<p>Of course, eventually the buffer will fill up. What then? Well, a program has two options for emptying the ring buffer. First, it can simply poll the buffer and remove event records from the tail of the ring. When software rewrites the tail pointer, the LWP hardware knows it can reuse the newly emptied region of the ring buffer. Since the buffer is in user memory, the program can even share the memory with another process, and that second process can be responsible for draining the buffer. Second, the application can specify that it wants LWP to generate an interrupt when the ring buffer is filled past a certain threshold. For instance, it can configure a buffer to hold 10,000 event records and tell LWP to interrupt whenever there are more than 9,000 records in the buffer. The interrupt does indeed perturb the program, but it does so 1/9000th as often as the traditional performance counters would. Better still, since the buffer is in user memory, the application can catch the interrupt and do whatever it wants with the data. It can store it to disk for later analysis, or it can process it immediately and even try to fix performance problems as they are happening.</p>
<p>In addition, LWP is a per-thread feature. Each thread on the system can be monitoring different events at different rates without interference. If a thread is not using LWP, there is no impact on its performance even if other threads have LWP active.</p>
<p><strong>Some LWP Details</strong></p>
<p>The LWP events are a small subset of the events available in the traditional performance counters. They include Instructions Retired, Branches Retired, and DCache Misses. The Branches Retired event can be filtered by whether the branch is direct or indirect, conditional or unconditional, or other criteria. It captures the target address of the branch, a useful value when looking at indirect branches. The DCache miss event can be filtered by cache level to capture only "expensive" cache misses.</p>
<p>One exciting feature of LWP is the ability to insert events into the ring buffer under program control. There are two new instructions to do this:</p>
<ul type="disc">
<li><strong>LWPINS</strong> inserts a record into the      ring buffer containing data taken from the arguments to the instruction. A      program can use LWPINS to insert a marker to indicate an important event,      such as loading or unloading a shared library, that influences the way      addresses should be interpreted in subsequent event records. </li>
<li><strong>LWPVAL</strong> uses an event counter and      decrements the counter each time it is executed, much the way the hardware      event counters work. When the counter underflows, it inserts a record into      the ring buffer containing data from its arguments. A program uses LWPVAL      to implement a technique called value profiling. For instance, it can      profile the divisor of a commonly executed DIV instruction and if the data      show that the divisor is frequently the same number, it can rewrite the      instruction to test for that value and execute an optimized code sequence.      Similarly, it can profile the target of a hot indirect branch and generate      better code if one way of the branch is dominant. </li>
</ul>
<p><strong>Who will use LWP?</strong></p>
<p>LWP can be used in many different application environments. These include:</p>
<ul type="disc">
<li><strong>Managed Runtime Environment:</strong> Managed Runtimes (MRTEs) are      programming environments such as Java and the Microsoft&reg; .NET Framework.      These environments have the ability to generate AMD x86 or x64 code for      routines coded in a high level managed language (such as Java or C#), and      they can do that on the fly as a program is running. The MRTE can enable      LWP and periodically look for performance problems. If (when!) it finds      them, it can generate better code for the hot spots and improve the      program's overall performance. LWP is lightweight enough that it can run      continuously. </li>
<li><strong>Dynamic Optimizer:</strong> A Dynamic Optimizer is a      program that monitors an application and attempts to improve its      performance by modifying it as it runs. In this case, the target application      is compiled to native code from a traditional language like C or C++. The      Dynamic Optimizer can gather performance data without affecting the flow      of control in the application. </li>
<li><strong>Compiler Feedback:</strong> Most modern compilers have an      option to build an instrumented program which the developer runs to gather      information on the program's performance. Unfortunately, the added      instrumentation (and the fact that optimization levels are often cranked      down in a feedback compilation) perturbs the program so much that what's      being measured is substantially different from the "real"      program. With LWP, the compiler can gather statistics on the program      execution without changes, and it can insert LWPVAL instructions to      profile interesting areas without adding a large block of instrumentation      code and without clobbering any registers. If the application runs without      turning on LWP, the LWPVAL instructions act as NOPs and only take a few      cycles. </li>
</ul>
<p><strong>Conclusion</strong></p>
<p>We're very excited about Lightweight Profiling, and I hope this note has piqued your interest. You can read the full specification at the <a href="http://developer.amd.com/cpu/LWP">LWP page on Developer Central</a>. There's also an email link you can use to send us your comments and suggestions.</p>
<p><strong>P.S.</strong></p>
<p>My colleagues suggested that I make this more "bloggy" by adding references to "traditional performance values" and "herbal performance enhancers". This postscript is dedicated to them.</p>
<p><strong><em>Anton Chernoff is a Senior Fellow and architect at AMD.</em></strong><em> His postings are his own opinions and may not represent AMD's positions, strategies or opinions. </em></p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Just released:  Sun Studio 12 Update 1, featuring optimizations for AMD Opterontm processors</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=116158</link> 
		<pubDate>2009-07-17T12:55:38 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=116158#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p><em>Featuring guest blogger from Sun Microsystems, Darryl Gove.</em></p>
<p>The release of a new version of <a href="http://developers.sun.com/sunstudio/features/index.jsp">Sun Studio</a> is always an exciting moment for Sun Studio enthusiasts. Sun Studio 12 came out pretty much two years ago, and a lot has changed in that time.</p>
<p>One particular trend has been that multicore processors have become mainstream. One way of illustrating that is to look at the number of threads per chip for all the submitted <a href="http://www.spec.org/cpu2006/results/cint2006.html">SPEC&reg; CPU2006 integer speed results</a>*. The following chart shows the cumulative number of submitted results since the benchmark came out in 2006 until the middle of June 2009 broken down by the number of threads that the chip could support.</p>
<p><img src="http://developer.amd.com/blog_assets/ss12u1fig1.jpg" alt="Cumulative number of CPU2006 Integer Speed results submitted" width="668" height="470" /></p>
<p>&nbsp;</p>
<p>Two years ago, when Sun Studio 12 came out, chips that could support two threads were starting to become common. Now we're looking at that being a minimal thread count, and we're starting to see the ramp up of threads that can support more than 4 threads - the latest AMD processors support six threads per chip. In tandem with the growth in thread count, we're seeing much more interest in developing applications that can use this core count. Sun is fortunate that with Solaris and Sun Studio, we have a very comprehensive, and long standing, investment in multiprocessor technology:. from <a href="http://www.sun.com/solutions/virtualization/index.jsp">virtualisation</a>, through <a href="http://www.sun.com/bigadmin/content/zones/">Zones</a>, to scalability to <a href="http://www.sun.com/servers/coolthreads/t5440/">huge core counts</a>.</p>
<p>Sun Studio has always been on the leading edge of developing parallel applications. There are two ways of leveraging multiple cores, either through libraries provided with the compiler or through the parallisation of your application. For those people using the <a href="http://developers.sun.com/sunstudio/overview/topics/perflib_index.html">Performance Library</a>, this is now optimised to take advantage of the latest AMD Quad-core and Six-core processors.</p>
<p>The easiest way of producing parallel code is using automatic parallelisation. Sun was the first company to submit <a href="http://www.spec.org/cpu2000/results/res2003q2/cpu2000-20030326-02001.html">automatically parallelised results for SPEC&reg; CPU2000</a>. Automatic parallelisation is a great technology. It takes some of the work of making parallel codes away from the developer, and places it firmly into the category of "just another compiler flag".</p>
<p>However, the compiler can't do this for all codes, which is why Sun was also one of the first companies to support the <a href="http://www.openmp.org/mp-documents/spec30.pdf">OpenMP 3.0 specification</a>.</p>
<p>The OpenMP 3.0 specification is a very important step in making parallel programming easier. The 2.5 specification that was supported by Sun Studio 12 allows developers to identify loops that can be performed in parallel, and different sections of code that can be run simultaneously. The big improvement in the 3.0 specification is the support for <a href="http://wikis.sun.com/display/openmp/Using+the+Tasking+Feature">Tasks</a>. A task is a unit of work that one thread can request another thread to do. The developer defines the tasks in the source code, but the executed tasks and their order is dynamically determined at runtime. This massively increases the range of applications that can be parallelised using OpenMP.</p>
<p>Of course, writing parallel applications becomes much harder without the tools to support this. Sun Studio 12 Update 1 includes these tools. The <a href="http://developers.sun.com/sunstudio/overview/topics/debug_index.html">Debugger</a> for diagnosing bugs in parallel applications, the <a href="http://developers.sun.com/sunstudio/overview/topics/analyzer_index.html">Performance Analyzer</a> for determining the activity of all the threads in an application, and the <a href="http://developers.sun.com/sunstudio/downloads/ssx/tha/tha_using.html">Thread Analyzer</a> for identifying data races in parallel applications. The Performance Analyzer has been enhanced to support hardware counters in the latest AMD processors. The hardware performance counters are an optimal way of determining exactly what the processor is doing during the run of your application.</p>
<p>Performance is often one of the motivating factors for any compiler upgrade. In a compiler suite performance comes from two sources: enabling the developer to identify opportunities to improve performance, and the ability of the compiler to produce good code for the processor. The performance analyzer is able to profile all kinds of parallel applications including those parallelised with OpenMP directives as well as <a href="http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/">distributed MPI applications</a>. This enables you to quickly determine where, at a source code level, the application is spending its time, and to drill down into that source to understand the performance at the level of hardware events.</p>
<p><img src="http://developer.amd.com/blog_assets/ss12u1fig2.jpg" alt="Sun Studio screenshot" width="666" height="425" /></p>
<p>The goal for the Sun Studio compiler has always been to produce code that runs as fast as possible on all SPARC and x86 processors. Sun has worked closely with AMD to ensure that the compiler is aware of the best practices for producing code for the latest AMD processors. Sun Studio 12 Update 1 includes this support and continues the long track record of delivering <a href="http://www.sun.com/servers/x64/x4600/benchmarks.jsp#4">superior performance on AMD processors</a>.</p>
<p>As well as providing support for all processors, Sun Studio is also supported on a number of platforms: Solaris, OpenSolaris, and <a href="http://developers.sun.com/sunstudio/overview/topics/linux_index.html">Linux (for x86)</a>. Perhaps most importantly Sun Studio 12 Update 1 is <a href="http://developers.sun.com/sunstudio/downloads/index.jsp">free of charge to download and use</a>.</p>
<p>* SPEC and the benchmark names SPECfp and SPECint are registered trademarks of the Standard Performance Evaluation Corporation.&nbsp; Benchmark results stated above reflect results posted on <a href="http://www.spec.org/">www.spec.org</a> as of 15 June 2009.</p>
<p><em>Darryl Gove is a Senior Staff Engineer in the compiler team at Sun Microsystems. He works on the optimisation and tuning of applications and benchmarks. He is the author of the books "</em><a href="http://www.sun.com/books/catalog/solaris_app_programming.xml"><em>Solaris Application Programming</em></a><em>" and "</em><a href="http://my.safaribooksonline.com/0595352510"><em>The Developers Edge</em></a>,<em>"&nbsp;and maintains a blog at </em><a href="http://blogs.sun.com/d/"><em>http://blogs.sun.com/d/</em></a><em>. His postings are his own opinions and may not represent AMD's positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.</em></p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>The scoop on the x86 Open64 Compiler Suite</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=116028</link> 
		<pubDate>2009-07-14T16:30:25 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=116028#comments</comments>
		<trackback:ping>3</trackback:ping>
		<description><![CDATA[ <p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: verdana,geneva;">You may have seen the recent </span><a href="http://blogs.amd.com/nigeldessau/2009/06/22/sweet-suite/"><span style="font-size: small; font-family: verdana,geneva;">blog post</span></a><span style="font-size: small; font-family: verdana,geneva;"> from our CMO Nigel Dessau about the release of the x86 Open64 Compiler Suite. Nigel makes some great points about why AMD feels this open source project is important, so I won&rsquo;t go into that here.<span style="mso-spacerun: yes;">&nbsp; </span>Instead, I&rsquo;ll provide an overview of </span><a href="http://developer.amd.com/cpu/open64/Pages/default.aspx"><span style="font-size: small; color: #0000ff; font-family: verdana,geneva;">the latest release</span></a><span style="font-family: verdana,geneva;"><span style="font-size: small;"> and what the features can mean for your development work. </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: verdana,geneva;">&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: verdana,geneva;"><span style="font-size: small;">Like other compilers, Open64 optimizes applications aggressively in many dimensions, but what is different is that Open64 employs innovative techniques that stem from an understanding of the underlying hardware architecture, such as laying out data structures in space and cache efficient manners and deploying aggressive forms of loop-nest optimizations to promote locality. The biggest area this helps is with multi-core scalability, a measure of throughput performance of running multiple applications simultaneously on multiple cores, where a memory sub-system is often stressed.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="mso-bidi-font-family: Calibri;"><span style="font-size: small; font-family: verdana,geneva;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="mso-bidi-font-family: Calibri;">While the Open64 compiler suite was created to optimize software development for all x86-based architectures, it utilizes many features that take particular advantage of AMD&rsquo;s technology. One such example is enabling the use of 2MB huge pages for programs built with O</span>pen64 to help reduce TLB misses. Another important feature is enhanced code generation and instruction scheduling to take advantage of core pipeline hardware features.<span style="mso-spacerun: yes;">&nbsp; </span>Also, software data prefetching is better tuned to work with the hardware prefetcher and DRAM prefetcher to effectively hide memory latencies. This latest release also offers preview features of OpenMP and automatic parallelization to map program parallelism to multiple cores.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: verdana,geneva;">&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: verdana,geneva;">Here&rsquo;s the full list of new features in x86 Open64 4.2.2 that AMD added (also detailed in the </span><a href="http://developer.amd.com/cpu/open64/assets/ReleaseNotes.txt"><span style="font-size: small; font-family: verdana,geneva;">release notes</span></a><span style="font-family: verdana,geneva;"><span style="font-size: small;">):</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: verdana,geneva;">&nbsp;</span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l1 level1 lfo2;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Support for 2 MB huge pages.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l1 level1 lfo2;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Improved loop fusion and loop unrolling.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l1 level1 lfo2;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Improved head/tail duplication, if-merging, scalar replacement and constant folding optimizations.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Improved interprocedural alias analysis.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Improved partial inlining and inlining of virtual functions.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>More aggressive re-layout optimization for structure members.</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Improved instruction selection and instruction scheduling.</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in; mso-add-space: auto; mso-list: l0 level1 lfo1;"><span style="font-family: verdana,geneva;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">&middot;<span style="font: 7pt "Times New Roman";">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span>Improved tuning of library functions.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="mso-bidi-font-family: Calibri;"><span style="font-size: small; font-family: verdana,geneva;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: verdana,geneva;"><span style="font-size: small;">What this compiler suite really enables is highly optimized performance when running multiple applications at the same time, which is pretty much the norm for real-world workloads.<span style="mso-spacerun: yes;">&nbsp; </span>In the spirit of open source projects, we&rsquo;d like your feedback on how to improve this compiler suite.<span style="mso-spacerun: yes;">&nbsp; </span>If you would like to suggest features for future releases, leave us a comment.<span style="mso-spacerun: yes;">&nbsp; </span>While we can&rsquo;t promise that the features will be added, we certainly take your feedback under serious consideration.</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: verdana,geneva;">&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: verdana,geneva;">&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: verdana,geneva;"><span style="font-size: small;">Roy Ju</span></span></p>
<p><span style="font-size: 11pt; line-height: 115%; font-family: "Calibri","sans-serif"; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><span style="font-size: small; font-family: verdana,geneva;">AMD Fellow</span></span></p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>&quot;Shanghai&quot; Zone is now &quot;Istanbul&quot; Zone</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=114106</link> 
		<pubDate>2009-06-01T12:13:01 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=114106#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p>Looking for our "Shanghai" Zone?&nbsp; All the content and resources you expected to find are still there, but we've added some new information about AMD's follow-up to the Quad-Core AMD Opteron<sup>TM</sup> processor (codenamed "Barcelona", and "Shanghai") and have renamed the content section to "Istanbul" Zone.&nbsp; The new Six-Core AMD Opteron processors (codenamed "Istanbul") retain all the features of the "Barcelona" and "Shanghai" processors and add further advancements in the technologies for even better performance.&nbsp; Find out what's new with this six core processor in the <a href="http://developer.amd.com/zones/istanbul/Pages/default.aspx">"Istanbul" Zone</a>.</p>
<p>We'd appreciate hearing what you think about the new "Istanbul" processors, so leave us a comment!</p>]]></description>
	</item>
	
	<item>
		<dc:creator>Dave Christie</dc:creator>
		<title>Striking a Balance</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=112934</link> 
		<pubDate>2009-05-06T09:07:26 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=112934#comments</comments>
		<trackback:ping>4</trackback:ping>
		<description><![CDATA[ <p>This week, AMD is making a couple of very important announcements for developers: support of Intel's Advanced Vector Extensions (AVX) instruction set in future AMD processors, and the adaptation to the AVX framework of AMD's previous SSE5 instruction set proposal.&nbsp; The latter step has resulted in three new extensions: XOP (for eXtended Operations), CVT16 (half-precision floating point converts), and FMA4 (four-operand Fused Multiply/Add). In this posting I'll give an overview of the capabilities that these extensions provide, and also some insight into why we're taking this step.</p>
<p>First, the why. When we <a href="http://www.amd.com/us-en/Corporate/VirtualPressRoom/0,,51_104_543_15008~119091,00.html">proposed the SSE5 extensions</a> back in mid-2007, it brought some important innovations to the SIMD side of the x86 architecture:</p>
<ul type="disc">
<li>a non-destructive three-operand capability, and a four-operand capability to support some very powerful new operations;</li>
<li>a set of powerful permute and conditional move instructions for data movement, plus Fused Multiply/Add (FMA) instructions for high-performance floating point;</li>
<li>a variety of other new operations to address various holes in the SSE instruction set: shift/rotate, integer compares, integer multiply/accumulate, and half-precision floating point support.</li>
</ul>
<p>In April of 2008, Intel published its <a href="http://en.wikipedia.org/wiki/Advanced_Vector_Extensions">AVX</a>/FMA proposal, which incorporated several of SSE5's innovations - in particular the three- and four-operand capabilities, the Fused Multiply/Add instructions, and some of the permute instructions - except in a somewhat different form. This proposal also added some new capabilities with a new instruction format: doubling the width of SIMD FP operations, applying the non-destructive three-operand capability to most legacy SSE instructions, and greatly expanding the potential opcode space for future extensions.</p>
<p>With this duplication of functionality between SSE5 and AVX/FMA, and AVX's additional features, we felt the right thing to do was to support AVX. In our minds, a more unified instruction set is clearly what's best for developers and the x86 software industry. With our acceptance of AVX, a key aspect of this instruction set unification is the stability of the specification. Since we don't control the definition of AVX, all we can say for sure is that we expect our initial products to be compatible with version 5 of the specification (the most recent one, as of this writing, published in January of 2009), except for the FMA instructions, which we expect will be compatible with version 3 (published in August of 2008).</p>
<p>Why the FMA difference?&nbsp; This was not something we did lightly.&nbsp; In December of 2008, Intel made significant changes to the FMA definition, which we found we could not accommodate without unacceptable risk to our product schedules.&nbsp; Yet we did not want to deprive customers of the significant performance benefits of FMA. So we decided to stick with the earlier definition, renaming it FMA4 (for four-operand FMA - Intel's newer definition uses what we believe to be a less capable three-operand, destructive-destination format).&nbsp; It will have a different CPUID feature flag from Intel's FMA extension.&nbsp; At some future point, we will likely adopt Intel's newer FMA definition as well, coexisting with FMA4.&nbsp; But as you might imagine, we may wait until we're sure the specification is stable.</p>
<p>The fact remains that AVX does not incorporate all of SSE5's features.&nbsp; Since SSE5 was based on months of discussions with ISVs on what sort of capabilities they felt were needed, and had been positively reviewed by the industry when we first put out the specification, we decided to follow through with development of these additional features.&nbsp; To do so most effectively, we redefined them in the AVX framework, resulting in the XOP extension.</p>
<p><strong>So, </strong><a href="http://support.amd.com/us/Processor_TechDocs/43479.pdf"><strong>what's in XOP</strong></a><strong>?&nbsp; </strong></p>
<p>Well, quite a lot, really.&nbsp; First of all, the instruction formatting was changed to leverage the capabilities that the AVX VEX prefix brings, using a new VEX-like three-byte prefix sequence called (interestingly enough) the XOP prefix.&nbsp; This provides three- and four-operand non-destructive destination encoding, an expansive new opcode space, and extension of SIMD floating point operations to 256 bits.&nbsp; The SSE5 operations that are retained by the XOP extension are:</p>
<ul>
<li><strong>Horizontal integer add/subtract:</strong> Signed or unsigned add, or signed subtract, of adjacent byte, word, or dword elements in the source vector to word, dword or qword elements of the destination vector. 128-bit.</li>
<li><strong>Integer multiply/accumulate: </strong>Multiplies elements of two input vectors, adding the results to a third input vector. 128-bit.</li>
<li><strong>Shift/rotate with per-element counts: </strong>These use a vector of shift counts, allowing each element of the source vector to be shifted or rotated by a different amount. There is also a rotate instruction with an immediate-byte single count applied to all elements. 128-bit.</li>
<li><strong>Integer compare:</strong> Signed and unsigned comparison of byte, word, dword and qword elements, with predicate (mask) generation as in the various SSE compare instructions. The particular comparison to perform is specified in an immediate byte. 128-bit.</li>
<li><strong>Byte permute: </strong>A powerful operation which copies bytes from two 16-byte input vectors to a 16-byte destination vector, optionally performing a selected transformation on each, under the control of a third input vector. 128-bit.</li>
<li><strong>Bit-wise conditional move: </strong>Selects each bit of the destination vector from either of two input vectors, per a third input vector. 128- and 256-bit.</li>
<li><strong>Fraction extract:</strong> Extract the mantissa from floating point operands. Scalar and 128- or 256-bit vector, single and double precision.</li>
<li><strong>Half-precision convert:</strong> These convert between half-precision and single-precision formats while loading or storing a four- or eight-element vector. They provide dynamic control of rounding and denormalized operand handling.&nbsp; These particular instructions form a separate extension called CVT16, with a distinct CPUID feature flag.</li>
</ul>
<p>Along with the FMA4 instructions, these support a wide variety of numeric-intensive, multimedia, and cryptographic applications, and allow some new cases of automatic vectorization by compilers.&nbsp; Speaking of compilers, plans are afoot to support these in intrinsic form in various compilers, and they may be used automatically in code generation in some cases.</p>
<p>A version of the AMD64 SimNow! simulator with support for these extensions is planned for availability in very short order.</p>
<p>I hope I've given you a good taste of these new features. For all the details on the XOP and FMA4 extensions, you can find the specification <a href="http://support.amd.com/us/Processor_TechDocs/43479.pdf">here</a>. And, I encourage you to read the <a href="http://blogs.amd.com/nigeldessau/2009/05/06/truth-is-stranger-than-fiction/">blog of our CMO</a>, <a href="http://twitter.com/nigeldessau">Nigel Dessau</a>, for an executive perspective on driving innovation into the x86 instruction set. We believe we've struck the right balance between innovation and standardization. Feel free to comment or ask questions - we're always happy to hear from you. As you can see below, we've already heard from ten of our technology partners on the subject.</p>
<p><strong><em>Dave Christie is a Fellow and senior architect at AMD.</em></strong><em> His postings are his own opinions and may not represent AMD's positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.</em></p>
<p align="center"><strong>Partner Support Quotes</strong></p>
<p><a href="http://www.absoft.com/"><strong>Absoft</strong></a><strong></strong></p>
<p>"The addition of AVX support by AMD is a great move as it enables superior performance potential across AMD's x86 family of processors," said Wood Lotz, Absoft CEO. "AMD's use of AVX can also simplify development of high performance compilers and tools for companies like Absoft, and enable customers across a wide variety of industries to build faster applications."</p>
<p><a href="http://acumem.com/"><strong>Acumem</strong></a><strong></strong></p>
<p>"Acumem fully supports AMD's adoption and enhancement of the AVX instructions and will follow this standard as it becomes available in the market. As an ISV for performance tools we clearly see potential for performance improvements with these new additions" said Mats Nilsson, VP Software Engineering at Acumem.</p>
<p><a href="http://www.axceleon.com/"><strong>Axceleon</strong></a><strong></strong></p>
<p>"Axceleon applauds AMDs efforts to support both specifications, AVX and SSE5,&nbsp; in their XOP specification proposal. The further enhancements in FMA4 which accelerate floating point algorithms are very important to Axceleon's HPC customers and will be welcomed across the board" said Mike Duffy, CEO of Axceleon.</p>
<p><a href="http://www.bibblelabs.com/"><strong>Bibble Labs</strong></a><strong></strong></p>
<p>"We at Bibble Labs are constantly looking for performance improvements, and as such we are investigating AVX because of the possible performance advantage it might bring. We also appreciate that AMD is taking an active role to ensure the instruction sets converge and not create separate, conflicting instruction sets," said Jeff Stephens, Vice President of Product Development, Bibble Labs.</p>
<p><a href="http://www.cakewalk.com/"><strong>Cakewalk</strong></a><strong></strong></p>
<p>"We commend AMD for taking &nbsp;an active role in open standards, by unifying the x86 instruction set and merging SSE5 into the AVX specification. This can help improve compatibility and simplify the work for developers implementing this. We look forward to investigating AVX for potential advantages it may bring &nbsp;to our real-time applications and plug-ins," said Noel Borthwick, Chief Technology Officer, Cakewalk.</p>
<p><a href="http://www.nero.com/"><strong>Nero</strong></a><strong></strong></p>
<p>"We are pleased that AMD has decided to adopt the AVX instruction set extension instead of offering a variant," said Simone Hoefer, General Manager, Technology at Nero AG. "This will help reduce implementation complexity and multiple code-paths. We are confident that the SIMD (SSE/SSE2) optimizations already implemented will scale nicely to 256-bit/AVX, allowing us to truly embrace this new development."</p>
<p><a href="http://www.smithmicro.com/"><strong>Smith Micro Software</strong></a></p>
<p>"Having to choose acceleration solutions that work well on both AMD and Intel CPU platforms, Smith Micro welcomes convergence of the x86 instruction set. AMD supporting AVX is desirable from Smith Micro's point of view," said Uli Klumpp, director of engineering, Smith Micro Software, Inc. "The AVX instruction set extensions are looking promising for further optimizing our computationally most demanding software, DCC and data compression products such as Poser and StuffIt."</p>
<p><a href="http://www.sonic.com/"><strong>Sonic Solutions</strong></a><strong></strong></p>
<p>"AMD's adoption of AVX will help Sonic unify some of its engineering efforts and reduce development costs," said Jim Roth, Chief Technical Officer, Sonic Solutions. "We welcome this initiative and the proposed enhancements to the x86 processor architecture, which we will leverage to increase the responsiveness and performance of our digital media applications."</p>
<p><a href="http://www.sonycreativesoftware.com/"><strong>Sony Creative Software</strong></a></p>
<p>"We are pleased that AMD has decided to adopt the AVX instruction set extension instead of offering a variant," said John Freeborg, Vice President of Engineering for Sony Creative Software. "We also appreciate that AMD is taking an active role to ensure these converge and do not create separate, conflicting instruction sets."</p>]]></description>
	</item>
	
	<item>
		<dc:creator>Velu Jayaprakash</dc:creator>
		<title>Looking for Information on Overclocking?</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=111517</link> 
		<pubDate>2009-04-06T01:12:37 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=111517#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p>Here inside AMD Developer Central, we continuously work to improve your experience on our site.&nbsp; As part of these efforts, we periodically check the search logs to learn what our users are interested in and to ensure that we have useful content around those topics.&nbsp; One search term that seems to come up often is "overclocking."&nbsp;</p>
<p>Overclocking is the action of running your computer components (like CPU, GPU) at a higher speed than specified (and designed) by the manufacturers. Some reasons why users choose to overclock are to save money and increase performance. However, running the system at a higher speed increases power consumption, which leads to more heat, noise, and potential stability issues.&nbsp;</p>
<p>In a professional setting, overclocking can be risky.&nbsp; (That's why we issue warnings, like the one below.)&nbsp; A minor error could seriously affect system performance and delay project schedules.&nbsp; But, if you are a hobbyist / tweaker / gamer willing to take the risk and want to extract every last drop from the CPU/GPU, then overclocking is probably a topic you are very interested in. To achieve overclocking on AMD systems, we recommend <a title="Looking for Information on Overclocking?" href="http://www.amd.com/us-en/0,,3715_15337_15354_15359,00.html" target="_blank">AMD OverDrive<sup>TM</sup></a> , a state-of-the-art system management tool that includes overclocking capabilities.&nbsp;</p>
<p>Patrick Moorhead, AMD's VP of Advanced Marketing, has also written several blogs on this topic:</p>
<p><a href="http://blogs.amd.com/patmoorhead/tag/overclock/">http://blogs.amd.com/patmoorhead/tag/overclock/</a>&nbsp;</p>
<p>Also watch this,</p>
<p>The Proving Grounds on Youtube in HD: <a href="http://links.amd.com/PROVINGGROUNDS">http://links.amd.com/PROVINGGROUNDS</a></p>
<p>The Proving Grounds on Youtube in Standard Definition: <a href="http://links.amd.com/SDPROVINGGROUNDS">http://links.amd.com/SDPROVINGGROUNDS</a></p>
<p>We hope this information helps. So which pill would you take: the red or the blue?&nbsp; Do you still intend to overclock your system and, if so, is it your work system or your home system?&nbsp;</p>
<p><strong>***WARNING***</strong> AMD and ATI processors are intended to be operated only within their associated specifications and factory settings. Operating your AMD or ATI processor outside of specification or in excess of factory settings including, but not limited to, overclocking may damage your processor and/or lead to other problems including, but not limited to, damage to your system components (including your motherboard and components thereon (e.g. memory)), system instabilities (e.g. data loss and corrupted images), shortened processor, system component and/or system life and in extreme cases, total system failure. AMD does not provide support or service for issues or damages related to use of an AMD or ATI processor outside of processor specifications or in excess of factory settings. You also may not receive support or service from your system manufacturer.<br /><strong>DAMAGES CAUSED BY USE OF YOUR AMD OR ATI PROCESSOR OUTSIDE OF SPECIFICATION OR IN EXCESS OF FACTORY SETTINGS ARE NOT COVERED UNDER YOUR AMD PRODUCT WARRANTY AND MAY NOT BE COVERED BY YOUR SYSTEM MANUFACTURER'S WARRANTY. </strong></p>]]></description>
	</item>
	
	<item>
		<dc:creator>Velu Jayaprakash</dc:creator>
		<title>Sun Tech Days, Hyderabad  -  18-20 February, 2009</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=110739</link> 
		<pubDate>2009-03-20T07:11:03 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=110739#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p>It was an awesome event for us, at the AMD booth as well as at our technical session. It was a great experience for us to meet developers who are keen to know about AMD's efforts within the software community. We appreciate the support from those of you who attended AMD's technical session, particularly when you had multiple options.</p>
<p>We hope you now know &nbsp;</p>
<ul class="unIndentedList">
<li>Why AMD cares about Java</li>
<li>What contributions we've made to the Java community</li>
<li>Some useful tips for improving the performance of your Java application</li>
<li>How AMD works with many software partners to optimize their applications</li>
</ul>
<p><img style="border:1px solid black;" src="http://developer.amd.com/SiteCollectionImages/JK_blog_image1.jpg" border="0" alt="" /></p>
<p>As promised during my talk, here are the links to the <a href="http://framewave.sourceforge.net/">Framewave</a> and <a href="http://sseplus.sourceforge.net/">SSEPlus</a> open source library projects.&nbsp; Check them out, and contribute your own enhancements to the libraries or let us know what enhancements you'd like to see.</p>
<p>If you missed our session, here are some useful resources</p>
<ul class="unIndentedList">
<li>AMD <a href="http://developer.amd.com/zones/java/Pages/default.aspx">Java Zone</a> </li>
<li><a href="http://developer.amd.com/documentation/videos/pages/SoftwareOptimizationVideoSeries.aspx">AMD Family 10h Software Optimization Guide</a></li>
<li><a href="http://developer.amd.com/cpu/CodeAnalyst/Pages/default.aspx">Performance analysis tools</a></li>
<li><a href="http://developer.amd.com/cpu/libraries/Pages/default.aspx">AMD Libraries (ACML, String library) and AMD-optimized partner libraries</a></li>
</ul>
<p><img style="border:1px solid black;" src="http://developer.amd.com/SiteCollectionImages/JK_blog_image2.jpg" border="0" alt="" /><br /><img style="border:1px solid black;" src="http://developer.amd.com/SiteCollectionImages/JK_blog_image3.jpg" border="0" alt="" /></p>
<p>We hope our recommendations for coding best practices were useful. We also hope that you have upgraded to JDK 1.6 to get the latest enhancements we've contributed.</p>
<p>We sincerely look forward to meeting you all again next year (and to the spicy hyderabadi biryani!!).</p>
<p>Were you there?&nbsp; Drop us a comment to let us know!</p>
<p>-JK</p>]]></description>
	</item>
	
	<item>
		<dc:creator>Tracy Carver Carver</dc:creator>
		<title>SANS/MITRE Top 25 Most Dangerous Programming Errors  -  Helping Establish Guidelines for Secure and Robust Software</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=107776</link> 
		<pubDate>2009-01-29T11:37:33 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=107776#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p>&nbsp;</p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">The SANS Institute (an organization where the name derives from SysAdmin, Audit, Networking, and Security) has published the <a href="http://www.sans.org/top25errors/">2009 CWE/SANS Top 25 Most Dangerous Programming Errors</a>.&nbsp; </span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">The Common Weakness Enumeration (CWE) list at <a href="http://cwe.mitre.org/">http://cwe.mitre.org/</a> is a community-created living dictionary of software weaknesses -- that is, *<strong>types</strong>* of weaknesses. This dictionary and Top 25 list involved experts from the computer industry, academia, the SANS Institute, the non-profit MITRE Corporation, the NSA, and the Department of Homeland Security. The goal of their initiative is to establish standards for assessment and verification of security vulnerabilities in software and the security tools that mitigate those weaknesses.&nbsp; Simply put, they just want to make computer security measurable.&nbsp; </span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">Currently the CWE lists 755 total weaknesses (note a few are deprecated duplicates). They leveraged previous work from the deep CVE (Common Vulnerabilities and Exposures) list at <a href="http://cve.mitre.org/cve/index.html">http://cve.mitre.org/cve/index.html</a> , which is a large dictionary of specific publicly known vulnerabilities (these generally look like "Buffer overflow in Bar 5.0 in Foo OS 3"). The CVE lists over 3000 confirmed specific vulnerabilities and tens of thousands more candidate vulnerabilities.&nbsp; So, the CWE lists types of vulnerabilities, and you could say these are abstractions of specific entries from the CVE (as well as a variety of other sources).</span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">So, bubbling to the top of the CWE is their Top 25 Most Dangerous Programming Errors. These are noteworthy errors that can lead to hacked systems, data theft, and system inoperability. Importantly, security exploits rooted to these errors can be easy to code.&nbsp; Each error is in one of three categories, and these examples will be familiar to some:</span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">1. Insecure Interaction Between Components.&nbsp; Examples are <a href="http://cwe.mitre.org/top25/#CWE-89"><strong>Failure to Preserve SQL Query Structure (aka 'SQL Injection')</strong></a><strong> and </strong><a href="http://cwe.mitre.org/top25/#CWE-319"><strong>Cleartext Transmission of Sensitive Information</strong></a><strong>.</strong></span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">2. Category: Risky Resource Management. Examples are <a href="http://cwe.mitre.org/top25/#CWE-94"><strong>Failure to Control Generation of Code (aka 'Code Injection')</strong></a><strong> </strong>and <a href="http://cwe.mitre.org/top25/#CWE-119"><strong>Failure to Constrain Operations within the Bounds of a Memory Buffer</strong></a><strong>.</strong></span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">3. Category: Porous Defenses. Examples are <a href="http://cwe.mitre.org/top25/#CWE-259"><strong>Hard-Coded Password</strong></a> and <a href="http://cwe.mitre.org/top25/#CWE-602"><strong>Client-Side Enforcement of Server-Side Security</strong></a><strong>.</strong></span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">The SANS Institute believes this Top 25 list will enable buyers (for example state and US government) to buy safer software, where vendors will need to certify by checking for these errors.&nbsp; Universities can also teach secure coding by a set standard, and software developers and their employers will have greater assurance regarding security vulnerabilities in their software projects.&nbsp; This gets to the root of cyber-security problems at the source, in software development.</span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">What should you take away from this list? Here are some higher level takeaways and implications:</span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">1. If you develop software, educate yourself on these vulnerabilities and the programming techniques to help mitigate them.&nbsp; Developers should make a reasonable effort to design security in from the beginning of their projects. A large number of programmers today work on web serving applications, like e-commerce, which requires identity management, secure transactions, and secure record-keeping.&nbsp; For consumer confidence, security&rsquo;s clearly going to be a significant concern -- more so than performance or scalability.&nbsp; And remember that secure programming skills are a desired requirement in many job postings.</span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">2. If you don&rsquo;t develop software directly, educate yourself at least at a high level on these vulnerabilities anyway.&nbsp; You don&rsquo;t need to be paranoid, but some realistic awareness is healthy.&nbsp; Think about how you manage your confidential data on your computers, whether the data is personal or professional.&nbsp; A good way to get started here is to take a look at the SANS Top-20 Security Risks at <a href="http://www.sans.org/top20/">http://www.sans.org/top20/</a>. This covers diverse risks applicable to everyone, like unsecured flash drives, web browser vulnerabilities, denial-of-service attacks due to instant messaging, and so forth.</span></span></p>
<p class="MsoNormal"><span style="font-family: verdana,geneva;"><span style="font-family: "Verdana","sans-serif";">3. For the IT manager crafting an IT infrastructure, the challenge is even broader, with considerations such as risk assessment, vulnerability assessments, and regulatory compliance.&nbsp; All these can be looked at through the lens of the SANS Top 25 Most Dangerous Programming Errors.&nbsp;&nbsp; Remember the goal behind the CWE effort is to make software security measurable, and the Top 25 List is a focal point for that goal. </span></span></p>
<p class="MsoNormal"><span style="font-family: "Verdana","sans-serif";">&nbsp;</span></p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>PDC 2008 Highlights</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=104037</link> 
		<pubDate>2008-12-01T18:49:00 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=104037#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <div style="margin: 0in 0in 10pt;">We had a great time at PDC 2008 this year.&nbsp;I was really glad to see that the in-booth theater presentations were so well received.&nbsp;During the expo reception, we had over 50 people gathered to watch a presentation given by Mike Wall, Principal Member of Technical Staff, on Performance Optimization of Windows&reg; Applications on AMD Processors.&nbsp;As promised, this presentation is posted on the <a href="http://developer.amd.com/zones/windows/Pages/default.aspx">Windows Zone</a> on developer.amd.com along with the other presentations on Virtualization, AMD Roadmaps, and an Intro to Developer Central.&nbsp;<img style="float: right;" src="http://developer.amd.com/PublishingImages/PDC2008.jpg " alt="PDC 2008 - AMD Booth" width="487" height="480" /></div>
<div style="margin: 0in 0in 10pt;">If you liked Mike&rsquo;s presentation you should definitely check out the paper that Mike wrote that comes with the Mandelbrot code set and optimization steps to follow along with:</div>
<div style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;"><span>&middot;<span style="font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><a href="http://developer.amd.com/documentation/articles/Pages/PerformanceOptimizationofWindowsApplicationsonAMDProcessors.aspx"><span style="color: #0000ff;">Performance Optimization of Windows Applications on AMD Processors, Part I</span></a></div>
<div style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in;"><span>&middot;<span style="font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><a href="http://developer.amd.com/documentation/articles/pages/PerformanceOptimizationofWindowsApplicationsonAMDProcessors2.aspx"><span style="color: #0000ff;">Performance Optimization of Windows Applications on AMD Processors, Part II</span></a></div>
<div style="margin: 0in 0in 10pt;">The <a href="http://developer.amd.com/cpu/codeanalyst/codeanalystwindows/Pages/default.aspx">AMD CodeAnalyst Performance Analyzer </a>also got a lot of attention in our booth.&nbsp;We handed out nearly 1,000 USB sticks loaded with AMD CodeAnalyst Performance Analyzer along with supporting technical docs.&nbsp;If you missed out on that, make sure to download your copy of the <a href="http://developer.amd.com/cpu/codeanalyst/codeanalystwindows/Pages/default.aspx">AMD CodeAnalyst tool that integrates into Visual Studio 2008</a>.&nbsp;As Mike points out in his article, if you&rsquo;ve never profiled your code before, you&rsquo;ll be shocked at where most of the time is spent.&nbsp;</div>
<div style="margin: 0in 0in 10pt;">Our 32-core HP DL785 server was great eye candy and attracted many people's attention. Our Mandelbrot threading demo was able to show the new Microsoft&reg; Concurrency Runtime scheduler algorithm and task queue in a very visual manner, so it was even interesting for advanced developers. &nbsp;Many thanks to Michael J. Miller from PC MAg for blogging about it: <a href="http://blogs.pcmag.com/miller/2008/10/more_from_pdc_sensors_surface.php"><span style="color: #0000ff;">http://blogs.pcmag.com/miller/2008/10/more_from_pdc_sensors_surface.php</span></a><img src="i/expressions/face-icon-small-smile.gif" border="0"></div>
<div style="margin: 0in 0in 10pt;">The team reported on a lot of cool things that Microsoft is doing as well, including:</div>
<div style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;"><span>&middot;<span style="font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>Deploying lots of small battery powered environment sensors, which feed data to a receiver. For example, they instrumented the huge LACC lecture hall with a sensor grid and showed the temperature measurements over a 24 hour period, and you could see when the people walked in (warm spots) and when the air conditioning kicked on (cool spots). The goal is to enable more efficient buildings by accurately tracking the temperature. They also used the same method to map the heat coming from a large server farm. With virtualization and live migration, you could presumably migrate jobs from a hot rack to a cold rack, to help save energy.</div>
<div style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;"><span>&middot;<span style="font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>A user-friendly game construction environment called Boku. Users configure and actually program a mini world populated with interactive characters and other objects. The behaviors of the objects are determined by effectively writing short programs using an intuitive icon-based programming language. It's all done using an Xbox controller- no keyboard required. This is the most accessible and friendly programming system I've ever seen, and it also looks like a lot of fun. Kids will probably love it when it's launched, currently planned for early next year.&nbsp;<a href="http://research.microsoft.com/projects/boku/"><span style="color: #0000ff;">http://research.microsoft.com/projects/boku/</span></a></div>
<div style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;"><span>&middot;<span style="font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>Microsoft is making an investment in Cloud Computing and even making a special version of Windows&reg; for it, called <a href="http://www.microsoft.com/azure/default.mspx"><span style="color: #0000ff;">Windows Azure</span></a>.</div>
<div style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;"><span>&middot;<span style="font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>Microsoft Research is making a CHESS tool that allows a developer to find race conditions and deadlocks in his/her code, in a repeatable maner using Visual Studio <span style="font-size: 11pt; color: #1f497d; font-family: "Calibri","sans-serif"; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><a href="http://research.microsoft.com/Chess"><span style="color: #0000ff;">http://research.microsoft.com/Chess</span></a>.&nbsp; </span></div>
<div style="margin: 0in 0in 0pt 0.5in; text-indent: -0.25in;"></div>
<div style="margin: 0in 0in 10pt;">We are looking forward to the next PDC!&nbsp;It&rsquo;s always a great group of people and Microsoft really knows how to throw a great show!</div>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>&quot;Barcelona&quot; Zone is now &quot;Shanghai&quot; Zone</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=103007</link> 
		<pubDate>2008-11-13T00:59:34 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=103007#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p>Looking for our "Barcelona" Zone?&nbsp; All the content and resources you expected to find are still there, but we've added some new information about AMD's follow-up to the Quad-Core AMD Opteron<span style="font-size: 10pt; font-family: "Arial","sans-serif"; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">&trade;</span> processor (codenamed "Barcelona") and have renamed the content section to "Shanghai" Zone.&nbsp; The new Quad-Core AMD Opteron processors (codenamed "Shanghai") retain all the features of the "Barcelona" processors and add further advancements in the technologies for even better performance.&nbsp; Find out what's new with the L3 cache originally introduced in the "Barcelona" processor and learn about other memory bandwidth enhancements in the <a href="http://developer.amd.com/shanghai">"Shanghai" Zone</a>.</p>
<p>We'd appreciate hearing what you think about the new "Shanghai" processors, so leave us a comment!</p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>AMD is a Gold Sponsor of Microsoft PDC 2008</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=101475</link> 
		<pubDate>2008-10-14T18:38:46 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=101475#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p style="margin: 0in 0in 10pt;">The <a href="http://www.microsoftpdc.com">Microsoft Professional Developers Conference (PDC)</a> is back this year after a three year hiatus and AMD is putting the final touches on our Gold Sponsorship &nbsp;participation.&nbsp; Our main focus is to provide you with the tools and resources you need to &ldquo;Unleash Your Code&rsquo;s Potential.&rdquo;&nbsp; If you are planning to attend PDC 2008, make sure to stop by the AMD booth #301.</p>
<p style="margin: 0in 0in 10pt;">Here&rsquo;s a sneak peak of some cool things we are planning to demo:</p>
<ul>
<li>How to simplify testing environments by using virtualization to do processor scaling tests</li>
<li>How to find hotspots and do thread analysis on your code using the <a href="http://developer.amd.com/cpu/CodeAnalyst/Pages/default.aspx">AMD CodeAnalyst&trade;</a> performance analyzer from within the Visual Studio IDE</li>
<li>How to help get performance improvement through program &nbsp;parallelization using the Microsoft&reg; Concurrency Runtime </li>
<li>How AMD and Microsoft have worked together to provide developers with a comprehensive cloud computing platform and development environment</li>
</ul>
<p style="margin: 0in 0in 10pt;">We also plan to have sessions in our booth&rsquo;s Speed Zone Theater including:</p>
<ul>
<li>Software Optimization, Part I: Memory
<ul>
<li>Making the best use of system memory.&nbsp; Arrays vs. linked lists, NUMA, and using the <a href="http://developer.amd.com/cpu/CodeAnalyst/Pages/default.aspx">AMD CodeAnalyst</a> performance analyzer.</li>
</ul>
</li>
<li>Software Optimization, Part II: Cache
<ul>
<li>Making the best use of data cache.&nbsp; Data packing, prefetching, non-temporal data, and using the <a href="http://developer.amd.com/cpu/CodeAnalyst/Pages/default.aspx">AMD CodeAnalyst</a> performance analyzer. </li>
</ul>
</li>
<li>Virtualization 
<ul>
<li>An overview of how developers can use virtualization in their development environments. </li>
</ul>
</li>
<li>Intro to AMD Developer Central
<ul>
<li>A look at the tools and other resources that we offer on developer.amd.com. </li>
</ul>
</li>
</ul>
<p style="margin: 0in 0in 10pt;">Oh, and in the spirit of this being a show focusing on the future, I should mention that we will be running some of these demos on our soon-to-be released processors!&nbsp;</p>
<p>Finally, we have some awesome gifts lined up for you (while supplies last).&nbsp; People who attend our Speed Zone Theater sessions will get a t-shirt and if you come see each of our demos you&rsquo;ll get a 2GB USB drive loaded with developer tools and optimization guidance. Hope to see you there!</p>
<p>What other topics do you want us to talk about?&nbsp; Software visible features of our processors?&nbsp; Roadmaps?&nbsp; Parallel Programming?&nbsp; Just take a moment to set me know by leaving your comments to this blog, I&rsquo;ll do my best to get it added to our list of sessions.</p>
<p>Sharon Troia, AMD Developer Central</p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Benchmarking and collecting performance data under Microsoft Windows Vista and Windows Server 2008</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=100987</link> 
		<pubDate>2008-10-03T13:37:54 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=100987#comments</comments>
		<trackback:ping>3</trackback:ping>
		<description><![CDATA[ <p>Are you getting odd, unexpectedly low, and/or inconsistent results when running your internal performance validation benchmarks or when collecting other performance data?&nbsp; If you are running Microsoft Windows Vista or Windows Server 2008, power management power plans other than &ldquo;High performance&rdquo; can often result in wrong and inconsistent data resulting in a misrepresentation of bottlenecks or hot spots in your code.&nbsp;&nbsp;In response&nbsp;to a number of inquiries from our software developer community, we have&nbsp;added some guidance on AMD Developer Central.&nbsp; For more information on this topic&nbsp;and a scriptable way to manage power settings, please see the <a href="http://developer.amd.com/zones/windows/pages/Benchmarkingandcollectingperformancedata.aspx">recommendations in the Windows Zone</a>.</p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Help us choose a new design and layout for AMD Developer Central</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=100908</link> 
		<pubDate>2008-10-01T23:46:10 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=100908#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p><span style="background-color: #ccffff;"><strong>Note</strong>: The Design Survey Unavailable on Thursday, October 9: 6:00pm - 4:00am PDT (Friday, October 10, 2008) for scheduled maintenance.</span> &nbsp;</p>
<p>The AMD Developer Central staff is considering a facelift for the developer.amd.com Web site, and we want to make sure it meets your needs. That's why we're previewing some concepts, with an opportunity for you to vote on them. Your feedback will help us to decide on a final design and layout scheme that will be easier to use and more pleasing to the eye.</p>
<p>Check out the concepts below, and then take five minutes to vote on your favorites.</p>
<p>&raquo; <a href="http://www.zoomerang.com/Survey/?p=WEB228ANEQ8WYT" target="_blank">Click here to take the survey</a></p>
<table border="0" cellspacing="0" cellpadding="4">
<tbody>
<tr align="center" valign="top">
<td>
<div><a href="http://developer.amd.com/media/z_home_option1.jpg" target="_blank"><img style="border:1px solid black;" src="http://developer.amd.com/media/thm_home_option1.jpg" border="0" alt="Option 1" /></a></div>
</td>
<td>
<div><a href="http://developer.amd.com/media/z_home_option2.jpg" target="_blank"><img style="border:1px solid black;" src="http://developer.amd.com/media/thm_home_option2.jpg" border="0" alt="Option 2" /></a></div>
</td>
</tr>
</tbody>
</table>
<p>Thanks for participating!</p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Our oxygen bar was a hit!</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=95530</link> 
		<pubDate>2008-05-22T17:02:43 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=95530#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ <p><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;">
<p>Did you miss checking out our oxygen bar in the <a href="http://developer.amd.com/community/EVENTS/JAVAONE/Pages/default.aspx">AMD booth at JavaOne</a>? Well, 1700 of your fellow developers couldn't pass up the chance to try fragrances that had different effects like calming, energizing, and -- ahem -- aphrodisiac. Fortunately, we've got pictures...but we're not telling which vial is which!</p>
<p><img src="http://developer.amd.com/PublishingImages/oxygenbar.JPG" alt="oxygen bar" width="400" height="305" /></p>
</span></p>
<p>&nbsp;</p>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Play the Second Annual AMD Treasure Hunt Game!</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=95233</link> 
		<pubDate>2008-05-12T12:16:17 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=95233#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ Have you been paying attention to the latest trends in multi-core processors and multi-threaded programming? Are you curious about how parallel programming can dramatically improve application (and of course, PC gaming) performance? Are you a code warrior interested in a cool challenge? <br /><br />If so, you might have what it takes to conquer the AMD Treasure Hunt Game!<br /><br />&#187; <a target=_blank class=ftalternatingbarlinklarge href="http://developer.amd.com/community/events/treasurehunt/pages/default.aspx">Learn how to play</a>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>The Software Optimization Guide Comes to Life!</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=94277</link> 
		<pubDate>2008-04-11T14:57:10 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=94277#comments</comments>
		<trackback:ping>2</trackback:ping>
		<description><![CDATA[ I'm pleased to announce that we have just published a series of six videos that brings to life some of the key concepts outlined in the Software Optimization Guide for Family 10h Processors.  This video series is a companion to the optimization guide, and provides a quick look at some highly useful tips in addition to some examples to illustrate coding best practices.<br /><br />We hope you find this series valuable, and welcome your feedback.  Let us know what you think by commenting on this post.  If you have questions about the information contained in the videos, feel free to post a question in our forums.<br /><br />Happy viewing!<br /><a target=_blank class=ftalternatingbarlinklarge href="http://developer.amd.com/documentation/videos/pages/SoftwareOptimizationVideoSeries.aspx">Software Optimization Video Series</a>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Live from EclipseCon 2008</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=93388</link> 
		<pubDate>2008-03-18T17:41:08 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=93388#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ I have just a short break here, but wanted to give you all a quick update on how things are going here at EclipseCon 2008.<br /><br />The booth has been quite busy, with attendees coming by to fill out our survey and get their 1GB USB drive.  We've had a number of people wanting to learn what AMD's relationship is with Eclipse, and then are very interested once they find out what the <a target=_blank class=ftalternatingbarlinklarge href="http://developer.amd.com/tools/codeanalystwindows/codesleuth/Pages/default.aspx">CodeSleuth</a> plugin can do for their Java development process.<br /><br />Gary Frost from the AMD Java Labs team delivered his technical session this morning to a full room.  After his session, I was flooded at the booth!  I'll try to post some pictures when I get a moment.<br /><br />Gotta go, the hall is opening up again and people are coming by!  Be sure to check out CodeSleuth yourself if you're not able to join us at the show.<br /><br /><img src="http://moss-ad.austindev.com/PublishingImages/eclipsecon08pix.jpg">]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Join us at EclipseCon 2008</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=93209</link> 
		<pubDate>2008-03-13T15:55:44 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=93209#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ If you're coming to EclipseCon 2008 next week (March 17-20 in Santa Clara, CA), be sure to come visit the AMD Hardware Lounge or our booths (410/411) in the Exhibit Hall.  We'll be showcasing one of the servers we've donated to the Eclipse Foundation to run their backend infrastructure, along with some AMD SPIDER systems.<br /><br />Gary Frost, one of our AMD Java Labs engineers, will also be delivering a technical session and will be on hand to answer questions about the new plugin for Eclipse we're demonstrating.<br /><br />Plus, fill out our survey for a chance to win a fun prize!<br /><br />Get all the details at our <a target=_blank class=ftalternatingbarlinklarge href="http://developer.amd.com/eclipsecon2008">AMD@EclipseCon</a> page.]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Did you miss the webcast last week?  It&apos;s on-demand now!</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=92042</link> 
		<pubDate>2008-02-05T17:27:01 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=92042#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ Mike and Robin did a great talk about optimizations and multithreading last week.  If you missed it you can view the webcasts on-demand.  <a target=_blank class=ftalternatingbarlinklarge href="http://www.microsoft.com/india/webcasts/ondemand.aspx">View the on-demand webcasts</a>.  ]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>Optimizations, Parallel Programming Techniques, New CPU Features, oh My!</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=91812</link> 
		<pubDate>2008-01-29T17:47:46 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=91812#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ There are two webcasts coming up this thursday and friday through MSDN India that feature AMD's very own software optimization guru's, Michael Wall and Robin Maffeo.  If you write native code targeted at windows apps you can't afford to miss these webcasts.<br /><br /><b><a target=_blank class=ftalternatingbarlinklarge href="http://www.microsoft.com/India/webcasts/">Multicore is here! But how do you resolve data bottlenecks in Native Code?</a></b><br />AMD's new "Barcelona" processor family is at the center of the new wave of CPU architectures. These new architectures mean new opportunities for both native and managed code. So, what opportunities do processor enhancements such as native quad-core processors, improved IPC, and L3 caches mean for your solution? This session will describe enhancements made to the Microsoft .NET Framework regarding code generation improvements and cache system pressure as a result of more cores per single chip. Developers will learn how to choose between server and workstation garbage collectors for performance, object creation tips, about lock optimizations in the CLR, and how (not) to deal with threads when developing managed code solutions. NUMA (non-uniform memory access) considerations that benefit managed code execution will also be explored. For native code development, specific Microsoft Visual C++ 2008 compiler intrinsics, compiler switches (i.e. the "/favor" flag), and other compiler and linker options will be demonstrated to enable a more informed evaluation of these options during software solution performance evaluation.<br /><br />Speaker: Robin Maffeo<br /><i><b>January 31, 2008 |  9:30PM - 11:00PM (PST) </b></i><br /><b><a target=_blank class=ftalternatingbarlinklarge href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032364415&Culture=en-IN">Click here to Register</a></b><br /><br /><b><a target=_blank class=ftalternatingbarlinklarge href="http://www.microsoft.com/India/webcasts/">Empowering Developers: AMD x86 and x64 Performance Considerations when using Microsoft Visual Studio 2008</a></b><br />The industry is rushing to multi core processors. The Quad-core AMD "Barcelona" family processors, including Third Generation AMD Opteron processors and coming client offerings will integrate four complete processor cores on a single chip. In this session we will show you how to optimize your code to take advantage of these cores by feeding them with the data they require. The AMD "Barcelona" processor family implements new cache and memory features to address the data bottleneck and we will show you the basic architecture so you can successfully optimize your applications. This session will explain details of the "Barcelona" processors' innovative three-level cache system and the improved integrated memory controller. Topics include the automatic data prefetcher, L1/L2/L3 cache behavior, and explicit cache management instructions. You will learn from clear examples how to use non-temporal data, and best practices for memory and thread affinity on multi-socket "Barcelona" platforms. Take-aways includes multi-threaded code and data-parallel optimization techniques, demonstrated in C/C++ using Microsoft Visual Studio 2008.<br /><br />Speaker: Michael Wall<br /><i><b>February 01, 2008 |  9:30PM - 11:00PM (PST) </b></i><br /><b><a target=_blank class=ftalternatingbarlinklarge href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032366902&Culture=en-IN">Click Here to Register</a></b>]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>We Left Our Hearts in Barcelona</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=89916</link> 
		<pubDate>2007-11-29T16:13:13 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=89916#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ AMD Developer Outreach had a big, shiny presence at the recent Microsoft&#174; TechEd Developers 2007 event, which took place in Barcelona, Spain during the week of November 5th (see photo montage, below). We enjoyed meeting all of the delegates who stopped by our booth and/or who attended our two breakout sessions. Many of the delegates we met hailed from the farthest reaches of the EMEA region. By the end of our week in Spain's capitol of cool, we had come to admire its people, its culture and especially its cuisine!<br /><br />One of AMD's primary goals for sponsoring TechEd Developers 2007, which drew close to 4,000 delegates, was to educate managed code developers about the various tools, libraries and optimizations that AMD makes freely available through <a target=_blank class=ftalternatingbarlinklarge href="http://developer.amd.com/downloads.jsp">AMD Developer Central</a> (developer.amd.com). We also sought to communicate the steps that managed code developers can take to optimize their code for multi-core processor platforms. In other words, this stuff ain't just for native-code junkies.<br /><br />AMD's Mike Wall gave a <a target=_blank class=ftalternatingbarlinklarge href="http://developer.amd.com/assets/TLA408_Multi_Core_Mike_Wall.pdf">breakout session</a> on the topic of, "Multi Core is Here! But How Do You Resolve Data Bottlenecks in Native Code?" This well-attended session provided delegates with techniques for multi-threaded code and data-parallel optimizations as demonstrated in C/C++ using Microsoft Visual Studio 2008.<br /><br />In addition, AMD's Robin Maffeo gave a <a target=_blank class=ftalternatingbarlinklarge href="http://developer.amd.com/assets/TLA409_Empowering_Developers__x86_and_x64_Performance_Considerations_when_Using_Microsoft_Visual_Studio.pdf">breakout session</a> on, "Empowering Developers: x86 and x64 Performance Considerations when Using Microsoft Visual Studio 2008." Robin's session also drew a sizable crowd, and Robin detailed many of the multi-threading and CLR enhancements made to the Microsoft .NET Framework in collaboration with AMD. Robin further described several compiler and linker switches and options that can help developers quickly achieve highly optimized and multi-core aware code.<br /><br />AMD's display booth, located front and center within the CCIB exhibition hall, also offered a number of hands-on demos, as well as an XBox 360 lounge for Halo 3 enthusiasts. AMD's Brent Hollingsworth extolled the virtues of the AMD Performance Library, a series of low-level math routines and higher-level functions to help optimize signal and image processing. AMD's John McCrae provided real-time demos of Visual Studio 2008 performance comparisons with Visual Studio 2005, particularly focusing on using the right compiler options at the right time. Mike Wall demonstrated how developers can use AMD CodeAnalysttm to identify bottlenecks and hot spots in managed code applications within Visual Studio 2008. Finally, Robin Maffeo demonstrated key techniques on how to get the most of managed code for both client and server applications.<br /><br />We really enjoyed our time in Barcelona and we'd love to hear your feedback about how AMD Developer Outreach can make future events even more useful and relevant to our growing developer community!<br /><br /><img src="http://developer.amd.com/assets/blog_mw_demo.jpg"><br />AMD's Mike Wall demonstrates AMD CodeAnalysttm performance analyzer.<br /><br /><img src="http://developer.amd.com/assets/blog_rm.jpg"><br />AMD's Robin Maffeo demonstrates Microsoft&#174; Visual Studio 2008 compiler optimizations to delegates.<br /><br /><img src="http://developer.amd.com/assets/blog_xbox.jpg"><br />Conference delegates take a break at AMD's Xbox 360 lounge.<br /><br />Edit: Updated image paths to correct broken images.]]></description>
	</item>
	
	<item>
		<dc:creator>AMD DeveloperCentral</dc:creator>
		<title>&#xa1;Live from Barcelona!</title>
		<link>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=89266</link> 
		<pubDate>2007-11-06T06:28:51 -05.00</pubDate>
		<comments>http://forums.amd.com/devblog/blogpost.cfm?catid=208&amp;threadid=89266#comments</comments>
		<trackback:ping>0</trackback:ping>
		<description><![CDATA[ While you are working hard on your next project, the Developer Outreach team is also working hard in Barcelona talking about all the great tools and techniques we have for optimizing your code for quad-core processors (and of course we're taking the occasional break to sample the local cuisine). <br /><br />Yesterday, Soma  Somasegar, Corporate VP for Microsoft's Developer Division delivered the keynote here at TechEd-Developers. He officially announced the impending release of Visual Studio 2008 ("by the end of the November") and he let us know that the rest of the Team System products will be coming shortly.<br /><br />Dan Fernandez, lead Product Manager for Visual Studio delivered a compelling demonstration of how a partner used the VS Industry Partner Program to create a customization shell for World of Warcraft. This was made possible by a couple of changes in VSIP licensing  -  free redist.  of the shell, and changes in licensing to make it easier to use VS output on non-windows devices. Dan also discussed Microsoft Popfly, an online tool for easily creating and sharing mashups. Very Cool.<br /><br />Microsoft Sync is a cool new product that was announced this week. It consists of a framework and tool set to make it much easier to synchronize your data across multiple sources in a couple of key scenarios: first, there are times when you need to capture live data but are disconnected. With Sync you can capture this data and store it locally, then sync it with backend systems when connected again  -  think of roving sales staff who are only sometimes connected but who need to capture data constantly, for example. The second scenario is around peer-to-peer data sharing. In a demo in the Microsoft booth, they show how a customer contact is stored in SQL Server Express by a desktop app then sync'd to Outlook by a sync service and further synchronized to a hand-held. You can see that there are huge implications for moving your important data around in a timely fashion.  For more information, go to <a target=_blank class=ftalternatingbarlinklarge href="http://msdn.microsoft.com/sync">http://msdn.microsoft.com/sync</a> <br /><br />We're off to a great start here so if you're in town, come over and say hello. We'd love to chat with you.<br />]]></description>
	</item>
	
</channel>
</rss>
