0

(Quick Sort)を使用してソートの問題を解決する必要があるため、コードを実行しようとすると多くのエラーが表示されますが、カーネルがそれ自体を2回呼び出すため、カーネルQuickSortを思い出すと大きなエラーが発生します。私のコードの下にあるこの問題を解決するにはどうすればよいので、誰でも私を助けることができます。

注: cuda でのプログラミングは初めてです。

__global__ void QuickSort(int p, int r,char *c)
{
    if (p < r)

    {   int q = Partition(p, r, c);
                QuickSort<<<5,5>>>(p, q-1,c); 
                QuickSort<<<5,5>>>(q+1, r,c);   

    }
}

4

1 に答える 1

1

お使いの GPU カード (計算能力 3.0) は、計算能力 3.5 以上を必要とする動的並列処理をサポートしていません。動的並列処理は、GPU で新しく割り当てられたリソースで再帰的な方法をサポートすることです。cuda 実装を使用したクイックソート アルゴリズムと動的並列処理の情報がここに示されています .

ただし、GPU では、Quicksort を実装する別の方法を採用することをお勧めします。上記のリンクの実装は、アルゴリズムのピーク パフォーマンスを示すのではなく、動的並列処理の利点を実証するためのものです。カードのパフォーマンスを向上させるには、このペーパー「GPU-Quicksort A Practical Quicksort Algorithm for Graphics Processors」を参照してください。

于 2012-12-29T14:35:48.107 に答える