Parallel Programming in Native Code

Parallel programming using C++ AMP, PPL and Agents libraries.

Browse by Tags

Tagged Content List
  • Blog Post: Harmless DXGI warnings with C++ AMP

    If you have tried to run C++ AMP program in Visual Studio 2012 on Windows 8 in debug configuration, you might have noticed that after a successful execution there are DXGI warnings reported in the output window. Long story short – there is nothing to worry about; these warnings may be safely ignored...
  • Blog Post: Remote GPU Debugging on Nvidia Hardware

    The GPU debugger in Visual Studio 2012 (VS2012) can be extended by hardware vendors to debug directly on GPU hardware rather than on a software emulator. Nvidia has built such an extension and has made it publicly available as part of Nsight 3.0 ( Nsight Visual Studio Edition 3.0 Release Candidate 1...
  • Blog Post: C++ AMP Training in Chicago Dec 11-14, 2012

    If you’re in Chicago or thereabouts in December, our friends at Acceleware are offering their C++ AMP training during the week of December 11 – 14th.  We participated in one of their trainings in Redmond back in July and can attest to the high quality of the instructors and materials.  Sign...
  • Blog Post: C++ AMP book now available

    The C++ AMP book by Kate Gregory and Ade Miller is now in print and available online and in good bookstores! It is a great place to start if you’re looking to get up and running with C++ AMP. You can read a preview and buy the book on both the Amazon.com (paper and Kindle versions) and the O’Reilly web...
  • Blog Post: Floating-point arithmetic intricacies in C++ AMP

    In this blog post I am going to describe a few discrepancies between floating-point behavior on the host-side and that on the accelerator-side in C++ AMP. This post will be of interest to anyone who pays attention to the floating-point accuracy and correctness in little more exotic scenarios involving...
  • Blog Post: accelerator_view selection for C++ AMP parallel_for_each and copy operations

    parallel_for_each and copy are among the most common accelerator operations performed in C++ AMP code. A parallel_for_each invocation denotes the execution of a data parallel C++ AMP kernel on a specific accelerator_view , while a copy invocation denotes transfer of data between a source and destination...
  • Blog Post: String search sample with C++ AMP

    In this blog post I am going to share with you a string matching sample and describe the inner workings of the algorithm. On my machine with NVIDIA GTX580 the C++ AMP algorithm that I present below achieves up to 35X speedup over the std::strstr algorithm from standard C++ library. In the first section...
  • Blog Post: Read-only array_view/array in C++ AMP – Part 2 of 2

    In the previous post we looked at how you can specify the read-only restriction for array_view / array data collections in your C++ AMP code. In this part, we will look at the benefits of specifying the read-only restriction for your data collections when they are only read-from (not written-to) in a...
  • Blog Post: Julia fractal using C++ AMP

    In this blog post, I will share a C++ AMP implementation of a fractal generator, rendering 4 dimensional Quaternion Julia fractals . I’ll show you screenshots of the app, then we’ll dive into the code, and then I’ll share a pointer of where you can get the Visual Studio project. ...
  • Blog Post: Read-only array_view/array in C++ AMP – Part 1 of 2

    concurrency::array_view and concurrency::array are the most common vehicles for reading and writing data collections in your C++ AMP code. Often in your C++ AMP kernels or parts of your host code, some of the referenced data collections are purely inputs to the computation and are only read-from (never...
  • Blog Post: Mutable lambdas considered harmful in C++ AMP

    Hello, my name is Jonathan Emmett and I’m a developer on the C++ AMP team. In this post I’ll be talking about the problems with mutable lambdas and function objects with non-const function call operators in C++ AMP kernels. There are a number of potential problems with these objects, and...
  • Blog Post: What do you want in the next version of C++ AMP? – we are listening

    Visual Studio 2012 includes the first release of the C++ AMP technology and hopefully by now you have had a chance to learn about and even better try your hands at it. We would like you to know that this first release is just a beginning and our team is actively planning new features and improvements...
  • Blog Post: Cartoonizer sample in C++ AMP

    One of the case study samples in the C++ AMP book is called Cartoonizer and you can grab the code for it on the book's codeplex download page . To understand the code, you can walk through the freely available aforementioned download on your own, or you can obtain the book and read the dedicated chapter...
  • Blog Post: Antenna Radiation Simulation using C++ AMP

    In this blog post, we present a sample about antenna radiation pattern simulation. Aside from minor tweaks that we made, this was written for us by EM Photonics who offer C++ AMP consultancy . First I’ll describe the app, then the algorithm, and then the three classes used in the code. Last, I...
  • Blog Post: Learn C++ AMP

    So you are a newbie to C++ AMP – you know nothing and want to quickly get started, we have you covered – keep on reading! Step 1 – Do this first! While it is typical for many to learn a new technology by writing your own "Hello World", if you don’t want to wander off into the minefield of GPU...
  • Blog Post: All about C++ AMP concurrency::array_view

    The concurrency::array_view class is one of the most important types in C++ AMP and a central concept in the programming model. Over the past year we have shared a lot of content about the C++ AMP concurrency::array_view type through our blog. This post lists all existing blog posts related to the concurrency...
  • Blog Post: Present on C++ AMP

    Some of you don't just want to learn C++ AMP, but you also want to present on C++ AMP to your colleagues, or at user groups and other such events. To help you with that goal, we have made available a set of slides from which you can pick the ones that fit your style and approach, and also links to screencasts...
  • Blog Post: concurrency::array_view – data source lifetime

    The previous posts in this series on C++ AMP array_view covered: Introduction to array_view and some of its key semantic aspects Implicit synchronization on destruction of array_view s array_view discard_data function Caching and coherence policies underlying array_view implementation...
  • Blog Post: concurrency::array_view –array_views on staging arrays

    The previous posts in this series on C++ AMP array_view covered: Introduction to array_view and some of its key semantic aspects Implicit synchronization on destruction of array_view s array_view discard_data function Caching and coherence policies underlying array_view implementation...
  • Blog Post: Fluid simulation C++ AMP sample

    In this sample we present a C++ AMP implementation of fluid simulation using the Smoothed-Particle Hydrodynamics (SPH) algorithm. The method was devised in 1970s by Gingold and Monaghan. Although originally meant for the simulation of astrophysical entities, it is widely used in many fields, including...
  • Blog Post: Using CUDA Libraries from C++ AMP

    For CUDA programmers, as you know, we have published a customized C++ AMP learning guide . If you know CUDA and are planning to use C++ AMP for new projects or for porting existing projects, you can follow the guide to see how to learn C++ AMP. In addition to authoring and porting your own code, your...
  • Blog Post: Avoid Bank Conflicts on tile_static Memory with C++ AMP

    C++ AMP includes a performance optimization technology called tiling . There are three major ingredients for using tiling: scheduling thread tiles with tiled parallel_for_each , declaring variables with the tile_static storage class, and use tile_barrier to synchronize threads in a tile. A variable declared...
  • Blog Post: concurrency::array_view - Caching and data coherence

    The previous posts in this series on C++ AMP array_view covered: Introduction to array_view and some of its key semantic aspects Implicit synchronization on destruction of array_view s array_view discard_data function In this post I will talk about the caching scheme underlying array_view...
  • Blog Post: Memory Coalescing with C++ AMP

    The primary goal of offloading work to a GPU is improve performance – either because you need to reduce your coffee consumption waiting for an answer or you are tired of rushing to the wall to plug in your laptop. However, performance may be limited by different aspects of GPU execution. This blog...
  • Blog Post: Image morphing C++ AMP sample

    This sample demonstrates implementation of image morphing . This image transformation technique, dating back to late 80s, is calculating smooth transition between two images, keeping the selected features (e.g. eyes, nose) in images matching each other throughout the process. You can see this Morph sample...
Page 1 of 7 (175 items) 12345»