我是CUDA的新手,无法理解我做错了什么.
我正在尝试计算它在数组中具有id的对象的距离,数组中的轴x和数组中的轴y以找到每个对象的邻居
__global__
void dist(int *id_d, int *x_d, int *y_d,
int *dist_dev, int dimBlock, int i)
{
int idx = threadIdx.x + blockIdx.x*blockDim.x;
while(idx < dimBlock){
int i;
for(i= 0; i< dimBlock; i++){
if (idx == i)continue;
dist_dev[idx] = pow(x_d[idx] - x_d[i], 2) + pow(y_d[idx] - y_d[i], 2); // error here
}
}
}
Run Code Online (Sandbox Code Playgroud)
是pow不是在内核代码中定义的?
为什么错误
#include <stdio.h>
int main(void)
{
int *p, size, i;
FILE *fp;
fp = fopen("input.txt","r");
fscanf(fp, "%d", &size);
p = (int*)malloc(size*sizeof(int)); //error
for (i = 0; i <size; i++)
fscanf(fp, "%d", &p[i]);
for (i = size-1; i>= 0; i--)
printf("%d\n", p[i]);
free(p);
fclose(fp);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在ubuntu上使用"Geany"
并在Geany编译器上:
fileName.c:11:2:警告函数'malloc'的隐式声明[-Wimplicit-function-declatation] fileName.c:11:12:警告:内置函数'malloc'的不兼容隐式声明[默认启用] fileName.c:18:12:warning:函数'free'的隐式声明[-Wimplicit-function-declaration] fileName.c:18:12:警告:内置函数'free'的不兼容隐式声明[enabled-by默认]编译成功完成