generating string for calculating offset within sqaure transpose kernels (genTransposeKernelBatched)
| 27 | { |
| 28 | // generating string for calculating offset within sqaure transpose kernels (genTransposeKernelBatched) |
| 29 | void OffsetCalc(std::stringstream& transKernel, const FFTKernelGenKeyParams& params, bool input) |
| 30 | { |
| 31 | const size_t *stride = input ? params.fft_inStride : params.fft_outStride; |
| 32 | std::string offset = input ? "iOffset" : "oOffset"; |
| 33 | |
| 34 | |
| 35 | clKernWrite(transKernel, 3) << "size_t " << offset << " = 0;" << std::endl; |
| 36 | clKernWrite(transKernel, 3) << "g_index = get_group_id(0);" << std::endl; |
| 37 | |
| 38 | for (size_t i = params.fft_DataDim - 2; i > 0; i--) |
| 39 | { |
| 40 | clKernWrite(transKernel, 3) << offset << " += (g_index/numGroupsY_" << i << ")*" << stride[i + 1] << ";" << std::endl; |
| 41 | clKernWrite(transKernel, 3) << "g_index = g_index % numGroupsY_" << i << ";" << std::endl; |
| 42 | } |
| 43 | |
| 44 | clKernWrite(transKernel, 3) << std::endl; |
| 45 | } |
| 46 | |
| 47 | // generating string for calculating offset within sqaure transpose kernels (genTransposeKernelLeadingDimensionBatched) |
| 48 | void OffsetCalcLeadingDimensionBatched(std::stringstream& transKernel, const FFTKernelGenKeyParams& params) |
no outgoing calls
no test coverage detected