On Wednesday, September 09, 2015 9:52:55 PM james wrote: > Jeremi Piotrowski <jeremi.piotrowski <at> gmail.com> writes: > > > No, and yes. Compilation is not affected in any way and runtime > > performance can only be improved _if_ this stuff is explicitly used within > > the code. > > Yes this is all new and a work in progress. I do not think it will be > gcc-6 that makes the difference in a few years. But folks should be aware > and look for codes that are accelerated via usage of GPU resources. > Remember this all started about hardware purchase and future benefits. > It's definitely not commodity usage atm. > > > > Meaning you would feel a difference in no less then 5 years when gcc-6 is > > widely used and accelerator support is not restricted to intel MIC and > > nvidia gpus. James is getting a bit ahead of himself calling this a > > "game changer" - yeaaaaah... not really right now. > > It's not as restricted as you indicate amd, intel, nividia and others like > arm (Mali and such) are working to support there hardware under the openacc > code extension now in gcc-5. Granted the more powerful your GPU resources > are the more they can contribute. This stuff use to only work with > vendor supplied compilers and sdks, now it's finally available in gcc, > albeit in it's infancy. Naturally it's going to take a while to > become mainstream useful; but that more like a year or 2, at most.
The value I see on that technology for desktop computing is that we get the GPUs for what they're made (graphics processing) but their resources go unused by most applications, not in buying powerful GPUs for the purpose of offloading general purpose code, if that's the goal you're better off investing in more general purpose cores that are more suited for the task. To trully take advantage of the GPU the actual algorithms need to be rewritten to use features like SIMD and other advanced parallelization features, most desktop workloads don't lend themselves for that kind of parallelization. That is why despite similar predictions about how OpenMP-like parallel models would obsolete the current threads model since they where first proposed, it hasn't happened yet. Even for the purpose of offloading general purpose code, it seems with all the limitations on OpanACC kernels few desktop applications can take advantage of it (and noticeably benefit from it) without major rewrites. Off the top of my head audio, video/graphics encoders, and a few other things that max out the cpu and can be broken into independent execution units. -- Fernando Rodriguez