multiformat_opencl_kernel.cl 1009 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2011 INRIA
  4. *
  5. * StarPU is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU Lesser General Public License as published by
  7. * the Free Software Foundation; either version 2.1 of the License, or (at
  8. * your option) any later version.
  9. *
  10. * StarPU is distributed in the hope that it will be useful, but
  11. * WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. *
  14. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  15. */
  16. #include "multiformat_types.h"
  17. __kernel void multiformat_opencl(__global struct struct_of_arrays *soa,
  18. unsigned int nx,
  19. __global int *err,
  20. int factor)
  21. {
  22. const int i = get_global_id(0);
  23. if (i >= nx)
  24. return;
  25. if (soa->x[i] != i * factor || soa->y[i] != i * factor)
  26. {
  27. *err = i;
  28. }
  29. else
  30. {
  31. soa->x[i] = -soa->x[i];
  32. soa->y[i] = -soa->y[i];
  33. }
  34. }