私はopenCLについて何かを学んでいる最中であり、固有の問題ではないことを願っています(Googleからは何も見つかりませんでしたが..)。私が電話するとき:
clGetPlatformIDs
私のホスト プログラムから、「top」によって報告された「VIRT」のメモリ使用量が約 45 GB に突然増加していることがわかります。常駐メモリと共有メモリの値は目立って変化せず、ここで何を報告しているのか完全にはわかりません。ただし、openCL コマンドを実行する関数を繰り返し呼び出すと、openCL 呼び出しが CL_OUT_OF_HOST_MEMORY で失敗するまで、「VIRT」メモリ使用量に変動が見られます。私は 32 GB のメモリを持っているので、これは少しばかげているように思えます。
これは、画像スタックで最大強度の投影を実行する一部のコード (C++) で見られますが、Erik Smistad のブログから引用したコードでもまったく同じ動作が見られます。
http://www.thebigblob.com/getting-started-with-opencl-and-gpu-computing/
GDB を介してその例を実行すると、openCL 関数の最初の呼び出しは、私のコードと同じ効果があります。
cl_platform_id platform_id = NULL;
cl_uint ret_num_platforms;
cl_int ret = clGetPlatformIDs(1, &platform_id, &ret_num_platforms);
VIRT メモリが大幅に増加します (再び約 45 GB まで)。
私はこのようなものをどこにも見たことがないので、私のセットアップに何かおかしいものがあるのではないかと思います:
openSUSE 12.1 GeForce GTX 560Ti 1024 MB nvidia-computeG02-295.49-17.1.x86_64 しかし.. NVIDIA からダウンロードされた openSUSE 11.2 用の CUDA ツールキット。
ここで誰かが同様の問題を見て、何が起こっているのか、またはどこを見るべきかについて何らかの考えを持っていることを願っています. この問題とは別に、かなりうまく機能しているので、これを解決したいと思います。
ありがとう、
マーティン