Parallel processing 如何在cuda中并行化dct(for循环)

Parallel processing 如何在cuda中并行化dct(for循环),parallel-processing,cuda,dct,Parallel Processing,Cuda,Dct,如何并行化cuda中的四个嵌套for循环 对于dct,我有四个嵌套的for循环,我希望我的dct函数是cuda代码 for(y = 0; y < HEIGHT; y+=BLOCK_H) { for(x = 0; x < WIDTH; x+= BLOCK_W) { for(i = 0; i < BLOCK_H; i++) { for(j = 0; j < BLOCK_W; j++) { block_in[i][j] = cur_frame[(x+j)+(WIDTH*(y+i

如何并行化cuda中的四个嵌套for循环
对于dct,我有四个嵌套的for循环,我希望我的dct函数是cuda代码

for(y = 0; y < HEIGHT; y+=BLOCK_H) {
for(x = 0; x < WIDTH; x+= BLOCK_W) {
for(i = 0; i < BLOCK_H; i++) {
for(j = 0; j < BLOCK_W; j++) {
block_in[i][j] = cur_frame[(x+j)+(WIDTH*(y+i))];
}
}
}
}
(y=0;y{ 对于(x=0;x有一份来自Nvidia、Obukov和Kharlamov的白皮书:该白皮书中包含dct8x8。您应该同时考虑这两个方面。

考虑数据,而不是循环。阅读教程。一个关于如何并行嵌套循环的问题。另一个。我读到了,但我不明白他们是如何在C子程序ctvector((float*)fSrc+(i+k)*跨步+j,1,fDst+(i+k)*跨步+j,1)中完成这一行的;这在Cuda int OffsThreadInRow=threadIdx.y*块大小+threadIdx.x;int offstreamincol=threadIdx.z*块大小;src+=FMUL(砌块IDX.y*路缘石砌块高度+偏移螺纹长度、ImgStride)+砌块IDX.x*路缘石砌块宽度+偏移螺纹长度;dst+=FMUL(块体IDX.y*整块石高度+偏移线间距,ImgStride)+块体IDX.x*整块石宽度+偏移线间距;浮动*bl_ptr=挡块+偏置螺纹进线*KER2_SMEMBLOCK_跨步+偏置螺纹进线;