OpenCL™规范 3.2.3设备侧队列

2023-12-19

3.2.3. Device-side enqueue
3.2.3设备侧队列

Device-side enqueue is missing before version 2.0.

​2.0版本之前缺少设备端队列。

Algorithms may need to generate additional work as they execute. In many cases, this additional work cannot be determined statically; so the work associated with a kernel only emerges at runtime as the kernel-instance executes. This capability could be implemented in logic running within the host program, but involvement of the host may add significant overhead and/or complexity to the application control flow. A more efficient approach would be to nest kernel-enqueue commands from inside other kernels. This nested parallelism can be realized by supporting the enqueuing of kernels on a device without direct involvement by the host program; so-called device-side enqueue .

算法在执行时可能需要生成额外的工作。在许多情况下,这种额外的工作量不能静态地确定;因此,与内核相关联的工作仅在运行时内核实例执行时出现。这种能力可以在主机程序内运行的逻辑中实现,但是主机的参与可能会给应用程序控制流增加显著的开销或复杂性。更有效的方法是从其他内核内部嵌套内核入队命令。这种嵌套的并行性可以通过支持内核在设备上的排队来实现,而无需主机程序的直接参与;所谓的设备侧队列。

Device-side kernel-enqueue commands are similar to host-side kernel-enqueue commands. The kernel executing on a device (the parent kernel ) enqueues a kernel-instance (the child kernel ) to a device-side command queue. This is an out-of-order command-queue and follows the same behavior as the out-of-order command-queues exposed to the host program. Commands enqueued to a device side command-queue generate and use events to enforce order constraints just as for the command-queue on the host. These events, however, are only visible to the parent kernel running on the device. When these prerequisite events take on the value CL_COMPLETE , the work-groups associated with the child kernel are launched into the devices work pool. The device then schedules them for execution on the compute units of the device. Child and parent kernels execute asynchronously. However, a parent will not indicate that it is complete by setting its event to CL_COMPLETE until all child kernels have ended execution and have signaled completion by setting any associated events to the value CL_COMPLETE . Should any child kernel complete with an event status set to a negative value (i.e. abnormally terminate), the parent kernel will abnormally terminate and propagate the childs negative event value as the value of the parents event. If there are multiple children that have an event status set to a negative value, the selection of which childs negative event value is propagated is implementation-defined.

​设备端内核入队命令类似于主机端内核入团命令。在设备上执行的内核(父内核)将内核实例(子内核)排入设备端命令队列。这是一个无序的命令队列,其行为与主机程序暴露的无序命令队列相同。排入设备端命令队列的命令生成并使用事件来强制执行顺序约束,就像主机上的命令队列一样。但是,这些事件仅对设备上运行的父内核可见。当这些先决条件事件的值为CL_COMPLETE时,与子内核相关联的工作组将启动到设备工作池中。然后,设备调度它们以便在设备的计算单元上执行。子内核和父内核异步执行。然而,直到所有子内核都结束了执行并通过将任何相关联的事件设置为值CL_complete来发出完成信号,父内核才会通过将其事件设置为CL_complete来指示其完成。如果任何子内核的事件状态设置为负值(即异常终止),则父内核将异常终止并将子内核的负事件值作为父事件的值传播。如果有多个子级的事件状态设置为负值,则传播哪个子级的负事件值的选择是由实现定义的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCL™规范 3.2.3设备侧队列 的相关文章

  • 题解 | #输出某一年的各个月份的天数#

    三方寄过去了 告诉我停止24届招聘 全部毁约 牛的 he芯 毁约应届生 34316 广西北部湾银行2022年校园招聘 广西北部湾银行股份有限公司2022届校园招聘 看终端大把大把15级的 这个14级是不是终端bg的白菜了 程序员面试六战六捷

随机推荐

  • 永久删除的文件如何恢复?这3个简单方法可以帮到你!

    我在清理电脑的过程中 一不小心就删除了一些很重要的文件和数据 很想通过某种方法将这些数据找回来 但是不知道应该如何操作 有朋友可以分享一下文件找回的简单方法吗 在日常生活和工作中 我们时常会遇到误删重要文件的情况 一旦文件被永久删除 很多人
  • Mybatis配置-插件(plugins)

    MyBatis允许在映射语句执行的某些点拦截方法调用 默认情况下 MyBatis允许插件拦截以下方法调用 Executor update query flushStatements commit rollback getTransactio
  • 我的创作纪念日365

    机缘 提示 可以和大家分享最初成为创作者的初心 例如 实战项目中的经验分享 日常学习过程中的记录 通过文章进行技术交流 收获 提示 在创作的过程中都有哪些收获 例如 获得了多少粉丝的关注 获得了多少正向的反馈 如赞 评论 阅读量等 认识和哪
  • linux网络版计算机

    文章目录 前言 一 网络版计算机 1 序列化与反序列化 2 网络版计算机实现 3 守护进程 4 json格式 前言 一 网络版计算机 1 序列化与反序列化 协议是一种 约定 sock
  • 评分卡在数字化时代的应用与比较,谁是最强规则引擎?

    在数字化时代 规则引擎在各种业务场景中发挥着越来越重要的作用 评分卡作为规则引擎的一个重要应用 被广泛应用于员工KPI考核 业务评估 授信额度计算等等场景 本文引用了奔跑的小武哥的内容 对市面上的几个规则引擎进行对比展示 就小武哥整理的内容
  • 【开题报告】基于SpringBoot的企业财务管理系统的设计与实现

    1 研究背景 随着全球经济的发展和市场竞争的加剧 企业财务管理变得越来越重要 企业需要一个高效 精确 安全的财务管理系统来管理企业的财务事务 提供准确的财务数据支持决策制定 传统的手工财务管理方式已经无法满足企业的需求 因此 开发一款基于现
  • Error: error:0308010C:digital envelope routines::unsupported

    报错 ERROR Error error 0308010C digital envelope routines unsupported 打开 IDEA 终端 直接输入 env NODE OPTIONS openssl legacy prov
  • [补题记录] Educational Codeforces Round 160 (Rated for Div. 2)(A~C)

    URL https codeforces com contest 1913 problem D 目录 A Problem 题意 Thought 思路 Code 代码 B Problem 题意 Thought 思路 Code 代码 C Pro
  • 字节跳动的OpenAI帐号被封

    关注卢松松 会经常给你分享一些我的经验和观点 字节跳动的账号被Open AI封禁 因其使用GPT训练自家AI大模型 对 你没看错 连字节跳动也有OpenAI帐号 也在用ChatGPT的接口服务 前几天字节跳动的OpenAI帐号被封 外界猜测
  • 清空回收站是彻底删除吗?答案揭晓!

    我经常会有定期清空回收站的习惯 但是最近在清空回收站时 我突然意识到有部分重要文件一同被删除了 那么 清空回收站后文件还能恢复吗 应该怎么操作呢 在数字世界中 我们常常需要处理大量的文件和数据 有时候 我们会选择将不需要的文件或数据放入回收
  • BENTLY 125840-02 低压交流电源输入模块

    BENTLY 125840 02 低压交流电源输入模块 BENTLY 125840 02 低压交流电源输入模块 产品详情 BENTLY 125840 02 低压交流电源输入模块可能是用于提供电源输入并监测其状态的设备 这样的模块通常在工业领
  • 【开题报告】基于SpringBoot+Vue.js的社区管理系统的设计与实现

    1 研究背景 社区管理系统是近年来随着社区发展和居民需求增加而兴起的一种信息化管理工具 传统的社区管理方式存在信息传递不畅 居民参与度低 管理效率低下等问题 因此需要引入现代化的信息技术手段来改善社区管理工作 Spring Boot是一个轻
  • HONEYWELL 05701-A-0301 单通道控制卡

    HONEYWELL 05701 A 0301 单通道控制卡 HONEYWELL 05701 A 0301 单通道控制卡产品详情 HONEYWELL 05701 A 0301 控制卡通常用于监测和控制工业系统中的各种参数 例如温度 压力 流量
  • RTK、PPP与RTK-PPP?一文带您认识高精定位及如何进行高精定位GNSS测试!(一)

    来源 德思特测试测量 德思特干货丨RTK PPP与RTK PPP 一文带您认识高精定位及如何进行高精定位GNSS测试 一 原文链接 https mp weixin qq com s 6Jb3DuJEhRGqFPrH3CX8xQ 欢迎关注虹科
  • 【老生谈算法】matlab实现基于粒子群算法的多目标搜索算法——多目标搜索算法

    Matlab实现基于粒子群算法的多目标搜索算法 1 文档下载 本算法已经整理成文档如下 有需要的朋友可以点击进行下载 说明 文档 点击下载 本算法文档 老生谈算法 matlab实现基于粒子群算法的多目标搜索算法 doc 更多matlab算法
  • 电脑屏幕怎么调大小?分享4个实用操作!

    我最近在使用电脑时总感觉电脑屏幕看起来不太对劲 好像字体被刻意放大了 看起来很不舒服 想问问有什么方法可以解决这个问题吗 电脑屏幕的正常显示是我们使用电脑的重要前提之一 如果电脑屏幕设置或显示不正确 会让用户有不好的视觉体验 电脑屏幕怎么调
  • HONEYWELL 05704-A-0145 四通道控制卡

    HONEYWELL 05704 A 0145 四通道控制卡 HONEYWELL 05704 A 0145 四通道控制卡 产品详情 HONEYWELL 05704 A 0145 控制卡通常用于监测和控制系统中的信号或参数 四通道控制卡可能意味
  • 【flink番外篇】5、flink的window(介绍、分类、函数及Tumbling、Sliding、session窗口应用)介绍及示例(1)- 窗口介绍、分类、函数

    Flink 系列文章 一 Flink 专栏 Flink 专栏 系统介绍某一知识点 并辅以具体的示例进行说明 1 Flink 部署系列 本部分介绍Flink的部署 配置相关基础内容 2 Flink基础系列 本部分介绍Flink 的基础部分 比
  • HONEYWELL 05704-A-0121 船舶控制器模块

    HONEYWELL 05704 A 0121 船舶控制器模块 HONEYWELL 05704 A 0121 船舶控制器模块产品详情 船舶控制器模块通常用于船舶系统中 以实现对船舶的监测 控制和操作 这些模块可能包括各种传感器 执行器和控制逻
  • OpenCL™规范 3.2.3设备侧队列

    3 2 3 Device side enqueue 3 2 3设备侧队列 Device side enqueue is missing before version 2 0 2 0版本之前缺少设备端队列 Algorithms may nee