我有一个接受以下参数的内核:
1)全球ID为1040
2)本地ID为16
下面不是我正在使用的内核,但我用它来说明我想要实现的内容;基本上A和B的数组输入长度为1040 * 10。
.controller('businessPageController',['$scope', '$timeout', '$firebaseArray', 'CONFIG', '$document', '$state', function($scope, $timeout, $firebaseArray, CONFIG, $document, $state, $cordovaGeolocation, $ionicLoading, $ionicPlatform, ionicPlatform, ngCordova)
虽然常数是常数,但我希望Offset成为一个"数组"排序,包含值0,1,...,9。我已经尝试将这些值作为一个数组传递,但我不认为有可能以这种方式使用数组进行偏移(程序崩溃)。我想写的一个样本如下:
.controller('businessPageController',['$scope', '$ionicPlatform', '$ionicLoading', '$cordovaGeolocation', '$timeout', '$firebaseArray', 'CONFIG', '$document', '$state', function($scope, $ionicPlatform, $ionicLoading, $cordovaGeolocation, $timeout, $firebaseArray, CONFIG, $document, $state, ngCordova)
请注意:缩放全局ID不是一种选择,因为在我的内核中它需要保持固定。因此:无论如何要实现这一目标吗?
编辑:我添加了一个我想要实现的例子。目前,它不像这样工作。这合法吗?答案 0 :(得分:1)
我收到的错误消息是
参数不能在命名地址空间中分配
因为constant
是保留字。
我尝试通过在其末尾添加“1”来更改变量名称,如下所示:
__kernel void vector_add(__global int *A, __global int *B, __global int *C,
__constant int *Offset,__constant int * constant1) {
int i = get_global_id(0);
int constVar=constant1[0];
for (int k = 0; k < 10; k++) {
C[i + Offset[k]*constVar] = A[i + Offset[k]*constVar] + B[i + Offset[k]*constVar];
}
}
它适用于global = 1040,ABC_size = 1040 * 10,local = 16,偏移0到9数组,constant1 = 1040