研究文章

优化数据传输基于OpenCL事件管理机制

清单6

一个简单的clDataTransfer函数的伪代码。
( )cl_int clDataTransferFunc(,
( )cl_uint numevts,/ *事件的数量在列表* /
( )cl_event* wlist,/ * * /事件列表
( )cl_evett* evtret)* / / *事件对象的事件对象
( ){
( )/ *创建一个新的用户事件对象的状态是CL_SUBMITTED * /
( )* evtret = clCreateUserEvent();
( )
( )如果(non_blocking = CL_TRUE)
( )pthread_create(,cldtThreadFunc,);
( )其他的
( )cldtThreadFunc();
( )
( )返回CL_SUCCESS;
( )}
( )
( )/ * numevt、wlist evtret从调用者传递* /
( )无效* cldtThreadFunc(无效* p)
( ){
( )clWaitForEvent (numevt wlist);
( )
( )/ *管线式数据传输* /
( )
( )clSetUserEvent状态(* evtret,CL_COMPLETE);
( )返回NULL;
( )}