我在第10行出现错误__global__ void kernel
。我必须做错什么? 这是我的代码:cuda“预计类型说明符”
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <time.h>
#define F 20
__global__ void kernel(double* dev_fitness,double* dev_prob, F)
{
int i = blockIdx.x;
double maxfit;
maxfit=dev_fitness[0];
if(i<F)
{
if(dev_fitness[i]>maxfit)
maxfit=dev_fitness[i];
}
if(i<F)
{
dev_prob[i]=(0.9*(dev_fitness[i]/maxfit))+0.1;
}
}
double prob[F];
double fitness[F];
int main()
{
double* dev_fitness;
size_t fitnessSize= F*sizeof(double);
cudaMalloc(&dev_fitness,fitnessSize);
cudaMemcpy(dev_fitness,fitness,fitnessSize,cudaMemcpyHostToDevice);
//--------------
double* dev_prob;
size_t probSize=F*sizeof(double);
cudaMalloc(&dev_prob,probSize);
cudaMemcpy(dev_prob,prob,probSize,cudaMemcpyHostToDevice);
kernel <<<F,1>>> (dev_fitness,dev_prob,F);
cudaMemcpy (fitness,dev_fitness,fitnessSize,cudaMemcpyDeviceToHost);
cudaMemcpy (prob,dev_prob,probSize,cudaMemcpyDeviceToHost);
cudaFree (dev_fitness);
cudaFree (dev_prob);
}
好的,你的更好。 – 2013-02-16 15:41:52