CppCon 2016 has ended
Back To Schedule
Tuesday, September 20 • 9:00am - 10:00am
SPMD Programming Using C++ and ISPC

Log in to save this to your schedule, view media, leave feedback and see who's attending!

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++.

avatar for Nicolas Guillemot

Nicolas Guillemot

MSc Student, University of Victoria
Nicolas is a master's student at the University of Victoria, where he searches for solutions to the game industry's real-time rendering problems at the intersection of software and hardware. In the past, Nicolas has worked at Electronic Arts, and in Intel's Visual and Parallel Computing... Read More →

Tuesday September 20, 2016 9:00am - 10:00am PDT
Frey (Room 406) Meydenbauer Center