1

我正在研究 OpenCL 发布函数( clRelease(objectName) ),有趣的是没有发布平台(更具体地说,cl_platform_id)对象的函数。有人知道原因吗?

4

1 回答 1

1

这是因为您使用常规malloc而不是clCreateObjectName()函数创建平台对象。所以你用一个常规的free. 我想是这样的,因为平台是主机资源。
请注意,设备对象也是如此。

编辑:澄清一下,感谢@chippies 的评论: clGetPlatformIDs() 函数有两个用途。首先查询系统中可用的平台数量。其次,用您决定使用的实际平台填充您为平台分配的内存空间。您将这些平台存储在您首先malloc的内存空间中。因此,当您完成这些平台时,您可以释放它们并释放malloc -ed的内存。

于 2013-07-18T07:41:04.203 回答