我有一个执行有限差分计算的 CUDA 代码。该代码在 Tesla M2090 处理器上运行良好,没有错误。相同的代码会导致 Tesla T10 处理器出现大量错误。我的结果中有很多零。
有谁知道这两种架构之间的区别以及如何解决问题的解决方案
Tesla C1060(基于 Tesla T10)的计算能力为 1.3 Tesla M2090 是更新的架构,基于 Fermi(2.0 或 2.1)可能存在两个问题:
您是否为 2.0 或 2.1 架构重新编译源代码?如果您为 1.3 架构编译,它将不适用于 >=2.0。
CUDA 编程指南 3.1.2 二进制兼容性:
从一个次要修订版到下一个修订版都保证了二进制兼容性,但不能保证从一个次要修订版到前一个修订版或跨主要修订版。
此外,费米的行为略有不同。一些不安全的代码可能在旧架构上正常工作,而在 Fermi 上它会捕获错误。如果您怀疑,您可以查看“Fermi 兼容性指南”(随 CUDA 工具包提供),从程序员的角度了解架构之间的主要差异。