Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencl 被传入参数触及的全局变量变得不可用_Opencl - Fatal编程技术网

Opencl 被传入参数触及的全局变量变得不可用

Opencl 被传入参数触及的全局变量变得不可用,opencl,Opencl,伙计们 我将一个充满数据的结构传递给我的内核,使用它会遇到以下困难(非常简单): [编辑:MacBookPro上的MacOSX/xcode 3.2;此编译显然是针对cpu的] typedef struct { float xoom; int sizex; } varholder; float zX, xd; __kernel void Harlan( __global varholder * vh ) { int X = get_glob

伙计们

我将一个充满数据的结构传递给我的内核,使用它会遇到以下困难(非常简单): [编辑:MacBookPro上的MacOSX/xcode 3.2;此编译显然是针对cpu的]

typedef struct
    {
    float xoom;
    int   sizex;
    } varholder;

float zX,  xd;

__kernel void Harlan( __global varholder * vh )
    {
    int X = get_global_id(0), Y = get_global_id(1);

    zX = ( ( X - vh->sizex/2 ) / vh->xoom + vh->sizex/2 );  // (a)

    xd = zX;                                                // (b)  BOOM!!
    }
执行第(a)行后,标记为(b)的行(一个简单赋值)给出“LLVM编译器未能编译函数”

但是,如果我们不执行第(a)行,那么第(b)行就可以了

因此,通过我对这个问题的反复研究,似乎是赋值语句(a)使用了传入的参数,它扰乱了变量zX的未来访问。然而,我当然需要能够进一步使用计算结果

我在文件级别声明了zX和xd,因为我的助手函数需要它们

有什么想法吗? 谢谢 大卫

p、 我现在注册了,所以我可以投票并接受答案,很遗憾,我无法为最后一个帮助我的人(使用相同的用户名注册,但似乎无法在旧帖子上投票;对不起!)。

不,说不是这样

我真诚地希望这不是我自己问题的“正确”答案。我在另一个论坛上发现了以下内容(尽管不是问的同一个问题!),我担心这是指我正在尝试做的事情:

(引述)

你在做标准禁止的事情。第6.5节规定:

'All program scope variables must be declared in the __constant address space.'
换句话说,程序范围变量不能是可变的

(完)

。。。嗯,tcha!!!!多么不方便的限制啊!我相信这是有道理的

[编辑:一点也不麻烦!事实上,如果第二天早上有一个新的开始,(而且没有酒精),这项工作非常容易处理。]

你们这些家伙和玩偶都知道这一点,对吧,而且都不忍心告诉我?…

不,说不是这样的

我真诚地希望这不是我自己问题的“正确”答案。我在另一个论坛上发现了以下内容(尽管不是问的同一个问题!),我担心这是指我正在尝试做的事情:

(引述)

你在做标准禁止的事情。第6.5节规定:

'All program scope variables must be declared in the __constant address space.'
换句话说,程序范围变量不能是可变的

(完)

。。。嗯,tcha!!!!多么不方便的限制啊!我相信这是有道理的

[编辑:一点也不麻烦!事实上,如果第二天早上有一个新的开始,(而且没有酒精),这项工作非常容易处理。]

你们这些家伙和玩偶都知道这件事,对吧,而且都不忍心告诉我