OpenCL运行时模块-android官方培训课程中文版v0.9.7

时间:2024-06-27 13:55:49
【文件属性】:

文件名称:OpenCL运行时模块-android官方培训课程中文版v0.9.7

文件大小:5.1MB

文件格式:PDF

更新时间:2024-06-27 13:55:49

OpenCL

第三章 OpenCL编程 21 同查找平台类似,用户必须先通过 clGetContextInfo获得关联该上下文的设备个数,然后按个数 创建设备序列 cldeviceid * devices,并通过clGetContextInfo得到所有设备实例。在得到各个设备实例 之后,用户可以通过 clGetDeviceInfo进一步获得每个设备的具体信息,例如设备类型,生产商,设备 是否支持某些拓展功能等等。详细使用情况参看Opencl Speci�cations。在所有关联该上下文的设备使 用完毕时候,用户需使 用clReleaseContext来释放掉上下文,并释放掉设备序列所占用的空间。 在找到了 OpenCL运行的平台和相应的设备,并成功的建立了上下文之后,用户就可以启动 OpenCL的运行时了! 3.3 OpenCL运行时模块 在这一节中我们会着重介绍 OpenCL运行时模块的 API,其中包 括:命令队列,程序对象,内核 对象等。内存对象由于比较复杂,我们将 在单独一节中介绍。 首先在运行 OpenCL内核程序之前,用户必须建立 OpenCL程序对象(program object)。OpenCL 程序的源程序(program source)由一系列内核函数和被内核函数所调用的辅助函数或常量所构成。其 中内核函数都必须以关键字_ _kernel或kernel为起始来声明。最终 OpenCL kernel程序将被相应运行 设备上的OpenCL编译器编译成可执行的机器语言。 一个程序对象包括以下要素: – 一个有效的上下文,参考3.1节 – 一段源程序或者是含有源程序的二进制代码 – 可执行代码的编译过程,编译选项和编译文档 – 关联于该程序对象的多个内核对象(kernel object) 以hellocl为例, 第一步用户需要读入源程序,在 hellocl中,程序定义了一个名为 kernelSourceCode的字符串,作为 一个 kernel源程序,通过如下的 API创建一个 OpenCL program对象 1 c l_program c l C r e a t e P r o g r a m W i t h S o u r ce ( cl_context context , 2 c l_uint count , 3 const char ** strings , 4 const size_t * lengths , 5 cl_int * errcode_ret )


网友评论