This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
View analytic
Tuesday, September 20 • 9:00am - 10:00am
SPMD Programming Using C++ and ISPC

Log in to save this to your schedule 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
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.

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

Attendees (30)