C++/Cで現在のGPUメモリ使用量を確認する信頼できる方法を探しています。私は、次の方法のような使い方を得るための多くの方法を発見した:GPUのメモリ使用量をプログラマ的に取得
- 直接
- DXDIAG
- WMI
- DXGI
- D3D9
描くこれらの方法は、(十分に正確ではありません大部分は100メガバイト)。私はnvapi.h
を試しましたが、私はメモリを照会するのに使える何も見ませんでした。私は上記の方法だけが唯一のオプションだと思っていましたが、OpenCLが私の580GTXにほぼ完全に負荷をかけていても、私はGPU-Z
というツールを使って正確なメモリの読みをもっとも近いメガバイトにしました。私は、OpenCLが戻りコードObject_Allocation fail
を返す前に、私は私のメモリ使用量のピーク時に数メガバイトを割り当てることで確認できます。
GPU-Zからの輸入を見て、私はより興味深い他の何も見えません。
KERNEL32.DLL:LoadLibraryA、GetProcAddressが、VirtualAllocの、VirtualFree
私の推測では、LoadLibraryA
を使用する必要がありますGPUのメモリとセンサーに問い合わせるためのDLLをロードする。このDLLが存在する場合、それはどこに住んでいますか?可能であれば、AMDとNVidiaのソリューションを探しています(異なるAPIを使用しても問題ありません)。
を「私の百メガバイトオフ最も」 - あなたが使用している既知の適切な参照は何ですか? –
私はGPU-Zを私のリファレンスとして使用しています。 – roboto1986
そして、GPU-Zが他の人たちが間違っているところに自信を持てるのは何ですか? –