Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. kernel void Worker(global const float *inputPlanes, global const float *weights, global float *outputPlanes,
  2.     uint planesCount)
  3. {
  4.     uint x = get_global_id(0);
  5.     uint y = get_global_id(1);
  6.     uint width = get_global_size(0);
  7.     uint height = get_global_size(1);
  8.     float m_sum = 0;
  9.     uint curPixelCoord = y * width + x;
  10.     for (int z = 0; z < planesCount; ++z)
  11.     {
  12.         for (int i = -1; i < 2; ++i)
  13.         {
  14.             uint pixelCoordY = max(y + i, (uint)0);
  15.             pixelCoordY = min(pixelCoordY, height - 1);
  16.             for (int j = -1; j < 2; ++j)
  17.             {
  18.                 uint pixelCoordX = max(x + j, (uint)0);
  19.                 pixelCoordX = min(pixelCoordX, width - 1);
  20.                 uint pixelCoord = z * width * height + pixelCoordY * width + pixelCoordX;
  21.                 m_sum += weights[z * 9 + (i + 1) * 3 + (j + 1)] * inputPlanes[pixelCoord];
  22.             }
  23.         }
  24.     }
  25.     outputPlanes[curPixelCoord] = m_sum;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement