Spaces:
Runtime error
Runtime error
File size: 872 Bytes
2cc8629 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// Copyright (C) 2018-2022 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
__kernel void ShuffleChannel(
__global const half *restrict src_data,
__global half *restrict dst_data,
int C,
int H,
int W,
int G)
{
int c = get_global_id(0);
if (c >= C) return;
int CX = C / G;
int CY = G;
int cy = c % G;
int cx = c / G;
__global const half8 *src_line =
((__global const half8 *)(src_data + cy * CX * H * W + cx * H * W));
__global half8 *dst_line = ((__global half8 *)(dst_data + cx * CY * H * W + cy * H * W));
for (int i = 0; i < W * H / 8; i++) {
dst_line[i] = src_line[i];
}
for (int i = W * H / 8 * 8; i < W * H; i++) {
dst_data[cx * CY * H * W + cy * H * W + i] = src_data[cy * CX * H * W + cx * H * W + i];
}
}
|