More OpenCL progress, TODO: figure out templating issues.