文件名称:OpenCL内存管理模块-android官方培训课程中文版v0.9.7
文件大小:5.1MB
文件格式:PDF
更新时间:2024-06-27 13:55:49
OpenCL
第三章 OpenCL编程 27 函数会在command queue中所有kernel执行完毕后返回。 与之类似的 clFlush函数仅保证所有 command queue中的命令都被送到了OpenCL设备中执行,并 不保证执行完毕,因而并不常用。 OpenCL还提供了如下的API来等待一个或一组命令的完成。 OpenCL进一步为乱序执行序列添加了一些用于同步的特殊命令,这里就不具体介绍了,它们包 括: 关于各API的使用细节请同时参照OpenCL Specifications。 3.4 OpenCL内存管理模块 OpenCL内存对象是指在主机( Host)中被创建,可以在 OpenCL kernel中被使用的内存对象类 型。按维度可以分为两类,一类为 bu�er对象,一类为 image对象。其中 bu�er对象是一维的,image对 象可以是二维、三维的texture, frame-bu�er或image。bu�er与C/C++中内存对象类似,可以被声明称 各种数据类型(例如 int,float)或数组类型,或者用户自定义的数据结构等。而image对象则是用来使 用texture或frame-bu�er。 bu�er对象和image对象的区别主要有两点: 1 cl_int c lEnqueueTask ( cl_command_queue command_queue , 2 c l_kernel kernel , 3 c l_uint num_events_in_wait_l is t , 4 const cl_event * event_wait_l is t , 5 c l_event * event ) 6 7 cl_int c l E n q u e u e N a t i v e K e r n e l ( c l_command_queue command_queue , 8 void (* user_func ) ( void *) 9 void * args , 10 s ize_t cb_args , 11 c l_uint num_mem_objects , 12 const cl_mem * mem_list , 13 const void ** args_mem_loc , 14 c l_uint num_events_in_wait_l is t , 15 const cl_event * event_wait_l is t , 16 c l_event * event ) 1 cl_int clFinish ( cl_command_queue command_queue ) 1 cl_int c lWaitForEvents ( cl_uint num_events , 2 const cl_event * event_l is t ) 1 cl_int c lEnqueueMarker ( c l_command_queue command_queue , 2 c l_event * event ) 3 4 cl_int c l E n q u e u e W a i t F o r E v e n t s ( c l_command_queue command_queue , 5 c l_uint num_events , 6 const cl_event *event_l is t ) 7 8 cl_int c lEnqueueBarr ier ( c l_command_queu e command_queue ) 1 cl_int c lWaitForEvents ( cl_uint num_events , 2 const cl_event * event_l is t ) 1 cl_int c lEnqueueMarker ( c l_command_queue command_queue , 2 c l_event * event ) 3 4 cl_int c l E n q u e u e W a i t F o r E v e n t s ( c l_command_queue command_queue , 5 c l_uint num_events , 6 const cl_event *event_l is t ) 7 8 cl_int c lEnqueueBarr ier ( c l_command_queu e command_queue )