gpt4 book ai didi

opencl - OpenCL 工作项是否并行执行?

转载 作者:行者123 更新时间:2023-12-03 23:32:46 32 4
gpt4 key购买 nike

我知道工作项被分组到工作组中,并且您不能在工作组之外进行同步。

这是否意味着工作项是并行执行的?

如果是这样,使用 128 个工作项创建 1 个工作组是否可能/有效?

最佳答案

组内的工作项将一起安排,并且可能一起运行。由硬件和/或驱动程序来选择执行的实际并行度。这有不同的原因,但一个很好的原因是隐藏内存延迟。

在我的 AMD 卡上,“计算单元”分为 16 个 4 宽 SIMD 单元。这意味着在技术上可以在组中同时运行 16 个工作项。建议我们在一个组中使用 64 个工作项的倍数,以隐藏内存延迟。显然,它们不可能都在准确的时间运行。这不是问题,因为大多数内核实际上都受内存限制,因此调度程序(硬件)将交换在内存 Controller 上等待的工作项,而“就绪”项则获得它们的计算时间。组中的实际工作项数由宿主程序设置,并受 CL_DEVICE_MAX_WORK_GROUP_SIZE 限制。您将需要为您的内核试验最佳工作组大小。

当涉及到同时工作项时,cpu 实现“更糟”。运行的工作项数量与可用于运行它们的核心数量一样多。它们在 CPU 中的行为更加顺序。

那么工作项是否在完全相同的时间运行?几乎从来没有。这就是为什么当我们想确保它们在给定点暂停时我们需要使用障碍。

关于opencl - OpenCL 工作项是否并行执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980044/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com