导言:
首先,英伟达公司的NSIGHT实在是个无品的产品,至今产品已经出到Parallel Nsight 1.51 released。虽然产品本身已经免费了【1】,但是安装它的话需要先安装VS的补丁,您一旦安装补丁,好好的绿色VS瞬间进入了试用期。更重要的是,您如果真买了正版VS,恭喜您,您想调试CUDA程序的话要买两块显卡【2】!!!NVIDIA显卡什么价钱,我就不说了。对于我们这些初学者而言简直就是噩梦。所以,作为替代品我们选择SDK进行开发,虽然麻烦一点,很多东西需要手工来配置,但是,省钱!!!对于软件的了解也不无益处。
第二,我发现很少有文章针对SDK开发动态连接库(及dll)程序有详尽而入门级的指导,所以小e同学特别好心地将摆弄了好几天的经验在这里和同志们交流,实践中遇到问题,也欢迎在这里提问哦~
准备工作:
正是进行工作之前,你需要已经完成了以下准备工作:1,已经成功安装Toolkit 并运行成功;2,成功安装SDK;3,成功编译运行SDK中的C语言例子程序(如果运行不了请检查项目属性中是否:连接器->其他程式库目录是否配置有误,如果有误会产生.lib的连接错误);4,对dll文件的使用有一定了解(喂,至少知道它是做什么的吧,还有和lib输入库文件的关系)。
没有完成以上步骤的同学,请先在【3】下载哦~
正式工作:
激动人心的正式步骤就要开始了!!!我们在这里将会解决一下几个主要困难:1,如何将一个实例中生成exe的工程改为生成dll的工程;2,如何测试dll工程;3,如何release最终的产品。
第一步:
我们在sdk C语言例子程序中找到一个比较简单的只有一个文件的工程(偷懒的行为。。),小e在这里用的是“cudaOpenMP”。然后,记得复制一个它的备份哦(不然,等到您把它改得面目全非后,再想看原来的例子工程你就泪目吧~)。打开工程,运行一下,可以看到结果如下:(Fig.1)
Fig.1
我们这次工作的目的就是将此工程拆成两个工程,一个生成dll和lib输入库文件,另一个负责生成exe文件加载测试我们的dll文件。而原工程中只有一个.cu文件,列在这里: