标签:
CUDA与Linux系统
目录
在Linux系统上安装CUDA toolkit需要下载两个包:驱动和toolkit
toolkit包中提供多项功能,有显卡驱动、toolkit和samples;安装过程为:
PATH=/usr/local/cuda-7.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH
参考文献:CUDA_Getting_Started_Linux.pdf
本来CUDA toolkit中自带显卡驱动,但是由于自动安装显卡驱动后,导致Linux系统图形界面无法启动,所以需要手动下载和安装显卡驱动,其安装过程为:
参考文献:Linux下,手动安装NVIDIA显卡官方驱动;
对于CUDA的调式工具GDB,需要使用GPU的设备。但是当在图形界面时,GPU设备已经被占用着,所以若需要使用CUDA GDB需要退出X server,进入init 3。其使用过程为:
图 1
图 2
图 3
图 4
参考文献:cuda-gdb.pdf
Visual Profiler是NVIDIA提供的图形化分析工具,其在成功安装CUDA toolkit后,就能够使用。通过Profiler能够对CUDA 应用的CPU和GPU的时间节点进行分析,并能够调优CUDA应用的性能。Visual Profiler的简单使用方法如下所示:
1. 启动:在控制终端输入命令:nvvp;如图 5所示的启动后界面。
图 5
2. 新建session:其创建入口为:FileàNew Session,如图 6所示是新建Session对话框,在该对话框中的File输入框中输入需被分析的可执行文件。
图 6
3. 分析结果:在新建Session对话框中输入相应的可执行文件后,就能产生分析结果,如图 7所示。
图 7
通过nvprof可以以命令行的形式分析和调优CUDA应用程序。nvprof的使用形式是:
nvprof [options] [CUDA-application] [application-arguments]
1) summary模型
这是nvprof的默认模型,在这个模型中只简单输出核函数和CUDA内存复制性能。如对于需要被测试的可执行文件boxFilterNPP,可直接执行命令:nvprof boxFilterNPP。如图 8所示的结果。
图 8
2) GPU-Trace和API-Trace模型
这个模型能够以时间轴顺序提供所有在GPU发生的活动点,每个核函数的执行或是复制/赋值都能够详细的显示。如图 9所示。
图 9
3) Event/metric Summary模型
通过这个模型能够在指定的NVIDIA GPU上显示所有可用的Event/metric,
图 10
4) Event/metric Trace Mode
通过这个模型能够显示每个核函数的event和metric值。如图 11所示。
图 11
参考文献:CUDA_Profiler_Users_Guide.pdf
Linux中也有CUDA的集成开发工具nsight。其中在CUDA toolkit中自带nsight,所以当成功安装toolkit后,就可以启动nsight。其使用过程为:
1) 启动:在终端中输入:nsight;如图 1所示是启动后的nsight界面。
图 12
2) 创建项目:在nsight界面中:FileàProjectàCUDA c/c++ projectàExecutableà其中一项,如图 2所示的Executable选项。
图 13
3) 编译:创建可执行文件:右击项目àBuild Project; 如图 3所示。
图 14
4) 执行:右击项目àRun AsàCocal c/c++ Application;如图 4所示。
图 15
参考文献:nsight_Eclipse_Edition_getting_started.pdf;
nsight也集成了gdb,通过nsight可用非常方便了对cuda程序进行调式。其中若需要进入Debug模型需要退出X server,进入init 3。当单击Debug按钮时,就会自动进入Debug Perpspective, 如图 16所示。其中当进入Debug模式时,就会在main函数中暂停。其中在nsight的工具栏中有四个相关的调式按钮:
图 16
nsight同时集成了Profiler的分析工具,当打开一个项目后就能够非常方便了进行性能分析。其分析Perpspective与visual Profiler一样,如图 17所示。
图 17
运行安装完nvml库后,
将/usr/src/gdk/nvml/lib/目录下的两个文件复制到/usr/lib64,并覆盖以前文件。若在项目中需要使用该库,则需添加所以的lib路径,如在nsight项目中按如图 18所示进行添加。
图 18
若在项目中需要使用nvml库,则只需在源程序中包含nvml.h文件,同时在环境中需要添加nvml.h文件所在的路径,如图 19所示。
图 19
标签:
原文地址:http://www.cnblogs.com/hlwfirst/p/5003626.html