level 1
merliny11
楼主
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cutil.h>
#include "kmp_kernel.cu"
#include "test_file.h"
int main()
{
char d[50];
int d_len,t_len;
char *dd,*d_text;;
int *d_num;
printf("dst:");
scanf("%s",&d);
d_len=strlen(d);
t_len=strlen(text);
int dd_size=(sizeof(char))*d_len;
cudaMalloc((void **)&dd,dd_size);
cudaMemcpy(dd,d,dd_size,cudaMemcpyHostToDevice); cudaMalloc((void **)&d_text,sizeof(char)*t_len);
cudaMemcpy(d_text,text,sizeof(char)*t_len,cudaMemcpyHostToDevice);
cudaMalloc((int **)&d_num,sizeof(int));
cudaMemcpy(d_num,num,sizeof(int),cudaMemcpyHostToDevice);
unsigned int timer=0;
cutCreateTimer(&timer);
cutStartTimer(timer);
dim3 block(16,16);
dim3 grid(t_len/256+1,1);
kmp_kernel<<<grid,block>>>(dd,d_len,t_len,d_text,d_num);
cudaMemcpy(num,d_num,sizeof(int),cudaMemcpyDeviceToHost);
cutStopTimer(timer);
printf("Processing time: %f (ms)\n",cutGetTimerValue(timer));
cutDeleteTimer(timer);
printf("the number of the string is %d\n",*num); }
应该是一个KMP算法的字符串匹配程序,谁能详细解释一下啊
2012年04月22日 07点04分
1
#include <stdlib.h>
#include <string.h>
#include <cutil.h>
#include "kmp_kernel.cu"
#include "test_file.h"
int main()
{
char d[50];
int d_len,t_len;
char *dd,*d_text;;
int *d_num;
printf("dst:");
scanf("%s",&d);
d_len=strlen(d);
t_len=strlen(text);
int dd_size=(sizeof(char))*d_len;
cudaMalloc((void **)&dd,dd_size);
cudaMemcpy(dd,d,dd_size,cudaMemcpyHostToDevice); cudaMalloc((void **)&d_text,sizeof(char)*t_len);
cudaMemcpy(d_text,text,sizeof(char)*t_len,cudaMemcpyHostToDevice);
cudaMalloc((int **)&d_num,sizeof(int));
cudaMemcpy(d_num,num,sizeof(int),cudaMemcpyHostToDevice);
unsigned int timer=0;
cutCreateTimer(&timer);
cutStartTimer(timer);
dim3 block(16,16);
dim3 grid(t_len/256+1,1);
kmp_kernel<<<grid,block>>>(dd,d_len,t_len,d_text,d_num);
cudaMemcpy(num,d_num,sizeof(int),cudaMemcpyDeviceToHost);
cutStopTimer(timer);
printf("Processing time: %f (ms)\n",cutGetTimerValue(timer));
cutDeleteTimer(timer);
printf("the number of the string is %d\n",*num); }
应该是一个KMP算法的字符串匹配程序,谁能详细解释一下啊