OpenCL のリリース関数 ( clRelease(objectName) ) を勉強していたのですが、Platform (より具体的には cl_platform_id) オブジェクトをリリースする関数がなかったことが興味深かったです。理由を知っている人はいますか?
質問する
494 次
1 に答える
1
malloc
これは、関数ではなく通常のプラットフォーム オブジェクトを作成するためですclCreateObjectName()
。したがって、通常の でそれらをリリースしますfree
。プラットフォームはホスト リソースなので、そのようなものだと思います。
デバイス オブジェクトについても同様であることに注意してください。
編集: @chippies のコメントのおかげで、少し明確にするために: clGetPlatformIDs() 関数には 2 つの用途があります。最初に、システムで使用可能なプラットフォームの数を照会します。次に、プラットフォームに割り当てたメモリ領域を、使用することにした実際のプラットフォームで埋めます。これらのプラットフォームは、最初にmallocするメモリ空間に格納します。したがって、これらのプラットフォームを使い終わったら、 mallocしたメモリを解放して解放します。
于 2013-07-18T07:41:04.203 に答える