在OpenCl中,有许多这样的调用可以创建对象
clCreateProgramWithSource为上下文创建一个程序对象,和 加载字符串中文本字符串指定的源代码 数组到程序对象中。
我的问题是这个对象究竟是什么,因为计算机科学中的一个对象有many definitions?
我想在较低级别了解源代码字符串究竟发生了什么以及程序对象到底是什么,以及它包含什么?
答案 0 :(得分:0)
在这种情况下,对象表示cl_program
结构的实例。但是,从OpenCL标题cl.h
:
typedef struct _cl_program * cl_program;
cl_program只是指向_cl_program
结构的指针。为什么? OpenCL是一个开放标准,所有实现都受特定库开发人员的约束,他们为特定硬件(例如,Intel CPU)实现标准。
答案 1 :(得分:0)
它是实现定义的,并且没有声明您检查它们的结构。
在给定的实现中,这些句柄可能是指向内部定义结构的指针,或者它们可能是这些项集合的索引。您不知道,如果您弄明白,它可能会在驱动程序更新中发生变化。这就是为什么它们是不透明的类型,所以实现可以做任何它喜欢的内容,只需返回代码的句柄。