17

CUDA は倍精度浮動小数点数をサポートしていますか?

また、同じ理由は何ですか?

4

4 に答える 4

16

GPU の計算能力が 1.3の場合、倍精度を実行できます。ただし、1.3 ハードウェアには MP ごとに 1 つの倍精度 FP ユニットしかなく、その MP 上のすべてのスレッドで共有する必要がありますが、8 つの単精度 FPU があるため、アクティブなスレッドごとに独自の単精度 FPU があることに注意してください。言い換えれば、倍精度では単精度よりも 8 倍悪いパフォーマンスになる可能性があります。

于 2010-05-12T08:24:47.577 に答える
11

ヒントとして:

倍精度を使用する場合は、GPU アーキテクチャをsm_13(GPU がサポートしている場合) に設定する必要があります。

そうしないと、すべての double が float に変換され、警告のみが表示されます (faya の投稿に見られるように)。(これが原因でエラーが発生すると非常に面倒です :-) )

フラグは次のとおりです。-arch=sm_13

于 2010-08-30T23:27:27.807 に答える
9

Paul Rのコメントに続いて、Compute Capability 2.0デバイス(別名Fermi)は、単精度の半分のパフォーマンスで、倍精度のサポートが大幅に改善されました。

このFermiホワイトペーパーには、新しいデバイスの2倍のパフォーマンスに関する詳細が記載されています。

于 2010-05-12T09:41:19.687 に答える
2

他の人が述べたように、古い CUDA カードはこのタイプをサポートしていませんdouble。ただし、古い GPU が提供する精度よりも高い精度が必要な場合は、 double-double手法に似たfloat-floatソリューションを使用できます。そのテクニックの詳細については、こちらをお読みください

もちろん、最近の GPU ではdouble-doubleを使用して doubleよりも大きな精度を達成することもできます。PowerPCdouble-doubleでも使用されますlong double

于 2013-08-02T07:46:34.340 に答える