2

私は、Tesla M2090 (Fermi) に基づくクラスターと、K20Xm (Kepler) に基づく別のクラスターを使用しています。Fermi クラスターで起動した私のカーネルは、Kepler よりも 2.5 倍高速です。このカーネルは、キー -arch=sm_35 --ptxas-options=-v を使用して Kepler クラスター用にコンパイルされました。結果は次のとおりです。

ptxas info    : Compiling entry function '_Z22_repack_one_thread_8_2ILb1EEviPtPPh' for 'sm_35'
ptxas info    : Function properties for _Z22_repack_one_thread_8_2ILb1EEviPtPPh
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 18 registers, 344 bytes cmem[0]

したがって、スレッドごとに 18 個のレジスタと 0 バイトの共有メモリを使用して 1024 個のスレッドを使用すると、マルチプロセッサの占有率が 100% になります。

Kepler に基づくノードのパフォーマンスが遅くなる理由として考えられるのは何ですか?

ありがとうございました。

ヴォイツェフ

アップデート

私のカーネル

template <bool nocheck>
__global__ void _repack_one_thread_8_2 (int size, word *input, byte **outputs)
{
  int idx = blockDim.x * blockIdx.x + threadIdx.x;

  if (nocheck || idx * 8 < size)
  {
    word *ptr = input + idx * 4;
    byte bytes[8] = {0,0,0,0,0,0,0,0};
    int i, j;

    for (i = 0; i < 4; i++, ptr++)
    {
      word b = *ptr;

      for (j = 0; j < 8; j++)
        bytes[j] |= (((b >> (j * 2)) & 3) << (i * 2));
    }

    for (i = 0; i < 8; i++)
      outputs[i][idx] = bytes[i];
  }
}

Kepler のコンパイル コマンド

nvcc  -arch=sm_35 --ptxas-options=-v  -c -O3 -I.. -o

Fermi のコンパイル コマンド

nvcc  -arch=sm_20 --ptxas-options=-v  -c -O3 -I.. -o
4

2 に答える 2

1

考えられる理由はたくさんあります。コードの詳細がなくても、私のコードが Fermi でより高速に実行されると単純に言うだけでは、あまり意味がありません。

カーネルが Fermi の場合でも実行されていない可能性があります ( -arch=sm_35Fermi GPU でコンパイルされたコードは実行されません)。これは確かに Fermi ケースの見栄えを良くします。

他にも多くの可能性があります。ケプラー チューニング ガイドでは、調査可能な多くの領域について説明しています。

また、コードで適切な cuda エラー チェックcuda-memcheckを実行し、両方のケースでコードを実行して、カーネル実行の問題に関する追加情報を取得する必要があります。

于 2013-11-13T06:57:57.140 に答える
-1

フェルミとケプラーの細かい違いが思い浮かびません。Kepler は、Fermi よりもラップ内の計算ユニットが少ない場合がありますが、より多くのラップを使用できます。作業後に確認いたします。

そして、1024 スレッドは比較するには少なすぎるようです。

1024*1024 スレッドが利用可能かどうかを確認できますか。

それから、私はいくつかの検索を行います。K20Xm は XSM が少なく (M2090 では 14 VS 16)、MAD 電力が少なく (384 VS 1332.2 GFLOP)、クロック レートが少ない (732 VS 1301 MHz) ようです。ところで、1つのXSMを2つのSMとして扱うことはできますか?

奇妙に思える..

データの提供元: wikifloat よりも遅い整数、ホワイト ペーパー

于 2013-11-13T07:12:51.710 に答える