2

GPU 実装では、そのパフォーマンスを GLOPS で見積もる必要があります。コードは非常に基本的なものですが、私の問題は、操作「sqrt」または「mad」に 1 かそれ以上の FLOPS を与える必要があるかどうかです。

さらに、この GPU の理論上の最大値は 500GFLOPS ですが、これらの操作で 1 FLOP と言うと、コードで 50 GFLOPS が得られます。パーセンテージで表すと10%になります。スピードアップに関しては、100倍になります。ですから素晴らしいと思いますが、10% は利回りが少し低いように思えますが、どう思いますか?

ありがとう

4

1 に答える 1

1

正解はおそらく「場合による」です。

異なるプラットフォームで実行されるコード間の純粋な比較パフォーマンスのために、通常、超越、sqrt、mad を 1 つの操作として数えます。このような状況では、重要なパフォーマンス メトリックは、コードの実行にかかる時間です。他の方法で比較を行うことはほとんど不可能です。リタイアするのに 25 サイクルかかる超越のハードウェア命令の「FLOP」カウントと、同様に 25 サイクルかかる fmad 命令の数学ライブラリ生成スタンザを比較するにはどうすればよいでしょうか。完了するまでのサイクル?このような場合、命令または FLOP のカウントは無意味になり、見た目の FLOP カウントが異なるにもかかわらず、どちらも同じクロック サイクル数で目的の操作を実行します。

一方、特定のハードウェアでコードの一部をプロファイリングおよびパフォーマンス チューニングする場合は、FLOP カウントが有用なメトリックになる場合があります。GPU では、特定のコードのパフォーマンスのボトルネックがどこにあるかを判断するために、FLOP または IOP の数とメモリ帯域幅の使用率を確認するのが通常です。これらの数値を取得すると、有用な最適化の方向性が示される場合があります。

于 2011-05-09T06:58:20.067 に答える