私はCudaホスト機能を2回呼び出すCプログラムを実行しています。私はこれらの2つの呼び出しの間にデバイスメモリをクリーンアップしたいと思います。私はGPUデバイスのメモリをフラッシュする方法はありますか?私はテスラM2050のコンピューティング能力が2.0になっていますデバイスメモリflush cuda
答えて
メモリをゼロにしたい場合は、おそらくcudaMemset
がこれを行う最も簡単な方法でしょう。たとえば、次の値cudaMemset
がかかること
const int n = 10000000;
const int sz = sizeof(float) * n;
float *devicemem;
cudaMalloc((void **)&devicemem, sz);
kernel<<<...>>>(devicemem,....);
cudaMemset(devicemem, 0, sz); // zeros all the bytes in devicemem
kernel<<<...>>>(devicemem,....);
注バイト値であり、指定された範囲内のすべてのバイトは、単に標準C memset
ように、その値に設定されています。特定のワードの値がある場合は、独自のmemsetカーネルを作成して値を割り当てる必要があります。
16ビット値と32ビット値をmemsetするには、ドライバAPIの関数cuMemset *を呼び出すことができます。 CUDAランタイムアプリケーションからも、cuMemsetD16()またはcuMemsetD32() – ArchaeaSoftware
@talonmies:CUDAの皆さんのご協力ありがとうございます。直接私に連絡することができます(最初の姓私の会社ドットコムで)?あなたに質問があります(申し訳ありませんが、SOは私的なメッセージをサポートしていません)。 – harrism
スラストベクトルを使用している場合は、リセットするベクトルでthrust::fill()
を呼び出すことができます。
thrust::device_vector<FooType> fooVec(FooSize);
kernelCall1<<< x, y >>>(/* Pass fooVec here */);
// Reset memory of fooVec
thrust::fill(fooVec.begin(), fooVec.end(), FooDefaultValue);
kernelCall2<<< x, y >>>(/* Pass fooVec here */);
- 1. 構造体をデバイスメモリにコピーするCUDA
- 2. CUDAでは、デバイスポインタの配列をデバイスメモリにコピーする方法は?
- 3. cuda:デバイスメモリにグローバル変数を使用する
- 4. CUDA - 文字列内の文字列を検索するデバイスメモリ
- 5. "FLUSH TABLES、PRIVILEGES;" 「FLUSH TABLES; FLUSH PRIVILEGES;」と同じですか?
- 6. デバイスメモリに書き込むと、このCUDAプログラムがクラッシュするのはなぜですか?
- 7. QDataStreamとFlush
- 8. Cassandra MemTable Flush
- 9. WAMPとflush()
- 10. Angular2 flush services data
- 11. Hibernate flush()とCascade.PERSIST
- 12. php flush not working
- 13. JPA EntityTransaction flush
- 14. React-native:デバイスメモリにデータを保存
- 15. Hibernate:Refresh、Evict、Replicate and Flush
- 16. Symfony manyToOne on flushエラー
- 17. Boost.Asio iostream flush not working?
- 18. Symfony3/Doctrine 2 flushエラー
- 19. alter system flush shared_pool oracle
- 20. CUDA ptxas警告(エントリのスタックサイズ)
- 21. 変数とのsys.stdout.write()と.flush()
- 22. BitmapEncoder flush throw Args例外
- 23. Java ObjectOutputStream on Socket not flush()ing
- 24. 'NotNullConstraintViolationException' Symfony 3のflush()エラー
- 25. HibernateTemplate、bulkUpdateおよびflushモード
- 26. omp flushとcc-NUMAのアーキテクチャ
- 27. StackExchange.Redis内のFlush/Empty db
- 28. CUDAアクティブ経糸CUDAで
- 29. Cuda
- 30. CUDAの大きな入力の効率的なmemcpy?
"フラッシュ"または "クリーンアップ"の意味を少し正確にすることはできますか?メモリをゼロにするか、それとも他の既知の初期化されていない値に設定することを意味しますか、それとも別の意味ですか?あなたが割り当てたメモリだけを "フラッシュ"したいのですか、それともデバイス全体を意味していますか? – talonmies
私は、割り当てられたメモリをゼロにして、さまざまなカーネルによってそこに保存されていた値を "忘れる"ことを望んでいます。質問の漠然としたことを申し訳ありません。 – chemeng