opencv GPU里surf的运用问题

    cvtColor(m_img,img_grey,CV_BGR2GRAY);
    img_gpu.upload(img_grey);
          //cout<<"upload img to gpu finished..."<<endl;
    SURF_GPU gpusurf(2000);
    gpusurf(img_gpu,GpuMat(),img_keypoint_gpu,img_descriptor_gpu);
         //cout<<"compute keypoints and descriptors finished...."<<endl;
    gpusurf.downloadKeypoints(img_keypoint_gpu,img_keypoints);
         //cout<<"download keypoints_gpu to keypoints finished..."<<endl;
         //cout<<"Constructor end!"<<endl;

有这么一段GPU代码,对gpu不是很了解。。。。如果要改成普通的surf,要怎么改?能给点建议吗(用什么函数。。。。)
谢谢大家了