Introduction to C++ AMP Accelerated Massive Parallelism It is time to start taking advantage of the computing power of GPUs… Marc Grégoire Software Architect marc.gregoire@nuonsoft. com http://www.nuonsoft.com / http://www.nuonsoft.com /blog January 23 rd 2012 Disclaimer: This presentation was made based on the released Visual C++ 11 Preview
24
Embed
Introduction to C++ AMP A ccelerated M assive P arallelism
Introduction to C++ AMP A ccelerated M assive P arallelism. Marc Grégoire Software Architect [email protected] http://www.nuonsoft.com / http://www.nuonsoft.com/blog /. Disclaimer: This presentation was made based on the released Visual C++ 11 Preview. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Introduction to C++ AMPAccelerated Massive Parallelism
It is time to start taking advantage of the computing power of GPUs…
Marc GrégoireSoftware [email protected] http://www.nuonsoft.com/ http://www.nuonsoft.com/blog/ January 23rd
2012
Disclaimer: This presentation was made based on the released Visual C++ 11 Preview
GLAME@lab: An M-script API for linear Algebra operations on
GPU
20X
Ultrasound medical imaging
for cancer diagnostics
24X
Highly optimized object oriented
molecular dynamics
30X
Cmatch exact string matching to find similar
proteins and gene sequences
17X
source
CPUs vs GPUs today
CPU Low memory bandwidth Higher power consumption Medium level of parallelism Deep execution pipelines Random accesses Supports general code Mainstream programming
GPU High memory bandwidth Lower power consumption High level of parallelism Shallow execution
Several restrictions apply to the code in the lambda: Can only call other restrict(direct3d) functions Must capture everything by value, except concurrency::array
objects No recursion, no virtual functions, no pointers to functions, no
pointers to pointers, no goto, no try/catch/throw statements, no global variables, no static variables, no dynamic_cast, no typeid, no asm, no varargs, …
restrict(direct3d), see http://blogs.msdn.com/b/nativeconcurrency/archive/2011/09/05/restrict-a-key-new-language-feature-introduced-with-c-amp.aspx + MSDN