Parallel Programming in Native Code

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

Browse by Tags

Tagged Content List
  • Blog Post: Raking through the parallelism tool-shed: the curious case of matrix-matrix multiplication

    Part 1 – no sleeves have been rolled during the production of this blog post Hello ladies and gentlemen, my name is Alex Voicu and I am a software engineer in the Visual C++ Libraries team. This constitutes the first post from what we hope will be an informative series that details the solutions...
  • Blog Post: FaceMorphing Windows Store Application

    In our earlier blog post , we introduced the image morphing desktop application, which uses C++ AMP for computations internally. That sample demonstrates how to blend the C++ AMP code into a C# application. In this blog post, we revisit the same sample. We have made it more interesting this time with...
  • Blog Post: Eigen Values

    The computation of Eigen values is an important problem to solve in linear algebra, statistics, physics, bio metrics and many other fields. In this blog post, I would like to share the Eigen Values sample implemented using C++ AMP. This is the C++ AMP Version of NVIDIA CUDA’s Eigen Values Sample...
  • Blog Post: C++ AMP Open Spec V1.2 Published

    C++ AMP Open Specification V1.2   is available now under the Microsoft Community Promise – which essentially allows any C++ compiler implementer to add C++ AMP to their compiler. As before, Microsoft supports and encourages anyone to implement the C++ AMP open specification on any platform , and...
  • Blog Post: Texture with Mipmaps

    In the v2 release of C++ AMP through Visual Studio 2013, one of our main efforts were focused around extending the features of textures by supporting Texture Mipmaps. Introduction Mipmaps are the sequence of images that accompany the main texture image. Each dimension in subsequent image is half...
  • Blog Post: Support of 3-Component Textures

    In Visual Studio 2012, C++ AMP introduced concurrency::graphics::texture data container and the support for three component texture formats was not provided in that release. In Visual Studio 2013, the support for the three component texture formats is included. Let’s dive deep down into those details...
  • Blog Post: array_view without Data Source

    In Visual Studio 2012, C++ AMP introduced concurrency::array_view as a primary interface to read and write multi-dimensional data across the CPU and GPU accelerators. The construction of array_view always required a data source like std::vector, concurrency::array etc. It could be either a CPU pointer...
  • Blog Post: Texture Copy Improvements in C++ AMP with Visual Studio 2013

    C++ AMP in Visual Studio 2013 introduces a number of improvements to texture support. In this blog post, I will cover the improvements we have made over texture copy support in Visual Studio 2012 . Texture copy support in C++ AMP was missing a few key features in Visual Studio 2012 compared to the...
  • Blog Post: Staging Texture in C++ AMP

    C++ AMP in Visual Studio 2012 had the ability to create staging array which helped in optimizing data transfer cost between the host and accelerator_view . In C++ AMP in Visual Studio 2013 , we have enhanced the texture by adding the capability to create staging texture which brings in same benefits...
  • Blog Post: Shared memory support in C++ AMP – a deeper dive

    The previous posts in this series on shared memory support in C++ AMP covered: Introduction to shared memory support in C++ AMP Implicit use of shared memory underlying array_view by the C++ AMP runtime In this final post of the series, we will dive deeper into the topic and look at: ...
  • Blog Post: Shared memory support in C++ AMP – array_view

    The previous post in this series provided an introduction of CPU/GPU shared memory support in C++ AMP. In this post we will take a closer look at how shared memory is implicitly used by the C++ AMP runtime underlying array_view objects, to boost the performance of your existing C++ AMP code. Implicit...
  • Blog Post: Simultaneous CPU/GPU Debugging in Visual Studio 2013

    The debugging support introduced for C++ AMP in Visual Studio 2012 has been extended in Visual Studio 2013 when running on Windows 8.1 so that you are able to debug both the CPU and GPU parts of your C++ AMP application simultaneously. In this post I’ll show you how to get started. 1. Configure...
  • 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...
Page 1 of 8 (186 items) 12345»