GPU code
#57
Doing that for GPU is relatively easy as its runtime compiled. The problem with doing that is building the CPU side. For the CPU the biggest problem is memory bandwidth so the one thing you don't want to do is generate code like this:
Code:
for(int i = 0; i < chunkSize; i++)
{
     a[i] = b[i] + c[i];
}
for(int i = 0; i < chunkSize; i++)
{
     d[i] = a[i] * e[i];
}
for(int i = 0; i < chunkSize; i++)
{
     f[i] = d[i] - 4;
}
Compilers don't optimise this sort of code and CPUs hate it. There are only two portable ways around this that I can think of. One is the monadic template code I was working on and there isn't a compiler out there can compile it at the moment. The templates are just to deep. The other is to use abstractions so large that the unfused loops aren't to much of a problem. That means rewriting the algorithms to avoid the basic calculations or using a interface that allows the basic calc's to be supplied as lambdas and openCL strings like this:
Code:
Array.Map([](int a, int b, int c){a + b * c}, "a + b * c");

Though I agree that duplication is not the way to go about. The problem is that short of implementing a C to C compiler or rewriting the generator in a custom DSL I can't see a portable way of avoiding duplication.
Reply
Thanks given by:


Messages In This Thread
GPU code - by worktycho - 06-05-2014, 08:18 PM
RE: GPU code - by xoft - 06-05-2014, 08:27 PM
RE: GPU code - by worktycho - 06-05-2014, 08:40 PM
RE: GPU code - by worktycho - 06-06-2014, 02:54 AM
RE: GPU code - by tigerw - 06-06-2014, 03:03 AM
RE: GPU code - by xoft - 06-06-2014, 03:25 AM
RE: GPU code - by worktycho - 06-06-2014, 03:38 AM
RE: GPU code - by xoft - 06-06-2014, 05:33 AM
RE: GPU code - by worktycho - 06-06-2014, 05:49 AM
RE: GPU code - by xoft - 06-09-2014, 05:39 AM
RE: GPU code - by worktycho - 06-09-2014, 06:05 AM
RE: GPU code - by xoft - 06-09-2014, 06:09 AM
RE: GPU code - by worktycho - 06-09-2014, 07:21 AM
RE: GPU code - by worktycho - 06-09-2014, 08:46 PM
RE: GPU code - by NiLSPACE - 06-12-2014, 02:00 AM
RE: GPU code - by xoft - 06-12-2014, 02:17 AM
RE: GPU code - by worktycho - 06-12-2014, 02:55 AM
RE: GPU code - by worktycho - 06-13-2014, 02:19 AM
RE: GPU code - by bearbin - 06-13-2014, 02:38 AM
RE: GPU code - by worktycho - 06-13-2014, 02:42 AM
RE: GPU code - by LO1ZB - 06-13-2014, 04:12 AM
RE: GPU code - by tigerw - 06-13-2014, 04:33 AM
RE: GPU code - by worktycho - 06-13-2014, 04:43 AM
RE: GPU code - by tigerw - 06-13-2014, 05:09 AM
RE: GPU code - by worktycho - 06-13-2014, 05:14 AM
RE: GPU code - by bearbin - 06-13-2014, 06:09 AM
RE: GPU code - by worktycho - 06-15-2014, 04:21 AM
RE: GPU code - by xoft - 06-15-2014, 04:39 AM
RE: GPU code - by worktycho - 06-15-2014, 04:43 AM
RE: GPU code - by xoft - 06-15-2014, 05:01 AM
RE: GPU code - by bearbin - 06-15-2014, 06:36 AM
RE: GPU code - by worktycho - 06-15-2014, 06:36 AM
RE: GPU code - by xoft - 06-15-2014, 06:42 AM
RE: GPU code - by worktycho - 06-15-2014, 06:55 AM
RE: GPU code - by xoft - 06-15-2014, 11:08 PM
RE: GPU code - by worktycho - 06-18-2014, 12:57 AM
RE: GPU code - by worktycho - 06-18-2014, 01:12 AM
RE: GPU code - by NiLSPACE - 06-18-2014, 01:17 AM
RE: GPU code - by worktycho - 06-18-2014, 01:21 AM
RE: GPU code - by NiLSPACE - 06-18-2014, 01:30 AM
RE: GPU code - by worktycho - 06-18-2014, 01:34 AM
RE: GPU code - by NiLSPACE - 06-18-2014, 01:35 AM
RE: GPU code - by worktycho - 06-18-2014, 01:36 AM
RE: GPU code - by worktycho - 06-18-2014, 05:27 AM
RE: GPU code - by bearbin - 06-18-2014, 05:41 AM
RE: GPU code - by worktycho - 06-18-2014, 06:03 AM
RE: GPU code - by worktycho - 06-19-2014, 05:39 AM
RE: GPU code - by LO1ZB - 06-19-2014, 09:12 AM
RE: GPU code - by NiLSPACE - 06-19-2014, 05:50 AM
RE: GPU code - by LO1ZB - 06-19-2014, 05:59 AM
RE: GPU code - by worktycho - 06-19-2014, 06:27 AM
RE: GPU code - by LO1ZB - 06-19-2014, 07:11 AM
RE: GPU code - by worktycho - 06-19-2014, 07:28 AM
RE: GPU code - by LO1ZB - 06-19-2014, 07:35 AM
RE: GPU code - by worktycho - 06-19-2014, 07:51 AM
RE: GPU code - by xoft - 06-19-2014, 04:33 PM
RE: GPU code - by worktycho - 06-19-2014, 10:07 PM
RE: GPU code - by xoft - 06-20-2014, 12:43 AM
RE: GPU code - by worktycho - 06-20-2014, 01:01 AM
RE: GPU code - by xoft - 06-20-2014, 01:06 AM
RE: GPU code - by worktycho - 06-20-2014, 01:10 AM
RE: GPU code - by xoft - 06-20-2014, 02:24 AM
RE: GPU code - by worktycho - 06-20-2014, 02:32 AM
RE: GPU code - by Schwertspize - 10-30-2015, 03:50 AM
RE: GPU code - by worktycho - 10-30-2015, 07:39 AM
RE: GPU code - by DiamondToaster - 10-30-2015, 10:04 AM



Users browsing this thread: 4 Guest(s)