4

CUDA ドキュメント、特にセクション デバイス管理の CUDA ランタイム API ではcudaSetDevice、このように書かれています。

cudaMallocHost() または cudaHostAlloc() または cudaHostRegister() を使用してこのホスト スレッドから割り当てられたホスト メモリには、デバイスに関連付けられた有効期間があります。

私の質問はここにあります:cudaHostAlloc現在のデバイスである dev 0 を使用してホスト メモリを割り当て、そのホスト メモリを dev 1 のデバイス メモリに転送すると、制限や問題はありますか?

4

1 に答える 1

3

「従来の」CUDA メモリ モデルでは、マップされたホスト メモリ割り当てを複数のコンテキストでcudaHostAlloc()使用する場合は、フラグを使用してメモリを割り当てる必要がありますcudaHostAllocPortable。これにより、メモリはすべてのコンテキストで移植可能になります。

統一アドレッシングをサポートするプラットフォームで実行している場合、そのメモリcudaMemcpyDefaultに対する操作で使用する限り、それについて心配する必要はありません。cudaMemcpy()

于 2013-02-07T09:59:28.400 に答える