CppCon 2016: Nicolas Guillemot “SPMD Programming Using C++ and ISPC'

preview_player
Показать описание


Love writing blazing fast SIMD code on CPU? Tired of dealing with ugly intrinsics and clumsy SIMD float4 classes? Has your compiler's auto-vectorization ever stopped working, causing unpredictable performance regressions? Wish you could write efficient SIMD code without locking yourself into a specific instruction set, while still taking advantage of a range of hardware from old desktops to new Intel Xeon Phi rigs?

The solution is here, and it's called SPMD!

SPMD is an elegant parallel programming technique for writing SIMD code, which automates the tedious constructions normally required when using intrinsics or assembly, breaks free of ties to specific instruction sets, and still allows you to work at the granularity of SIMD vectors when necessary.

This talk will first review the underlying theory of SPMD, then introduce the ISPC programming language as an example of what SPMD code looks like. We'll also look at how SPMD is used on GPUs like AMD's GCN. Finally, we will see how SPMD code can be written in unextended C++.

Nicolas Guillemot
MSc Student, University of Victoria
Hi, nice to meet you! My name is Nicolas, and my main interests are game development, real-time rendering, graphics hardware and graphics APIs. I tackle problems at the intersection of designing efficient computer algorithms and leveraging the strengths of hardware. My favorite thing about C++ is that it lets me write detailed systems-level code and high-level GUI code together in a single robust language.


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

If you have questions/comments/hate mail, reply to this comment and hopefully Youtube will notify me so I can reply.

nlguillemot
Автор

Great introduction to GCN assembly basics, thanks!

Max-wkcg