3

CUDAに関するこのドブ博士の記事を読んでいます

私のシステムでは、グローバルメモリ帯域幅は60GB/秒をわずかに超えています。これは、この帯域幅が128のハードウェアスレッドにサービスを提供する必要があると考えるまでは優れています。各スレッドは、多数の浮動小数点演算を提供できます。32ビット浮動小数点値は4バイトを占めるため、このハードウェア上のグローバルメモリ帯域幅が制限されたアプリケーションは、約15 GF / s、または利用可能なパフォーマンス機能のごく一部しか提供できません。

質問:GF / sは、1秒あたりのギガフロップスを意味しますか?

4

3 に答える 3

2

1 秒あたりのギガ フロップはそれでしょう!

于 2011-10-11T20:29:26.600 に答える
1

GF/s または GFLOPS は GigaFlops または 10^9 フロート操作/秒です。(GF/s は、GigaFLOP/S = GigaFLOPS の少し変わった省略形です。たとえば、こちらの「Gigaflops (GF/s) = 10^9 flops」またはこちらの「gigaflops per second (GF/s)」を参照してください)。

そして、GF/s が GFLOPS/s ではない (加速度ではない) ことは明らかです。

CPU と GPU でのフローティング操作は通常、異なる方法でカウントされることを覚えておく必要があります。ほとんどの CPU では、通常、64 ビット浮動小数点形式の操作がカウントされます。GPU の場合 - 32 ビット。GPU は 32 ビット浮動小数点ではるかに優れたパフォーマンスを発揮するためです。

どのような種類の操作がカウントされますか? 足し算、引き算、掛け算です。データの読み込みと保存はカウントされません。ただし、メモリとの間でデータを取得するには、データのロードと保存が必要であり、実際のアプリケーションで達成される FLOPS が制限される場合があります (引用した記事では、CPU/GPU が多くの FLOPS を提供できる場合、このケースについて「メモリ帯域幅が制限されたアプリケーション」と述べています)。しかし、メモリは必要なデータをそれほど速く読み取ることができません)

一部のチップまたはコンピューターで FLOPS はどのようにカウントされますか? 2 つの異なるメトリックがあり、1 つはこのチップの FLOPS の理論上の上限です。これは、コア数、チップの頻度、および CPU ティックごとの浮動小数点演算を乗算することによってカウントされます (Core2 では 4、Sandy Bridge CPU では 8 です)。

その他のメトリックは、実世界のフロップのようなもので、LINPACK ベンチマークを実行することによってカウントされます (巨大な線形連立方程式を解く)。このベンチマークは、行列と行列の乗算を多用しており、実際のフロップの近似値のようなものです。スーパーコンピューターの上位 500 は、LINPACK のベンチマークである HPL の並列バージョンによって測定されます。単一の CPU の場合、linpack は理論上のフロップの最大 90 ~ 95% を持つことができ、巨大なクラスターの場合は 50 ~ 85% の範囲になります。

于 2011-10-11T20:35:31.987 に答える
-1

この場合の GF は GigaFLOPS ですが、FLOPS は「1 秒あたりの浮動小数点演算」です。作者は F/s が「毎秒毎秒の浮動小数点演算」であることを意味していないことを確信しているので、GF/s は実際にはエラーです。(実行時のパフォーマンスを向上させるコンピューターについて話しているのでない限り、私は推測します) 著者はおそらく GFLOPS を意味します。

于 2011-10-11T20:43:13.323 に答える