找到最小值需要在GPU上进行过多的内存操作

时间:2017-04-21 05:18:20

标签: c++ gpgpu openacc

我有9个2D数组,我想计算8个数组中每个元素的最小值,并将它们存储在第9个数组中。我已经写了一段代码,但它需要大量的内存操作。 我的GPU是Nvidia GTX 1060,我正在使用OpenACC加速。 你能帮我解决一下如何优化这段代码,以便用更少的操作找到最小值吗? 这是我的代码

    for (int i=1; i<(height); i++)
{
    for (int j=0; j <( width); j++)

    {
        ( thresh_array[i-1][j] < top_left[i-1][j])? :  thresh_array[i-1][j] = top_left[i-1][j];
        ( thresh_array[i-1][j] < top[i-1][j])? :  thresh_array[i-1][j] = top[i-1][j];
        ( thresh_array[i-1][j] < top_right[i-1][j])? :  thresh_array[i-1][j] = top_right[i-1][j];
        ( thresh_array[i-1][j] <left[i-1][j])? :  thresh_array[i-1][j] = left[i-1][j];
        ( thresh_array[i-1][j] < right[i-1][j])? :  thresh_array[i-1][j] = right[i-1][j];
        ( thresh_array[i-1][j] < bot[i-1][j])? :  thresh_array[i-1][j] = bot[i-1][j];
        ( thresh_array[i-1][j] < bot_left[i-1][j])? :  thresh_array[i-1][j] = bot_left[i-1][j];
        ( thresh_array[i-1][j] <bot_right[i-1][j])? :  thresh_array[i-1][j] = bot_right[i-1][j];
    }
}

PS。我是一般的编程新手。

0 个答案:

没有答案