C++ AMP


C++ Accelerated Massive Parallelism C++ AMP is a native programming model that contains elements that span the C++ programming language and its runtime library It provides an easy way to write programs that compile and execute on data-parallel hardware, such as graphics cards GPUs

C++ AMP is a library implemented on DirectX 11 and an open specification from Microsoft for implementing data parallelism directly in C++ It is intended to make programming GPUs easy for the developer by supporting a range of expertise from none in which case the system does its best to being more finely controllable, but still portable In Microsoft's implementation, code that cannot be run on GPUs will fall back onto one or more CPUs instead and use SSE instructionscitation needed The Microsoft implementation is included in Visual Studio 2012, including debugger and profiler support

The initial C++ AMP release from Microsoft requires at least Windows 7 or Windows Server 2008 R21 As C++ AMP is an open specification it is expected that in time implementations outside Microsoft will appear; one early example of this is Shevlin Park, Intel's experimental implementation of C++ AMP on Clang/LLVM and OpenCL2

On November 12, 2013 the HSA Foundation announced a C++ AMP compiler that outputs to OpenCL, Standard Portable Intermediate Representation SPIR, and HSA Intermediate Language HSAIL supporting the current C++ AMP specification3 The source is available at https://githubcom/RadeonOpenCompute/hcc

Contents

  • 1 Features
  • 2 See also
  • 3 References
  • 4 Further reading
  • 5 External links

Featuresedit

Microsoft added the restrictamp feature, which can be applied to any function including lambdas to declare that the function can be executed on a C++ AMP accelerator The compiler will automatically generate a compute kernel, saving the boilerplate of management and having to use a separate language The restrict keyword instructs the compiler to statically check that the function uses only those language features that are supported by most GPUs, for example, void myFunc restrictamp Microsoft or other implementer of the open C++ AMP spec could add other restrict specifiers for other purposes, including for purposes that are unrelated to C++ AMP

Beyond the new language feature, the rest of C++ AMP is available through the <amph> header file in the concurrency namespace The key C++ AMP classes are: array container for data on an accelerator, array_view wrapper for data, index N-dimensional point, extent N-dimensional size, accelerator computational resource, such as a GPU, on which to allocate memory and execute, and accelerator_view view of an accelerator There is also a global function, parallel_for_each, which you use to write a C++ AMP parallel loop

See alsoedit

  • OpenCL
  • CUDA
  • GPGPU
  • OpenACC
  • Vulkan
  • RaftLib

Referencesedit

  1. ^ C++ AMP One-page summary
  2. ^ Shevlin Park: Implementing C++ AMP with Clang/LLVM and OpenCL
  3. ^ "Bringing C++AMP Beyond Windows via CLANG and LLVM" Retrieved January 9, 2014 

Further readingedit

  • Kate Gregory, Ade Miller C++ Amp: Accelerated Massive Parallelism With Microsoft Visual C++ - Microsoft, 2012 - 326 pages - ISBN 9780735664739

External linksedit

  • C++ AMP : Language and Programming Model — Version 10 : August 2012
  • Parallel Programming in Native Code - C++ AMP Team Blog
  • http://hsafoundationcom/bringing-camp-beyond-windows-via-clang-llvm/ C++ AMP Support in CLANG and LLVM compiler
  • https://githubcom/RadeonOpenCompute/hcc C++ AMP Support in CLANG and LLVM compiler


C++ AMP Information about

C++ AMP

C++ AMP
C++ AMP

C++ AMP Information Video


C++ AMP viewing the topic.
C++ AMP what, C++ AMP who, C++ AMP explanation

There are excerpts from wikipedia on this article and video



Random Posts

Social Accounts

Facebook Twitter VK
Copyright © 2014. Search Engine