AFAIK与ICD加载程序扩展类似:
由于ICD加载程序只是一个可选的OpenCL扩展,我想知道没有ICD加载器OpenCL是如何工作的。当然,在这种情况下,您不能同时在同一个应用程序中使用多个供应商的实现,但是用于链接应用程序的是什么呢?如果开发人员将其与特定的实现相关联,那么OpenCL的主要目标--可移植性--就无法再实现。
还是供应商必须提供彼此兼容的动态库?这意味着,如果开发人员链接到供应商A的动态库,那么在运行时,如果目标系统安装了供应商B的动态库,它也会工作吗?
有记载的地方吗?
发布于 2016-06-04 03:27:04
对于Windows OpenCL应用程序,您的应用程序包括OpenCL.h (或cl.h)和指向OpenCL.lib的链接,后者是驻留在Windows System32文件夹中的OpenCL.dll的静态库包装器。你不知道是ICD还是供应商驱动。在过去的许多年里,它一直是一个ICD,但在此之前(对于非常早期的OpenCL实现),它是一个供应商驱动程序。ICD的优点是应用程序不需要知道,您只需调用OpenCL API即可。只有当它是ICD时,平台的数量才会大于1。
https://stackoverflow.com/questions/37613394
复制相似问题