首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCL中参数__local与内核内__local的区别

OpenCL中参数__local与内核内__local的区别
EN

Stack Overflow用户
提问于 2012-02-08 01:46:31
回答 1查看 684关注 0票数 1

有时openCL内核的参数中有

代码语言:javascript
复制
kernel someName (some globalparameters, __local int* myArray) {

而其他脚本在内核中的某个位置

代码语言:javascript
复制
__local int myArray[length];

它们之间的区别是什么?我以为它们只是语法上的差异,但现在我在AMD官方示例(RadixSort)中看到了注释

代码语言:javascript
复制
__local KV_TYPE localDataArray[TPG*4*2]; // Faster than using it as a parameter !!!

所以很明显我错了。实际上,当我在我的脚本中尝试它时,它运行得更快。为什么要买?两者不都应该是简单的数组指针吗?

EN

回答 1

Stack Overflow用户

发布于 2012-02-09 03:41:06

我不确定性能问题,但主要的区别不仅仅是语法。通过将本地缓冲区作为参数传递,可以在运行时确定大小。在内核中定义缓冲区本身需要在编译时知道大小。

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

https://stackoverflow.com/questions/9181143

复制
相关文章

相似问题

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