我正在研究OpenCL发布函数(clRelease(objectName)),对我来说很有趣的是没有函数来发布Platform(更具体地说,cl_platform_id)对象。 有人知道原因吗?
答案 0 :(得分:1)
这是因为您使用常规malloc
而不是clCreateObjectName()
函数创建平台对象。因此,您使用常规free
发布它们。我想这就是因为平台是主机资源
请注意,对于设备对象,它是相同的。
编辑:为了澄清一点,感谢@chippies的评论:clGetPlatformIDs()函数有两个用途。首先查询系统中可用的平台数量。其次,填充您为具有您决定使用的实际平台的平台分配的内存空间。您将这些平台存储在首先 malloc 的内存空间中。因此,当您完成这些平台后,可以使用 free 释放它们 malloc-ed 的内存。