
OpenCL
文章平均质量分 89
Ven_J
这个作者很懒,什么都没留下…
展开
-
OpenCL编程之同步问题:事件
事件(event)是OpenCL中传递命令状态的对象。命令队列中的命令会生成事件,其他命令在执行之前可能要等待这些事件。用户可以创建定制事件,在宿主机和计算设备之间提供额外的一层控制。在内核中,程序员利用时间可以允许数据的移动与这些数据的相关操作重叠进行。OpenCL事件是OpenCL中传递命令有关信息的对象。事件的状态描述了相关命令的状态。可以取一下状态值。CL_原创 2017-06-11 13:16:28 · 3876 阅读 · 0 评论 -
OpenCL读取内核cl文件
普遍上的OpenCL编程都分为两个部分,一个为主机端代码,一个为设备端代码。主机端代码的作用是:主要是负责设置设备执行代码的环境,以及与设备端的通信。设备端代码的作用是:设备上所要执行的功能函数。在主机端和设备端通信的过程中,会有一个读取设备端代码的过程。通常就是读取cl文件。因为在创建程序对象program时,需要用到这个cl文件。创建程序对象就会把这原创 2017-06-11 13:17:19 · 5330 阅读 · 0 评论 -
OpenCL编程步骤(六):执行内核
cl_int clEnqueueNDRangeKernel ( cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim,原创 2015-05-27 16:30:27 · 2155 阅读 · 0 评论 -
OpenCL编程步骤(五):创建缓冲对象
cl_mem clCreateBuffer( cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errcode_ret)这个函数是用来创建缓存对原创 2015-05-27 16:31:08 · 4483 阅读 · 0 评论 -
OpenCL编程步骤(四):创建内核对象和设置内核参数
内核就是程序中声明的一个函数。对于程序中的任一函数,都可以通过加上限定符__kernel将其标识为内核。内核对象中封装了程序中的某个__kernel函数以及执行此函数时所需的参数。1、创建内核cl_kernel clCreateKernel (cl_program program, const char *kerne原创 2015-05-27 16:29:50 · 9486 阅读 · 0 评论 -
OpenCL编程步骤(三):创建和编译程序
OpenCL程序是由一组内核组成,而这些内核就是程序源码中以限定符__kernel声明的函数。__kernel函数可能会用到一些辅助函数以及常量数据,他们也是程序的一部分。1、创建程序对象cl_program clCreateProgramWithSource(cl_context context, cl_uint原创 2015-05-27 16:26:58 · 6134 阅读 · 0 评论 -
OpenCL编程步骤(二):创建命令队列
1、创建命令队列OpenCL对象,比如内存对象,程序对象和内核对象都是用上下文创建的。对这些对象的操控都是通过命令队列来实现的。用命令队列可以把一系列操作按序排队。如果有多个命令队列,应用可以将多个相互独立的命令分别排队而无须同步。然而这仅在没有共享任何对象时才成立。如果要在多个命令队列间共享对象,就要求应用事实相应的同步。cl_command_queue clCreateComm原创 2015-05-27 16:25:02 · 6123 阅读 · 2 评论 -
OpenCL编程步骤(一):创建上下文
OpenCL编程的第一步就是查询OpenCL平台集合,选择其中一个或多个平台在应用中使用。平台集查询可以用下列命令:cl_int clGetPlatformIDs(cl_uint num_entries, cl_platform_id *platforms, cl_uint *nu原创 2015-05-27 16:16:39 · 6485 阅读 · 0 评论 -
OpenCL编程框架
用OpenCL来编程的一个整体的框架:创建上下文。这个部分包括获取平台,然后选择设备创建上下文。主要函数 :clGetPlatformIDs 、clGetPlatformInfo和 clGetDeviceIDs、 clGetDeviceInfo 和clCreateContext、clCreateContextFromType、clGetContexInfo、clRele原创 2015-05-27 16:16:06 · 1245 阅读 · 0 评论