新建Opencl程序对象

1、Opencl c代码(编写的代码在Opencl设备上执行)称为程序,是称为kernel的函数的集合,kernel是被调度安排到设备上运行的执行单元。
2、Opencl程序运行时通过调用一系列API进行编译,编译系统针对具体的设备进行优化。
3、Opencl应用程序能够同时移植到AMD、NVIDIA以及Intel的设备上,则不需要对这些平台分别进行预编译。
4、Opencl软件仅连接到一个公共运行层(称之为ICD),所有平台特定的SDK通过一个动态库接口委托给某个厂商的运行时。新建kernel的步骤如下:
(1)、Opencl源代码以字符串的形式存储。如果代码保存在文件中,则必须读到内存并存储为字符串数组。
(2)、源代码通过调用clCreateProgramWithSource()转化为一个cl_program对象。
(3)、然后,使用clBuildProgram()在多个支持Opencl的设备上编译程序对象,如果出现编译错误,则报告错误信息。

5、程序准确的二进制表示因具体设备而异。在AMD运行时中,主要有两类设备:x86CPU和GPU。
(1)、对于x86CPU,clBuildProgram()会产生x86指令并且在该设备上执行。
(2)、对于GPU,首先新建AMD GPU中间语言以及表示单个work-item的高级中间语言,随之针对该架构进行实时编译,产生ISA(即具体指令架构上代码)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值