我有几个初学者问题,我的笔记本电脑的GPU有:
我的问题非常简单:
非常感谢你的帮助
答案 0 :(得分:1)
1)每个计算单位。
2)如果供应商实施可以使用单个工作组的所有计算单元,那么它就不重要了。 Nvidia和Amd不能这样做,因此他们使用单个计算单元。使用单个工作组也不能完全使用计算单元。每个计算单元至少需要几个工作组到数十个工作组才能提高效率。
3)否。您可以使用任何工作组大小,只要它是总工作项大小的整数分隔符。但是你无法跨越最大值。
答案 1 :(得分:1)
只是为了澄清@huseyin回答更多信息。
Compute unit != Local workgroup
计算单元是可以处理给定任务的核心,但它可以在内部具有许多工作组,这些工作组在许多不同的处理阶段中执行。为了最大化利用率并最大限度地减少内存延迟效应。
OpenCL报告的值是最大值。如果您使用总共1024个项目,它可能会为您提供更小的本地内存。或者使用所有本地内存,它可能禁止计算单元并行运行工作组,这将减慢执行速度。 始终使用您需要的值,而不是最大值。
使用内核编译CL_KERNEL_WORK_GROUP_SIZE之后报告的值来设置执行。不是设备给出的。