摘要:本章中我们解释OpenCL事件以及如何使用事件。主要讨论一下内容: OpenCL中的基本事件模型 处理事件的API 用户定义的事件 用事件评测命令 内核中的事件 9.1 命令、队列和时间概述 命令队列是OpenCL的核心。平台定义了一个上下文,其中包含一个或多个计算设备。每个计算设备可以有一个或多个
阅读全文
摘要:本章将介绍图像对象,这是一种特殊类型的内存对象,用来访问2维和3维图像数据。本章给出一个使用图像和采样器的例子,并介绍一下概念: 图像和采样器对象概述 创建图像和采样器对象 指定和查询图像格式 处理图像的OpenCL C函数 传输图像对象数据 8.1 图像和采样器 OpenCL中存在图像对象的主要原
阅读全文
摘要:创建内存对象以便从宿主机内存向缓冲区内存传入传出数据。内存对象对于使用OpenCL至关重要,包含以下类型: 缓冲区(buffer):1维的字节数组。 子缓冲区(sub-buffer):缓冲区的1维视图。 图像(image):2维或3维结构的数组,其访问操作符有限,另外可以选择不同的格式、采样和钳制恶
阅读全文
摘要:程序对象和内核对于使用OpenCL至关重要,本章包括以下内容: 程序和内核对象概述 创建程序对象,构建程序 程序构建选项 创建内核对象,设置内核参数 源代码和二进制程序创建 查询内核和程序对象 6.1 程序和内核对象概述 OpenCL应用将设备上并行执行的函数表述为内核。内核用OpenCL C语言编
阅读全文
摘要:OpenCL C编程语言用来创建爱你描述数据并行内核和任务的程序,这些内核和任务可以在一个或多个异构设备上执行,如CPU、GPU和另外一些成为加速器的处理器。OpenCL程序类似于一个动态库,OpenCL内核则类似于动态库的一个导出函数。应用程序可以直接从代码调用由动态库导出的函数。不过,应用程序不
阅读全文
摘要:本章将更详细地研究OpenCL上下文(也就是环境)和设备,具体包括以下概念: 列举和查询OpenCL平台 列举和查询OpenCL设备 创建上下文和关联设备,以及实现由这个隐含环境定义的同步和内存管理 3.1 OpenCL平台 平台集可以用一下命令查询: 这个命令会得到可用的OpenCL平台的列表。如
阅读全文
摘要:本章将介绍一下概念: 选择OpenCL平台并创建一个上下文。 列举设备并创建一个命令队列。 创建和构建一个程序对象。 创建一个内核对象,并为内核参数创建内存对象。 执行内核并读取结果。 检查OpenCL中的错误。 2.2.1 选择OpenCL平台并创建一个上下文 创建OpenCL程序的第一步是选择一
阅读全文