摘要: 学习 OpenCL,概念很多,理解不深,所以看示例代码时比较糊涂。 于是,把调用依赖关系简单画了个图: 希望能加深理解吧。 阅读全文
posted @ 2025-03-10 11:20 turbinee 阅读(9) 评论(0) 推荐(0)
摘要: 写 OpenCL 的 kernel 函数时,是利用原来在 CPU 上已经验证过的代码,往往是由多个源文件组成的,那么怎么实现包含多个源文件? 上网搜索,https://www.cnblogs.com/willhua/p/13362837.html 写了方法,我这里写个简单的例子: // main.c 阅读全文
posted @ 2025-03-04 12:36 turbinee 阅读(31) 评论(0) 推荐(0)
摘要: 学习OpenCL,按最初的理解,对一个 GPU,其CU数是固定的,每个CU的PE数也是固定的,编程时,work-group数对应CU数,work-item数与PE数一致就ok啦。 我的显卡是 MX450(够差),参数: 直观理解,CU=14,PE=896/14=64, 那么 work-group=1 阅读全文
posted @ 2025-02-20 23:04 turbinee 阅读(55) 评论(0) 推荐(0)
摘要: 参考《AMD OpenCL 大学教程》 OpenCL 内存对象就是一些 OpenCL 数据,这些数据一般在设备内存中,能够被拷入也能够被拷出。OpenCL 内存对象包括 buffer 对象和 image 对象。 Buffer 对象:连续的内存块 顺序存储,能够通过指针、行列式等直接访问。 Image 阅读全文
posted @ 2024-12-24 21:59 turbinee 阅读(25) 评论(0) 推荐(0)
摘要: 转载 https://deepinout.com/opencl/opencl-basic-tutorials/opencl-create-command-queue.html 在OpenCL上下文中,有内存、程序和内核对象,对这些对象的操作就需要使用命令队列。一条命令就是主机发送给设备的一条消息,用 阅读全文
posted @ 2024-12-20 13:58 turbinee 阅读(103) 评论(0) 推荐(0)
摘要: 转载 https://deepinout.com/opencl/opencl-basic-tutorials/opencl-create-context.html 上下文为关联的设备、内存对象、命令队列、程序对象、内核对象提供一个容器。上下文是OpenCL应用的核心。正是上下文驱动着应用程序与特定设 阅读全文
posted @ 2024-12-20 11:21 turbinee 阅读(73) 评论(0) 推荐(0)
摘要: clGetDeviceIDs 查询支持OpenCL设备列表: cl_int clGetDeviceIDs(cl_platform_id platform , cl_device_type device_type , cl_uint num_entries , cl_device_id *device 阅读全文
posted @ 2024-12-19 18:56 turbinee 阅读(45) 评论(0) 推荐(0)
摘要: 参考 OpenCL 平台 clGetPlatformIDs 获得系统平台列表: cl_int clGetPlatformIDs(cl_uint num_entries , cl_platform_id *platforms , cl_uint *num_platforms ) 在OpenCL程序中, 阅读全文
posted @ 2024-12-19 16:10 turbinee 阅读(27) 评论(0) 推荐(0)
摘要: Platform 模型 在OpenCL里,对于并行异构设备,按下图理解 平台模型由一个 Host 连接一个或多个设备 OpenCL Device; OpenCL Device 可划分为一个或多个计算单元 CU,Compute Unit; CU 可划分为多个处理部分 PE,Processing Ele 阅读全文
posted @ 2024-12-18 14:47 turbinee 阅读(38) 评论(0) 推荐(0)
摘要: 学习OpenCL编程,看到下面这张图,清楚表达了编程步骤 其中,第4步的 clCreateCommandQueue 函数是旧版本的,在 2.0 中扩展为 clCreateCommandQueueWithProperties。 阅读全文
posted @ 2024-12-18 14:26 turbinee 阅读(20) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示