【发布时间】:2014-04-28 16:24:50
【问题描述】:
我的 CUDA 编程有问题! 输入是一个矩阵 A( 2 x 2 ) 输出是一个矩阵 A(2 x 2),每个新值都是 **3 旧值的指数** 例子 : 输入:A:{2,2} 输出:A{8,8} { 2,2 } { 8,8 }
我在文件 CudaCode.CU 中有 2 个函数:
__global__ void Power_of_02(int &a)
{
a=a*a;
}
//***************
__global__ void Power_of_03(int &a)
{
int tempt = a;
Power_of_02(a); //a=a^2;
a= a*tempt; // a = a^3
}
和内核:
__global__ void CudaProcessingKernel(int *dataA ) //kernel function
{
int bx = blockIdx.x;
int tx = threadIdx.x;
int tid = bx * XTHREADS + tx;
if(tid < 16)
{
Power_of_03(dataA[tid]);
}
__syncthreads();
}
我觉得是对的,但是出现错误:calla __global__ function("Power_of_02") from a __global__ function("Power_of_03") 只允许在compute_35及以上架构上使用
为什么我错了?如何修复它?
【问题讨论】:
标签: function cuda parallel-processing call global