OpenCL的整体工作流程

这篇文章的重点是啥:

关于OpenCL整体工作流程的文章有很多,比较好的有知乎华叔的文章OpenCL 2.0 异构计算。流程他们已经讲得很详细了,我就不简单重复了,这篇博客主要是弄一个可运行代码,然后,强调一些我觉得重要的东西

OpenCL的工作流程

创建并执行一个简单的OpenCL应用大致需要以下几步:

  • 查询平台和设备信息
  • 创建一个上下文
  • 为每个设备创建一个命令队列
  • 创建一个内存对象(数组)用于存储数据
  • 拷贝输入数据到设备端
  • 使用OpenCL C代码创建并编译出一个程序
  • 从编译好的OpenCL程序中提取内核
  • 执行内核
  • 拷贝输出数据到主机端
  • 释放资源
    在下面的代码中,很容易找到对应的代码。

简单的可运行代码

这里复用了前面Windows下环境配置中的代码,运行时输出Result: 3即为正确运行。

#include <CL/cl.h>
#include <iostream>

const int N = 1024;
const size_t size = N * N * sizeof(float);

const char* getErrorString(cl_int error) {
	switch (error) {
		// run-time and JIT compiler errors
	case 0: return "CL_SUCCESS";
	case -1: return "CL_DEVICE_NOT_FOUND";
	case -2: return "CL_DEVICE_NOT_AVAILABLE";
	case -3: return "CL_COMPILER_NOT_AVAILABLE";
	case -4: return "CL_MEM_OBJECT_ALLOCATION_FAILURE";
	case -5: return "CL_OUT_OF_RESOURCES";
	case -6: return "CL_OUT_OF_HOST_MEMORY";
	case -7: return "CL_PROFILING_INFO_NOT_AVAILABLE";
	case -8: return "CL_MEM_COPY_OVERLAP";
	case -9: return "CL_IMAGE_FORMAT_MISMATCH";
	case -10: return "CL_IMAGE_FORMAT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值