2016-11-24 5 views

答えて

1

と仮定すると、ハードウェアは、3メモリチャネルを有し、複素数は、FP32型で

インターリーブモード:

complex number: C0   C1   C2   C3   C4 
bytes:   8   8   8   8   8 
memory channel: 01201201 20120120 12012012 01201201 20120120 
channel-0 usage: 13 times 
channel-1 usage: 13 times 
channel-2 usage: 13 times 

スプリットモード:これ

real part:  r0   r1   r2   r3   r4 
bytes:   4   4   4   4   4 
memory channel:0120  1201  2012  0120  1201 
imaginary has same pattern 
channel-0 usage: 2x7 = 14 times 
channel-1 usage: 2x7 = 14 times 
channel-2 usage: 2x6 = 12 times 

、5つの複素数を読み取ります3つのメモリチャネルを使用するスプリットモードでは、チャネルアクセスの1つを準最適にします。

は今、私たちはいくつかのFFT演算を行うことのようだけでも(または奇数のみ)インデックス付き複素数を読んでいると仮定することができます

、インターリーブモード:

complex number: C0   x C2   x   C4 
bytes:   8   x 8   x   8 
memory channel: 01201201 x 12012012 x 20120120 
channel-0 usage: 8 times 
channel-1 usage: 8 times 
channel-2 usage: 8 times 

スプリットモード:

real part:  r0   x   r2  x   r4 
bytes:   4   x   4  x   4 
memory channel:0120  x  2012  x  1201 
imaginary has same pattern 
channel-0 usage: 2x4 = 8 times 
channel-1 usage: 2x4 = 8 times 
channel-2 usage: 2x4 = 8 times 

だから、3チャンネルのハードウェアはあまり影響を受けません。我々は戻って、FFTの例になるまでそう、彼らは同じに見える

real part:  r0   r1   r2   r3   r4 
bytes:   4   4   4   4   4 
memory channel:
imaginary has same pattern 
channel-0 usage: 2x3 = 6 times 
channel-1 usage: 2x3 = 6 times 
channel-2 usage: 2x3 = 6 times 
channel-3 usage: 2x3 = 6 times 
channel-4 usage: 2x2 = 4 times 
channel-5 usage: 2x2 = 4 times 
channel-6 usage: 2x2 = 4 times 
channel-7 usage: 2x2 = 4 times 
half channels are used %50 more times than other half! %75 bandwidth 

、インターリーブモード:

complex number: C0   C1   C2   C3   C4 
bytes:   8   8   8   8   8 
memory channel:
channel-0 usage: 1 times 
channel-1 usage: 1 times 
channel-2 usage: 1 times 
channel-3 usage: 1 times 
channel-4 usage: 1 times 
channel-5 usage: 1 times 
channel-6 usage: 1 times 
channel-7 usage: 1 times 
%100 bandwidth 

スプリットモード

今度は、8チャネルメモリアクセスを見てみましょうアクセスが奇数であるか、アクセスのみの場合:

インターリーブモード:

complex number: C0   C1   C2   C3   C4 
bytes:   8   x   8   x   8 
memory channel:x  x  
channel-0 usage: 3 times 
channel-1 usage: 3 times 
channel-2 usage: 3 times 
channel-3 usage: 3 times 
channel-4 usage: 3 times 
channel-5 usage: 3 times 
channel-6 usage: 3 times 
channel-7 usage: 3 times 
%100 bandwidth 

インターリーブモードはまだ効率的です。

スプリットモード:

real part:  r0   r1   r2   r3   r4 
bytes:   4   x   4   x   4 
memory channel:x  x  
imaginary has same pattern 
channel-0 usage: 2x5 = 10 times 
channel-1 usage: 2x5 = 10 times 
channel-2 usage: 2x5 = 10 times 
channel-3 usage: 2x5 = 10 times 
channel 4-7 not used! %50 bandiwdth 

非連続スプリットモードを使用して、アイテムの一部のみにアクセスするときにいくつかの場面でスプリットモードは、50%ほど遅いことができます。

偶数アクセスと完全アクセスのベンチマークで、どのタイプを使用するかを知る必要があります。

関連する問題