OpenCL 编程步骤 5. 创建内存对象

news/2024/12/24 22:02:24/文章来源:https://www.cnblogs.com/turbinee/p/18628791

参考《AMD OpenCL 大学教程》

OpenCL 内存对象就是一些 OpenCL 数据,这些数据一般在设备内存中,能够被拷入也能够被拷出。OpenCL 内存对象包括 buffer 对象和 image 对象。

  • Buffer 对象:连续的内存块 ----顺序存储,能够通过指针、行列式等直接访问。
  • Image 对象:是 2 维或 3 维的内存对象,只能通过 read_image() 或 write_image() 来读取。image 对象可以是可读或可写的,但不能同时既可读又可写。

clCreateBuffer

创建一个 buffer 对象,用如下函数:

cl_mem clCreateBuffer(cl_context context,cl_mem_flags flags,size_t size,void* host_ptr,cl_int* errcode_ret);

flags 参数指定 buffer 对象的读写属性,host_ptr 可以是 NULL,如果不为 NULL,一般是一个有效的 host buffer 对象,这时,函数创建 OpenCL buffer 对象后,会把对应 host buffer 的内容拷贝到 OpenCL buffer 中。

在 Kernel 执行之前, host 中原始输入数据必须显式的传到 device 中, Kernel 执行完后, 结果也要从 device 内存中传回到 host 内存中。我们主要通过函数 clEnqueue{Read/Write}Buffer/Image} 来实现这两种操作。从 host 到 device, 我们用 clEnqueueWrite, 从 device 到 host, 我们用 clEnqueueRead。clEnqueueWrite 命令包括初始化内存对象以及把 host 数据传到 device 内存这两种操作。当然,像前面一段说的那样,也可以把 host buffer 指针直接用在 CreateBuffer 函数中来实现隐式的数据写操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858369.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产AI使用尝试

豆包AI使用体验不得不说现在AI的能力也是越来越离谱了。 上一篇博客 的代码是我写的,但是懒得写文章了,让AI替我生成一篇,这个质量我没话说。 完全可以以假乱真了,但是具体的细节、上下文链接、逻辑问题,还有待检查。 我只修改了可能侵犯版权的部分,具体的文章可以直接跳…

轻松玩转 JMeter 测试计划组件

轻松玩转 JMeter 测试计划组件 宝子们,今天咱就来唠唠 JMeter 里那个超重要的测试计划组件,它可是整个性能测试的 “指挥官”,把各种测试元素安排得明明白白。一、测试计划组件是个啥?有啥用? 这个组件就像是一场大戏的总策划,它决定了整个测试的范围和目标。啥意思呢?就…

【Python项目】用pywin32在聊天窗口发送QQ好友/群消息

源码中涉及到的函数用法: win32clipboard.SetClipboardData(format, hMem):它需要一个格式化的数据对象和一个数据块。CF_DIB ——DIB图片,它包含一个BITMAPINFO结构,然后是位图位。CF_DIF ——软件领域的数据交换格式。CF_PALETTE ——调色板。每当应用程序放置数据在剪贴…

【Rive】骨骼动画

1 骨骼基本概念 ​ 1)骨骼简介 ​ 骨骼不能渲染显示,只能控制其他图形变换,具有以下特性。绑定图形:可以将图形绑定到骨骼上,使图形随骨骼移动、旋转或缩放。 权重 (Weights):通过调整顶点权重,可以控制图形在骨骼运动时的变形程度,从而实现平滑的形变效果。 IK(…

蓝牛书签网址有效检测工具V1.20 免费版

蓝牛书签网址有效检测工具可以快速检测浏览器收藏夹的标签是否还有效 快速帮你删除无效的标签,只需要你把收藏夹导出然后导入到软件检测即可 更新日志: 2024年12月7日 V2.00 更新 全面提升检测速度 2022.06.26 V1.20更新 本地下载 软件使用教程

蓝牛排队助手单机版

在日常生活中很多时间人们在排队的时候,经常碰到插队,混乱、站立等候等现象. 使用蓝牛排队助手可以帮助我们解决在办事过程中所遇到的各种排队、等候和拥挤等现象,让排队显得舒适有序,并且可以大大的提高各个办事处的服务质量和服务形象,为客户及管理人员都带来了方便与愉悦…

ibiquge 小说下载

一、引言在当今的网络文学世界中,ibiquge作为一个广为人知的平台,拥有着海量的小说资源,深受广大读者的喜爱。然而,对于一些读者来说,他们可能希望能够将自己喜欢的小说保存下来,以便在没有网络的情况下也能随时阅读。这时候,爬虫技术就可以派上用场了。通过编写爬虫程序…

JVM简介—3.JVM的执行子系统

大纲 1.Class文件结构 2.Class文件格式概述 3.Class文件格式详解 4.字节码指令 5.类的生命周期和初始化 6.类加载的全过程 7.类加载器 8.双亲委派模型 9.栈桢详解 11.方法调用详解 12.基于栈的字节码解释执行引擎1.Class文件结构 (1)Java跨平台的基础 字节码是各种不同平台虚拟…

ABC232G

大致题意 你有一个 \(n\) 个点的有向完全图。 每个点有两个属性 \(a_i\) 和 \(b_i\)。\(u \to v\) 的边的权值是 \((a_u+b_v) \bmod m\)。 给你 \(n\) , \(m\) 和 \(\{a_i\}\) 以及 \(\{b_i\}\) , 求 \(1\) 到 \(n\) 的最短路。$ 2\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ $ 2\ \le…

【tomcat内存马】多种查杀方式

环境搭建 我在WINDOWS7虚拟机下搭建的Tomcat,搭建教程网上都有,点击startup.bat启动环境注入内存马 这里使用了哥斯拉的内存马查杀方式一:VisualVM(远程调试) 设置jstatd.all.policy 文件启动jstatd jstatd.exe -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.…

intellij idea使用:激活码与插件问题

下载 官网下载,不需要下载最新版的,我下载的是2024.2.3,能正常使用激活码 安装教程去网上搜,有一大把 激活码 这里整合了两个靠谱的激活码更新网站,里面会更新免费的激活码,拿来用即可,比在网上搜省很多时间,网上很多都是打广告的,没有有效信息。https://www.yuque.co…

12.23软工踩坑

12.23软工踩坑 这里应该是alterRoomNumber这段代码也有问题 要加一句 如下:if (waitqueueThis.getIsWaiting()==1){//如果在等待中,更新等待时间Date lastRequestTime = waitqueueThis.getLastRequestTime();LocalDateTime nowTime = LocalDateTime.now();LocalDateTime last…