导航:首页 > 源码编译 > cudabyexample源码

cudabyexample源码

发布时间:2023-03-24 10:13:11

1. cuda编程问题 运行出错

Compiling CUDA source file ..\..\src\caffe\layers\bnll_layer.cu...
1>
1> D:\Caffe\WindowsCaffe_detect\Caffe_Windows_Detection-master\build\MSVC2013>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env --cl-version 2013 -ccbin "D:\gzSoft\vs2013\VC\bin\x86_amd64" -I../../3rdparty/include -I../../src -I../../include -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\cuda\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static --verbose --keep -Xcudafe "--diag_suppress=exception_spec_override_incompat --diag_suppress=useless_using_declaration --diag_suppress=field_without_dll_interface" -D_SCL_SECURE_NO_WARNINGS -DGFLAGS_DLL_DECL= -D_VARIADIC_MAX=10 -DWIN32 -D_DEBUG -D_CONSOLE -D_UNICODE -DUNICODE -Xcompiler "/EHsc /W1 /nologo /Od /Zi /RTC1 /MDd " -o Debug\bnll_layer.cu.obj "D:\Caffe\WindowsCaffe_detect\Caffe_Windows_Detection-master\src\caffe\layers\bnll_layer.cu"
1> #$ _SPACE_=
1> #$ _CUDART_=cudart
1> #$ _HERE_=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin
1> #$ _THERE_=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin
1> #$ _TARGET_SIZE_=
1> #$ _TARGET_DIR_=
1> #$ _TARGET_SIZE_=64
1> #$ _WIN_PLATFORM_=x64
1> #$ TOP=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin/..
1> #$ NVVMIR_LIBRARY_DIR=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin/../nvvm/libdevice
1> #$ PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin/../open64/bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin/../nvvm/bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin/../lib;D:\gzSoft\vs2013\VC\bin\x86_amd64;D:\gzSoft\vs2013\VC\bin;C:\Program Files (x86)\Windows Kits\8.1\bin\x86;;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools;D:\gzSoft\vs2013\Common7\Tools\bin;D:\gzSoft\vs2013\Common7\tools;D:\gzSoft\vs2013\Common7\ide;C:\Program Files (x86)\HTML Help Workshop;;C:\Program Files (x86)\MSBuild\12.0\bin\;C:\Windows\Microsoft.NET\Framework\v4.0.30319\;;C:\Program Files\DahuaTech\MV Viewer\Runtime\x64\;C:\Program Files\DahuaTech\MV Viewer\Runtime\x64\GenICam_v2_4\bin\Win64_x64\;C:\Program Files\DahuaTech\MV Viewer\Runtime\Win32\;C:\Program Files\DahuaTech\MV Viewer\Runtime\Win32\GenICam_v2_4\bin\Win32_i86\;C:\Program Files\Basler\pylon 4\pylon\bin\x64;C:\Program Files\Basler\pylon 4\pylon\bin\Win32;C:\Program Files\Basler\pylon 4\genicam\Bin\Win64_x64;C:\Program Files\Basler\pylon 4\genicam\Bin\Win32_i86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;D:\gzSoft\opencv2.4.11\build_Sour\vc11\bin;D:\gzSoft\opencv2.4.10\build_Sour\vc10\bin;D:\gzSoft\qt5.2.1\5.2.1\msvc2012\bin;D:\MinGW\MinGW\bin;D:\gzSoft\vs2012\VC\bin;D:\gzSoft\javaTool\jdk1.7\bin;D:\gzSoft\javaTool\jdk1.7\jre\bin;D:\gzSoft\matlab\runtime\win64;D:\gzSoft\matlab\bin;D:\gzSoft\matlab\polyspace\bin;D:\software\eslib\bin;D:\gzSoft\lualib;D:\gzSoft\halcon12\bin\x86sse2-win32;D:\gzSoft\halcon12\FLEXlm\x86sse2-win32 ;C:\Program Files (x86)\Toshiba Teli\TeliCamSDK\TeliCamApi\bin\x86;C:\Program Files (x86)\CMake\bin\;D:\Program\opencv_pro\opencv-3.3.0\opencv-3.3.0\bulid\install\x86\vc11\bin;D:\gzSoft\doxygen\bin;D:\gzSoft\python2.7.10;D:\gzSoft\python2.7.10\Scripts;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;D:\Caffe\WindowsCaffeProject\caffe-master\Build\x64\Debug;
1> #$ INCLUDES="-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin/../include"
1> #$ LIBRARIES= "/LIBPATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin/../lib/x64"
1> #$ CUDAFE_FLAGS=--sdk_dir "C:\Program Files (x86)\Windows Kits\8.1"
1> #$ PTXAS_FLAGS=
1> bnll_layer.cu
1> nvcc fatal : Failed to create the host compiler response file 'x64/Debug/bnll_layer.compute_52.cpp1.ii.res'
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\CUDA 7.5.targets(604,9): error MSB3721: 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env --cl-version 2013 -ccbin "D:\gzSoft\vs2013\VC\bin\x86_amd64" -I../../3rdparty/include -I../../src -I../../include -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\cuda\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static --verbose --keep -Xcudafe "--diag_suppress=exception_spec_override_incompat --diag_suppress=useless_using_declaration --diag_suppress=field_without_dll_interface" -D_SCL_SECURE_NO_WARNINGS -DGFLAGS_DLL_DECL= -D_VARIADIC_MAX=10 -DWIN32 -D_DEBUG -D_CONSOLE -D_UNICODE -DUNICODE -Xcompiler "/EHsc /W1 /nologo /Od /Zi /RTC1 /MDd " -o Debug\bnll_layer.cu.obj "D:\Caffe\WindowsCaffe_detect\Caffe_Windows_Detection-master\src\caffe\layers\bnll_layer.cu"”已退出,返回代码为 1。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

2. GPU高性能运算之CUDA,CUDA编程报错,大牛帮忙解答啊

唉,是自己粗心大意,忘了给main函数入口了,在主机端代码中加上函数声明和主函数就行了:
//函数声明
void runTest(int argc, char** argv);
//主函数
int main(int argc, char** argv)
{
runTest(argc,argv);
CUT_EXIT(argc,argv); //退出CUDA
}

3. 如何使用cudaMallocPitch和cudaMemcpy2D

有时候,我们需要在比较大的项目中调用CUDA,这就涉及到MFC+CUDA的环境配置问题,以矩阵相乘为例,在MFC中调用CUDA程序。我们参考罗振东[email protected](国防科学技术大学计算机学院)的方法。

环境: Windows 7 SP1
Microsoft Visual Studio 2010
CUDA 5.0

步骤:

1.首先建立一个空的名叫Matrix Multiplication_KahanMFC的“FCM应用程序”项目:

点击“确定”,这时弹出如下窗口

我们需要对默认项目进行一些修改,点击“下一步”,我们设置一个空的MFC项目,选择“单个文档”和“MFC标准”:

点击“完成”。
2.创建CUDA的调用接口函数及其头文件
(1)头文件
“添加”--> “新建项”-->“Visual C++”-->“头文件(.h)”-->“名称”-->“CUDA_Transfer.h” -->“添加”,如下图:

在CUDA_Transfer.h中添加如下代码:
//CUDA_Transfer.h

#include
#include "math.h"

using namespace std;

int run_cuda(float* GPU, float* CPU);
如下图所示:

(2)函数
按照和增加头文件相似的方法,添加函数。“添加”--> “新建项”-->“Visual C++”-->“C++文件(.cpp)” -->“名称”-->“CUDA_Transfer.cpp” -->“添加”,如下图:

在CUDA_Transfer.cpp中添加如下代码:
//CUDA_Transfer.cpp
#include "CUDA_Transfer.h"
#include "stdafx.h"

extern "C" int runtest(float* GPU, float* CPU);

int run_cuda(float* GPU, float* CPU)
{
runtest(GPU,CPU);
return 0;
}
如下图所示:

需要注意的是在MFC的文件中是不能包含(include).cu文件的,会报错,所以我们使用extern "C"的方式来实现函数的调用。
3. 创建存放cuda 代码的筛选器,名为CUDA
“添加”--> “新建筛选器”,重命名为CUDA

4. 在筛选器CUDA中创建一个CUDA源代码文件,kernel.cu。
我们直接把已经写好的矩阵相乘的程序kernel.cu复制到项目目录下,添加到CUDA筛选器中去。
添加”--> “现有项”-->“kernel.cu”--> “添加”:

把kernel.cu的int main()函数改为extern "C" int runtest(float* GPU, float* CPU),两个参数用来获得GPU和CPU计算所使用的时间,单位为毫秒。
5. 右击项目-->“生成自定义”:

在弹出的窗口中勾选CUDA 5.0(.target,.props)。如果使用其他版本的CUDA,就勾选对应的版本:

点击“确定”。
6. 修改 kernel.cu的编译链接设置
在解决方案资源管理器中右击kernel.cu文件-->“属性”,在弹出窗口中-->“常规”-->“项类型”的下拉列表中选择

点击“应用”后,“常规”下方会出现一个“CUDA C/C++”的设置,没有特殊需求,不需要修改,点击“确定”。

7.修改工程设置。

工程设置需要修改“链接器”-->“输入”-->“附加依赖项”和“生成事件”-->“预先生成事件”-->“命令行”。需要设置的参数比较多,我们采用比较简单的方法。

我们新建一个空的CUDA项目,在这个空CUDA项目的项目属性中找到“链接器”-->“输入”-->“附加依赖项”,把“附加依赖项”中所包含的项复制到我们的MFC项目中:

按照同样的方法,设置“生成事件”-->“预先生成事件”-->“命令行”:

设置完成后,点击“确定”。
8.修改MFC文件,完成调用。
我们需要在MFC中调用CUDA程序,显示出GPU和CPU计算两个1024*1024矩阵相乘所消耗的时间。
在Matrix Multiplication_KahanMFCView.cpp中包含(include)"CUDA_Transfer.h"
文件;在CMatrixMultiplication_KahanMFCView::OnDraw(CDC* pDC)中添加如下代码:

float GPU;
float CPU;
run_cuda(&GPU, &CPU);

CString strGPU,strCPU;
strGPU.Format(_T("GPU:%f \n"),GPU);
strCPU.Format(_T("CPU:%f \n"),CPU);
pDC->TextOut(0,0,strGPU);
pDC->TextOut(0,30,strCPU);

如图所示:

然后重新生成解决方案,运行。
计算要花费一些时间,需要等待,测试的时候可以把矩阵大小改小一些。因为把程序加到了OnDraw中,所以每当刷新窗口时候(例如调整窗口大小时),都会调用。由于计算耗时比较长,窗口看起来会像无响应一样,等计算完成就好了。
运行的结果如下:

在矩阵比较大的情况下,GPU的加速效果明显,GPU耗时只需要620ms,而CPU需要23438ms,要花费将近40倍的时间。

4. cuda程序编译方面,各位都有哪些方法和经验

首先创建一个soTest的文件夹,里面有两个文件deviceQuery.cpp, t.cpp。 12345678deviceQuery.cpp的代码可以参考CUDASDK t.cpp的源代码如下: #include int cudev(int argc, char** argv);int main(int argc, char ** argv){ cudev(argc,argv); return 0;}然后在当前目录下输下命令

阅读全文

与cudabyexample源码相关的资料

热点内容
科技编译原理动画 浏览:643
精彩发现app里怎么投保意外险 浏览:145
美国电影爱情电影尺度大的 浏览:376
8个人在一个名为列车上 浏览:968
杨浦区少儿编程 浏览:944
免登录php网盘源码 浏览:422
王的命令在线观看全集 浏览:927
西安市社保卡APP叫什么 浏览:605
怎么关掉华为手机自动更新app 浏览:906
韩国19禁 浏览:180
有部电影叫什么长生 浏览:458
磁盘加密的过程中能使用吗 浏览:352
用乐高拼一个小小的解压球 浏览:22
显示服务器读取超时怎么办 浏览:501
残芯twrp解压密码 浏览:162
数控车智能编程 浏览:979
php正则表达式匹配任意字符 浏览:320
在文件夹什么word文档 浏览:991
刺激爱情片 浏览:644
电影迷途少女微笑片段 浏览:722