首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >local_work_size对性能的影响及其原因

local_work_size对性能的影响及其原因
EN

Stack Overflow用户
提问于 2012-12-07 10:25:14
回答 1查看 3.1K关注 0票数 2

大家好..。

我是opencl的新手,并试图探索更多的@ it。

local_work_size在openCL程序中的工作是什么?在性能上它是如何重要的。

我正在为我的openCL内核编写一些图像处理文件,如

代码语言:javascript
复制
size_t local_item_size = 1; 
size_t global_item_size = (int) (ceil((float)(D_can_width*D_can_height)/local_item_size))*local_item_size; // Process the entire lists
ret = clEnqueueNDRangeKernel(command_queue, kernel, 1, NULL,&global_item_size, &local_item_size, 0, NULL, NULL);

当我改变的时候

代码语言:javascript
复制
 size_t local_item_size = 16;

保持一切不变。

我的表现快了4-5倍。

EN

回答 1

Stack Overflow用户

发布于 2012-12-07 12:10:57

local-work-size,又名work-group-size,是每个工作组中的工作项的数量。

每个工作组在一个计算单元上执行,它能够处理一组工作项,而不仅仅是一个。

因此,当您使用太小的组时,您会浪费一些计算能力,并且只能在计算单元级别上得到一个粗略的并行化。

但是,如果组中有太多的工作项,您也可能会失去一些并行化的机会,因为某些计算单元可能不会被使用,而其他的可能会被过度使用。

因此,您可以使用许多值进行测试,以找到最好的值,或者只使用,让OpenCL通过将NULL作为本地工作大小来为您选择一个好的值。

PS :我会感兴趣的,与您以前的值相比,OpenCL选择的性能,所以请您做一个测试,并张贴结果。谢谢:)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13761191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档