编写OpenCL程式
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
先取得系统上所有的OpenCL platform(先取得platform的数目;取得platform的ID);建立一个OpenCL context;
取得装置的列表;
建立Command Queue:Command queue 可以接收对一個 OpenCL 裝置的各种操作,並按照顺序执行
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
1、获得平台,clGetPlatformIDs
2、创建上下文,clCreateContextFromType,这个函数的第一个参数为NULL时在AMD的平台上运行不能通过,必须为该函数指定第一个参数。
3、通过上下文得到设备信息,clGetContextInfo
4、为相应设备创建comandQueue, clCreateCommandQueue
5、创建源程序,build源程序,生成kernel
6、分配buffer空间,逐个设置程序参数。
7、执行kernel,clEnqueueNDRangeKernel
8、从buffer读回数据,clEnqueueReadBuffer
---------------------------------------------------------------------------------------------------------------------------
OpenCL应用分两个部分:一个是主机端应用;一个是OpenCL内核。
创建一个opencl应用:1.获得设备ID:
使用clGetDeviceIDs()来获取一个或多个设备ID;调用完这个函数后,如果返回值为成功,那么以后就可以用这个ID来创建上下文了;
2.获取上下文:<