簡體   English   中英

CUDA中的雙精度浮點

[英]Double precision floating point in CUDA

CUDA是否支持雙精度浮點數?

另外,同樣的原因是什么?

如果您的GPU具有計算能力1.3,那么您可以進行雙精度。 您應該知道,1.3硬件每個MP只有一個雙精度FP單元,必須由該MP上的所有線程共享,而有8個單精度FPU,因此每個活動線程都有自己的單精度FPU。 換句話說,您可能會發現雙精度性能比單精度高8倍。

作為提示:

如果要使用雙精度,則必須將GPU架構設置為sm_13 (如果您的GPU支持它)。

否則它仍然會將所有雙打轉換為浮點數並僅發出警告(如faya的帖子中所示)。 (如果你因為這個問題得到錯誤,非常煩人:-))

標志是: -arch=sm_13

根據Paul R的評論,Compute Capability 2.0設備(又名Fermi)具有更高的雙精度支持,性能僅為單精度的一半。

這篇Fermi白皮書詳細介紹了新設備的雙重性能。

正如其他人所說,舊的CUDA卡不支持double類型。 但是如果你想要比你的舊GPU提供的更精確,你可以使用類似於雙重雙重技術的float-float解決方案。 有關該技術的更多信息,請閱讀

當然,在現代GPU上,你也可以使用雙倍來實現大於兩倍的精度。 在PowerPC上, double-double也用於long double

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM