1

OpenCL のリリース関数 ( clRelease(objectName) ) を勉強していたのですが、Platform (より具体的には cl_platform_id) オブジェクトをリリースする関数がなかったことが興味深かったです。理由を知っている人はいますか?

4

1 に答える 1

1

mallocこれは、関数ではなく通常のプラットフォーム オブジェクトを作成するためですclCreateObjectName()。したがって、通常の でそれらをリリースしますfree。プラットフォームはホスト リソースなので、そのようなものだと思います。
デバイス オブジェクトについても同様であることに注意してください。

編集: @chippies のコメントのおかげで、少し明確にするために: clGetPlatformIDs() 関数には 2 つの用途があります。最初に、システムで使用可能なプラットフォームの数を照会します。次に、プラットフォームに割り当てたメモリ領域を、使用することにした実際のプラットフォームで埋めます。これらのプラットフォームは、最初にmallocするメモリ空間に格納します。したがって、これらのプラットフォームを使い終わったら、 mallocしたメモリを解放して解放します。

于 2013-07-18T07:41:04.203 に答える