CUDA dll的创建与测试

CUDA dll的创建与测试

ID:42594900

大小:608.67 KB

页数:16页

时间:2019-09-18

CUDA dll的创建与测试_第1页
CUDA dll的创建与测试_第2页
CUDA dll的创建与测试_第3页
CUDA dll的创建与测试_第4页
CUDA dll的创建与测试_第5页
资源描述:

《CUDA dll的创建与测试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CUDAdll的创建与测试创建dll第一步新建一个win32dll项目。选择dll自动生成了dll相关的框架。库函数入口点DllMain: 第二步,添加CUDA函数相关的文件CUDAdll.cuh和CUDAdll.cu并设置框架属性。 为其设置生成属性:CUDAdll.cuh文件设置项目“生成自定义”选择CUDA4.0并打钩设置CUDAdll.cu文件的生成属性,选择CUDAC/C++。此时如果编译该dll项目,会出现问题,报错如下:1>Link:1> 所有输出均为最新。1>    正在创建库D:elecmymfctestVS

2、2010pGPUDemosCUDAdlltestDebugCUDAdlltest.lib和对象D:elecmymfctestVS2010pGPUDemosCUDAdlltestDebugCUDAdlltest.exp1>CUDAdll.cu.obj:errorLNK2019:无法解析的外部符号___cudaRegisterFatBinary@4,该符号在函数"void__cdecl__sti____cudaRegisterAll_42_tmpxft_00000e60_00000000_3_CUDAdll_cpp

3、1_ii_564e775d(void)"(?__sti____cudaRegisterAll_42_tmpxft_00000e60_00000000_3_CUDAdll_cpp1_ii_564e775d@@YAXXZ)中被引用1>CUDAdll.cu.obj:errorLNK2019:无法解析的外部符号___cudaUnregisterFatBinary@4,该符号在函数"void__cdecl__cudaUnregisterBinaryUtil(void)"(?__cudaUnregisterBinaryUtil@@YAXXZ)中

4、被引用1>D:elecmymfctestVS2010pGPUDemosCUDAdlltestDebugCUDAdlltest.dll:fatalerrorLNK1120:2个无法解析的外部命令1>1>生成失败。意思是链接的时候出错了,找不到链接外部符号,原因是缺少cuda的运行库,通过项目的链接输入中添加CUDA的运行库cudart.lib可以解决。至此,在没有编辑cuda函数实现文件的情况下可以正常将项目编译成功,则表明基本上将CUDAdll的框架搭建成功了。第三步,编辑CUDAdll的实现文件对应的函数。在CUDA

5、dll.cuh中输入内容如下:#include       //引入C函数库-实际上本程序就是应该以C的方式编译,尽管其后缀为cpp类型#include#include //引入CUDA运行时库头文件 #ifdef__cplusplus//指明函数的编译方式,以得到没有任何修饰的函数名extern"C"{#endif #ifdefCUDADLLTEST_EXPORTS#defineCUDADLLTEST_API__declspec(dllexport) //导出符

6、号宏定义#else#defineCUDADLLTEST_API__declspec(dllimport)#endif       externCUDADLLTEST_APIintcount;       //要导出的全局变量       CUDADLLTEST_APIboolInitCUDA(void);    //要导出的CUDA初始化函数       CUDADLLTEST_APIvoidshowHelloCuda(void);//要导出的测试函数 #ifdef__cplusplus}#endif接着在在CUDAdll.cu中输

7、入内容如下:#include"stdafx.h" //引入预编译头文件#include"CUDAdll.cuh"//引入导出函数声明头文件  //初始化CUDAexternintcount=0; boolInitCUDA(void)//CUDA初始化函数{      printf("Starttodetectedevices.........");//显示检测到的设备数      cudaGetDeviceCount(&count);//检测计算能力大于等于1.0的设备数      if(count==0){          

8、   fprintf(stderr,"Thereisnodevice.");             returnfalse;      }      printf("%ddevice/sdetected.",count);/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。