Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++

Buy
For most of computing history, we benefited from exponential increases in performance of scalar processors. That has come to an end. We are now at the dawn of the heterogeneous parallel computing era. With all applications being power-sensitive and all computing systems being power-limited, from mobile to cloud, future computing platforms must embrace heterogeneity. For example, a fast-growing portion of the top supercomputers in the world have become heterogeneous CPU + GPU computing clusters. While the first-generation programming interfaces such as CUDA and OpenCL have enabled development of new libraries and applications for these systems, there has been a clear need for much higher productivity in heterogeneous parallel software development.

The major challenge is that any programming interface that raises productivity in this domain must also give programmers enough control to reach their performance goals. C++ AMP from Microsoft is a major step forward in addressing this challenge. The C++ AMP interface is a simple, elegant extension to the C++ language to address two major weaknesses of previous interfaces. First, the previous approaches did not fit well with the C++ software engineering practice. The kernel-based parallel programming models tend to disturb the class organization of applications. Second, their C-based indexing for dynamically allocated arrays complicates the code for managing locality.

I am excited to see that C++ AMP supports the use of C++ loop constructs and objected-oriented features in parallel code to address the first issue and an array_view construct to address the second issue. The array_view approach is forward-looking and prepares applications to take full advantage of the upcoming unified address space architectures. Many experienced CUDA and OpenCL programmers have found the

C++ AMP programming style refreshing, elegant, and effective. Equally importantly, in my opinion, the C++ AMP interface opens the door for a wide range of innovative compiler transformations, such as data layout adjustment and thread granularity adjustment, to become mainstream. It also enables run-time implementation optimizations on data movement. Such advancements will be needed for a dramatic improvement in programmer productivity.

While C++ AMP is currently only implemented on Windows, the interface is open and will likely be implemented on other platforms. There is great potential for the C++ AMP interface to make an even bigger impact if and when the other platform vendors begin to offer their implementation of the interface.
(HTML tags aren't allowed.)

Node.js By Example
Node.js By Example

Learn to use Node.js by creating a fully functional social network

About This Book

  • Plan and implement a modern Node.js application
  • Get to know the most useful Node.js capabilities
  • Learn how to create complex Node.js applications

Who This Book Is For

...
Endocrine Disrupters in Wastewater and Sludge Treatment Processes
Endocrine Disrupters in Wastewater and Sludge Treatment Processes
Although the hypothesis that environmental chemicals may exhibit endocrine disrupting effects is not new, being raised by Allen and Doisy in 1924, again by Dodds et al. in 1938, and in the 1950s by Burlington and Lindeman, the issue has seen a growing level of concern due to reports of increased incidences of...
A Basic English Grammar
A Basic English Grammar
Grammar reference in a clear, handy format.

A large-format book containing all the grammar from "A Basic English Grammar", and most of the exercises from "BEG: Exercises" together with some new ones, all integrated into the relevant grammar sections. The book has a key and is designed for self-study, resource centres
...

HTTP: The Definitive Guide
HTTP: The Definitive Guide
Behind every web transaction lies the Hypertext Transfer Protocol (HTTP) --- the language of web browsers and servers, of portals and search engines, of e-commerce and web services. Understanding HTTP is essential for practically all web-based programming, design, analysis, and administration.

While the basics of HTTP are elegantly
...
Developing Virtual Reality Applications: Foundations of Effective Design
Developing Virtual Reality Applications: Foundations of Effective Design
This book, Developing Virtual Reality Applications: Foundations of Effective Design, has been many years in the making. Our interest in virtual reality came about as an outgrowth of our interest in, and our day-to-day work in scientific visualization. In the early 1990s the state-of-the-art in computer graphics used for scientific visualization was...
Java 2 Bible
Java 2 Bible
Welcome to Java 2 Enterprise Edition Bible. This book, which is a follow−up to Java 2 Bible, is for readers
who wish to know more about the enterprise market. Enterprise programming is a hot topic these days, as
more and more companies decide they need an online presence to complement their existing...
©2021 LearnIT (support@pdfchm.net) - Privacy Policy