美文网首页
【CUDA】-编程中的一些问题

【CUDA】-编程中的一些问题

作者: 不会code的程序猿 | 来源:发表于2017-05-10 19:36 被阅读263次

    1.显示blockDim等变量出现了未定义的错误:


    Paste_Image.png

    解决方法:添加头文件

    #include "device_launch_parameters.h"
    

    2.无法打开 源 文件 "helper_cuda.h"

    Paste_Image.png

    首先找到这些头文件的位置:
    C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5\common\inc


    Paste_Image.png

    将该位置include到项目中

    Paste_Image.png
    但是仍然报错,不过程序可以正确运行了。
    第二种方案:If you want to copy the samples to a customized place, you have to copy the whole samples dir, or modify some code/compile options to include staff in common/ dir.
    3.使用__device__ __managed__报错
    error : managed variables require architecture compute_30 or higher
    Paste_Image.png
    解决方法:由于vs 2013默认编译sm_20,但是Unifiled Memory需要3.0以上的计算能力,所以修改编译的条件。
    Paste_Image.png
    4.kernel中递归调用出错
    Paste_Image.png
    需要设置-rdc=true
    5.在一个cu文件中,先include .h文件,再include .cuh文件报错,不知道原因是什么,但是如果先包含cuh文件再包含h文件则可以正确运行。
    6.在global核函数中,不能直接使用thrust的device_vector,作为参数传递。https://stackoverflow.com/questions/5510715/thrust-inside-user-written-kernels
    thrust::device_vector<int> dev;
    int * raw_ptr = thrust::raw_pointer_cast(&dev[0]);
    __global__ void test(int* raw, int len){
    ....
    }
    test<<<grid,block>>> test(raw_ptr,dev.size());
    

    相关文章

      网友评论

          本文标题:【CUDA】-编程中的一些问题

          本文链接:https://www.haomeiwen.com/subject/vdugtxtx.html