デスクトップ上の CUDA でアルゴリズムを開発し、後でサーバー上で実行する必要があります。
最新のローエンド カード (コンピュート機能 2.1 など) を使用してすべての優れたデバッグおよびプロファイリング機能を取得し、ハイエンド カード (同じ cc) を使用してサーバーにコードを配置しても問題ありませんか? スレッド/メッシュのサイズを調整する必要があるだけですか、それともすべてを変更しますか?
例: 私はQuadro 600で開発し、サーバーはTesla C2075を使用します。
デスクトップ上の CUDA でアルゴリズムを開発し、後でサーバー上で実行する必要があります。
最新のローエンド カード (コンピュート機能 2.1 など) を使用してすべての優れたデバッグおよびプロファイリング機能を取得し、ハイエンド カード (同じ cc) を使用してサーバーにコードを配置しても問題ありませんか? スレッド/メッシュのサイズを調整する必要があるだけですか、それともすべてを変更しますか?
例: 私はQuadro 600で開発し、サーバーはTesla C2075を使用します。
いくつかの問題があります。たとえば、メモリ帯域幅が異なる(Quadroで25.6 GiB / s、Teslaで148 GiB / s、リンクによる)、またはSMの数が異なる(ドライバーがSM間でブロックを異なる方法で分散する可能性がある)。ただし、ほとんどの場合、このような小さな違いはあまり重要ではありません。
サーバーに複数の GPU がインストールされている場合、コードを変更してマルチ GPU で実行し、サーバーの能力を最大限に活用する必要があります。同じコードは正常に実行されますが、1 枚のカードで実行されます。
サーバーにカードが 1 つしかない場合。一般的な経験則では、ドライバーが SM 間で負荷を自動的に分散するため、より強力な GPU の能力を活用するためにコード行を変更する必要はありません。