-1

MultiGPUでアトミック交換ソートアルゴリズムをどのように実装できますか? 参考文献はありますか??

4

1 に答える 1

0

この質問に答えるのに役立つガイドラインとして、使用できるアルゴリズムを指摘していただけると助かります。

だから、私は次のアルゴリズムを引っ張ってきました: http://www.codingunit.com/exchange-sort-algorithm

基本的なアルゴリズムは次のとおりです。

int main(void)
{
    int array[5];       // An array of integers.
    int length = 5;     // Lenght of the array.
    int i, j;
    int temp;

        //Some input
    for (i = 0; i < 5; i++)
    {
        cout << "Enter a number: ";
        cin >> array[i];
    }

    //Algorithm
    for(i = 0; i < (length -1); i++)
    {
        for (j=(i + 1); j < length; j++)
        {
            if (array[i] < array[j])
            {
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
    }
    //Some output
    for (i = 0; i < 5; i++)
    {
        cout << array[i] << endl;
    }
}

役立つソース コードについては、このページを参照してください。

http://www.bealto.com/gpu-sorting.html

しかし、OpenCL と上記の式を使用する場合は、次のようにしたい場合があります。

各カードへの接続を開きます。

次に、それらが外側のループを持っているところで、それらのそれぞれを、おそらくラウンドロビンで各カードに送信します。

その後、1 つの GPU で最終ソートを実行して終了する必要がありますが、別のアルゴリズムを使用することをお勧めします。このアルゴリズムはシングルスレッド CPU で最適です。

于 2014-04-24T02:23:34.490 に答える