0

在 OpenCl 中有很多这样的调用来创建对象

clCreateProgramWithSource 为上下文创建程序对象,并将字符串数组中的文本字符串指定的源代码加载到程序对象中。

我的问题是这个对象到底是什么,因为计算机科学中的一个对象有很多定义

我想在较低级别了解源代码字符串到底发生了什么,程序对象到底是什么,它包含什么?

4

2 回答 2

0

它是实现定义的,并且没有声明任何结构供您检查它们。

在给定的实现中,这些句柄可能是指向内部定义结构的指针,或者它们可能是此类项目集合的索引。你不知道,如果你弄明白了,它可能会在驱动程序更新中改变。这就是为什么它们是不透明类型的原因,所以实现可以在里面做任何它喜欢的事情,只返回一个句柄到你的代码。

于 2013-10-19T13:58:39.457 回答
0

在这种情况下,对象表示cl_program结构的实例。但是,从 OpenCL 标头cl.h

typedef struct _cl_program *        cl_program;

cl_program 只是一个指向_cl_program结构的指针。为什么?OpenCL 是一个开放标准,所有实现都受制于特定库开发人员,他们为特定硬件(例如,英特尔 CPU)实施标准。

于 2013-10-18T07:34:04.940 回答