CUDA并行程序设计 开发环境搭建与远程调试

Posted akai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CUDA并行程序设计 开发环境搭建与远程调试相关的知识,希望对你有一定的参考价值。

课题需要用到GPU加速。目前使用的台式电脑只有核心显卡,而实验室有一台服务器装有NVIDIA GTX980独显。因此,想搭建一个CUDA的开发环境,来实现在台式机上面开发cuda程序,程序在服务器而不必每次都跑去服务器上面。
目前找到的远程调试方案有三个:

  1. Windows平台下,通过Nsight Monitor连接 带有NVIDIA显卡的Windows笔记本电脑。
  2. Linux平台下,通过Nsight Eclipse Edition 连接Linux服务器
  3. 通过Xshell连接到服务器(操作系统为CentOS 7),用Xmanager启动Nsight Eclipse Edition图形界面。由于开发时可能会改动服务器环境参数和配置导致其他程序出错,并且我没有服务器root权限,因此尽量不在服务器上进行开发。

一、Windows平台 Nsight Monitor方案##

客户端:台式机,core I3-6100,核心显卡,4G内存, SSD,Windows 7 64bit sp1
服务器端:笔记本电脑,core I5-450m,GT310m, 4G内存, SSD, Windows 7 64bit sp1

  1. 安装Visual studio 2012
    服务器最好也要安装。不安装Nsight VS Edition好像安装不上(未证实)

  2. 安装显卡驱动
    我的客户端因无NVIDIA显卡,因此只在服务器端安装驱动。

  3. 在客户端与服务器安装cuda toolkit (Win 64bit)
    进入NVIDIA开发者网站https://developer.nvidia.com/cuda-toolkit下载相应的CUDA Toolkit。注意客户端与服务器版本最好相同。NVIDIA网站最近因“网站尚未备案”无法访问,可将http改为https。我下载安装版本为cuda toolkit 8.0 对应 Nsight Monitor 5.4、Nsight Visual Studio Edition 5.4。

  4. 参考CUDA远程调试
    设置客户端与服务器的Nsight Monitor,在客户端添加Trusted Machines ip地址;关闭防火墙;建立CUDA工程,修改Nsight User Properties,然后编译调试

遇到的坑有三个:

二、Linux平台 Nsight Eclipse Edition方案##

客户端:虚拟机,核心显卡, Ubuntu 16.04.4 LTS
服务器端:GTX980, CentOS 7

  1. 安装虚拟机与linux
    台式机装的是Windows系统,因此要在虚拟机上安装Linux系统。
    我从清华大学开源镜像站下载VirtualBox与Ubuntu 16.04.4 LTS 镜像安装文件
    .高校与教育网用户还可以访问
    浙大开源镜像站http://mirrors.zju.edu.cn/.
    其他国内用户可访问
    阿里云开源镜像站https://opsx.alibaba.com/mirror
    网易开源镜像站http://mirrors.163.com/

    virtualbox 安装 ubuntu系统参考 基于VirtualBox虚拟机安装Ubuntu图文教程

  2. Linux系统下安装NVIDIA 显卡驱动与CUDA toolkit
    参考我之前的博客http://www.cnblogs.com/kaikaikai/p/8343816.html。 在NVIDIA开发者网站https://developer.nvidia.com/cuda-toolkit下载对应版本的CUDA toolkit Linux run文件并执行,按照安装脚本配置路径即可。最好显卡驱动和CUDA分开安装

    注意客户端上由于没有NVIDIA的显卡,不需要(也无法)安装NVIDIA显卡驱动。要想简化配置,客户端的CUDA版本最好与服务器相同,toolkit安装位置及Samples的安装位置最好也相同。如不同需在Nsight中添加路径。我安装版本为cuda 7.0

  3. 客户端上重装gcc与g++,使其版本号与服务器相同
    参考Ubuntu如何重新安装g++编译器。通过gcc -v可查看gcc版本。若安装完成后找不到gcc(g++),在/usr/bin/中添加链接
    ln -s gcc-* gcc
    ln -s g++-* g++
    其中gcc-*为所安装gcc版本,如我安装的为gcc 4.8,g++ 4.8

  4. 在服务器防火墙添加2345端口,或关闭防火墙

  5. 参考NSight Eclipse Edition 下创建CUDA程序并执行远程编译及调试 建立CUDA工程,然后编译调试。

Note

  • NSIGHT ECLIPSE EDITION Getting Started Guide中列出了三种开发模式:(1)、本机编辑生成调试 (2)、本机编辑生成、远程调试 (3)、本机编辑代码、远程生成调试。

    若采用模式(3)需添加远程机(服务器)的相关路径,否则会报错,如:

error: helper_functions.h: No such file or directory

如果第2步中客户端服务器安装位置相同,通常不需要额外添加路径
  • 采用模式(3)时,若编译生成时出现报错

    需将客户端与服务器的user.name 设置为同一个名字,user.email为同一个地址。
    git config --global user.name <anyname>
    git config --global user.email <anyemail>

  • 远程Debug连接超时,需打开服务器2345端口

以上是关于CUDA并行程序设计 开发环境搭建与远程调试的主要内容,如果未能解决你的问题,请参考以下文章

环境搭建--使用pytharm远程调试树莓派

HBase二次开发之搭建HBase调试环境,如何远程debug HBase源代码

spark JAVA 开发环境搭建及远程调试

Python 远程开发环境部署与调试

个人电脑如何搭建深度学习/机器学习开发环境?

[转]CUDA在Windows下的软件开发环境搭建