Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- kernel void Worker(global const float *inputPlanes, global const float *weights, global float *outputPlanes,
- uint planesCount)
- {
- uint x = get_global_id(0);
- uint y = get_global_id(1);
- uint width = get_global_size(0);
- uint height = get_global_size(1);
- float m_sum = 0;
- uint curPixelCoord = y * width + x;
- for (int z = 0; z < planesCount; ++z)
- {
- for (int i = -1; i < 2; ++i)
- {
- uint pixelCoordY = max(y + i, (uint)0);
- pixelCoordY = min(pixelCoordY, height - 1);
- for (int j = -1; j < 2; ++j)
- {
- uint pixelCoordX = max(x + j, (uint)0);
- pixelCoordX = min(pixelCoordX, width - 1);
- uint pixelCoord = z * width * height + pixelCoordY * width + pixelCoordX;
- m_sum += weights[z * 9 + (i + 1) * 3 + (j + 1)] * inputPlanes[pixelCoord];
- }
- }
- }
- outputPlanes[curPixelCoord] = m_sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement