gpt4 book ai didi

cuda - "-arch sm_13"和 "-arch sm_20"有什么区别

转载 作者:行者123 更新时间:2023-12-03 13:28:04 28 4
gpt4 key购买 nike

我的应用程序需要 double 计算。根据我在谷歌上找到的内容,我应该添加一个标志“-arch sm_13”或“-arch sm_20”。

Q1:“-arch sm_13”和“-arch sm_20”有什么区别?

Q2:“-arch sm_13”和“-arch sm_20”在性能上有区别吗?

我的显卡:GTX 570。

谢谢。

最佳答案

SM 代表 Streaming Multiprocessor,数字表示架构支持的功能。您可以在 CUDA Programming Guide 中找到很好的描述。第 3.1.2-3.1.4 节,您可以在附录 F 的表格中看到与每个架构相关的特性。

来自 NVCC manual (也包含在工具包中):

In order to allow for architectural evolution, NVIDIA GPUs are released in different generations. New generations introduce major improvements in functionality and/or chip architecture, while GPU models within the same generation show minor configuration differences that „moderately‟ affect functionality, performance, or both.



您的 GPU 具有 Compute Capability 2.0,因此您应该使用 sm_20 使编译器能够使用旧架构中不可用的功能。如果你想要向后兼容,你也可以针对 sm_13(或 sm_1x),查看上面的文档了解如何使用 -gencode nvcc 的选项,可在一次调用 nvcc 时针对多个体系结构。

关于性能,需要注意的一件事是 sm_1x 不支持 IEEE754 浮点,因此如果您以 sm_13 为目标并在具有 Compute Capability 2.0 或更高版本的设备上运行,那么您可能会发现浮点运行得更快,因为它使用的是 less准确的路径。您也可以通过使用 -ftz=true -prec-div=false -prec-sqrt=false 来强制使用 sm_20 或更高版本的不太准确的路径。有关此选项的更多信息,请参阅 CUDA 编程指南中的第 5.4.1 节。

关于cuda - "-arch sm_13"和 "-arch sm_20"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330527/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com