有限差分計算を実行するCUDAコードがあります。このコードは、TeslaM2090プロセッサでエラーなしで正常に機能します。同じコードを使用すると、TeslaT10プロセッサで多くのエラーが発生します。結果に多くのゼロが含まれています。
これら2つのアーキテクチャの違いと問題を解決する方法の解決策を知っている人はいますか
Tesla C1060(Tesla T10に基づく)はコンピューティング機能1.3です。TeslaM2090は、Fermi(2.0または2.1)に基づくはるかに新しいアーキテクチャです。2つの問題が発生する可能性があります。
ソースを2.0または2.1アーキテクチャ用に再コンパイルしますか?1.3アーキテクチャ用にコンパイルすると、2.0以上では機能しません。
CUDAプログラミングガイド3.1.2バイナリ互換性:
バイナリ互換性は、あるマイナーリビジョンから次のリビジョンへの互換性が保証されていますが、1つのマイナーリビジョンから前のリビジョンへの互換性、またはメジャーリビジョン間での互換性は保証されていません。
また、Fermiの動作は少し異なります。安全でないコードの中には、古いアーキテクチャでは正しく機能するものもありますが、Fermiではバグを検出します。それが疑われる場合は、「Fermi互換性ガイド」(CUDAツールキットで入手可能)をチェックして、プログラマーの観点からアーキテクチャー間の主な違いについて学ぶことができます。