在集群系统和云计算系统中部署GPU开发环境的方法与流程

文档序号:12039339阅读:254来源:国知局
本发明基本上涉及服务器领域,更具体地来说,涉及一种在集群系统和云计算系统中部署GPU开发环境的方法。

背景技术:
GPU是图形处量单元(GraphicProcessorUnit)的缩写。GPU通用计算2007年左右兴起,引发了一场高性能计算革命。它极高的运算能力和读写带宽迅速吸引学术界、工业界的关注。越来越多的主流商业软件、开源软件使用GPU加速,并取得成功。日益增多的高性能计算集群和云计算平台,在建设规划时就采用了GPU加速设备。运行支持GPU加速的软件之前、开发GPU程序之前都需要部署GPU的开发环境,需要安装三类软件:驱动(GPUdriver)、CUDA程序编译器(cudatoolkit)和GPU程序开发套件(GPUcomputiingSDK)。目前,GPU开发环境在集群中的部署方式是在每个节点上手动安装,这样的部署方式技术要求高、繁琐、低效、易出错,主要表现在:技术要求高。GPU开发环境软件安装时,用到大量的linux系统命令和排错经验,还要深入了解GPU软件的众多命令行参数。GPU软件开发套件编译时会用到多个不常用的软件包,操作系统默认不安装这些软件包,需要从操作系统安装介质、第三方软件源代码或者网络安装缺失的软件包及其依赖包。这些缺失包的查找、安装过程技术要求很高,任何一步出错,都会导致安装失败。因此,操作人员需要精通linux操作系统和GPU开发环境软件。过程繁琐。安装过程包含查看操作系统类型和版本、下载对应版本的GPU开发环境软件、查找集群共享目录、将GPU开发环境软件上传至共享目录、切换到root账户、将操作系统运行等级切换为3、为GPU开发环境 软件添加可执行属性、安装GPU驱动、修改显示输出配置文件以保证仍用主板上的VGA输出屏幕图像、安装toolkit、输入cudatoolkit安装目录、将toolkit的bin目录和lib目录分别加入环境变量PATH和LD_LIBRARY_PATH、修改操作系统配置文件使所有用户登录系统时都能自动加载cudatoolkit的环境变量、安装操作系统缺失的软件包(libXi,libGLU,ligGL,libXmu,libglut)及其依赖包、安装GPU软件开发套件、设置安装目录、编译套件中示例代码。移除GPU开发环境软件过程包含卸载GPU开发套件、卸载cudatoolkit及环境变量配置文件、卸载GPU驱动、恢复操作系统自带集成显示芯片驱动以保证可以使用主板VGA接口输出屏幕。步骤很多,操作繁琐。低效。安装和卸载GPU开发环境软件过程繁琐,且需要手动交互操作,逐结点手动安装将花费很长时间。例如一套200个结点的小型集群,部署GPU开发环境可能需要几天的时间,如果出现报错,则将花费更多的时间。易出错。GPU开发环境软件安装、卸载过程中需要使用大量的命令参数,难以记忆。安装过程中,每个结点都需要输入驱动安装目录、cudatoolkit安装目录、设置环境变量、创建环境变量开机启动文件,大量重复操作时,极易出错,为后续使用留下隐患。同一集群经常由不同的人员改动、维护,操作习惯各不相同,造成配置混乱。手动操作没有日志文件,不利于后期排查,小问题长期积累,最终导致集群不可用。

技术实现要素:
针对上述现有技术的缺陷,本发明提出了一种在集群系统和云计算系统中部署GPU开发环境的方法,解决了如何提高GPU开发环境的部署效率的技术问题。根据本发明的一个方面,提供了一种在集群系统和云计算系统中部署GPU开发环境的方法,包括:步骤S1:检测当前账户是否是root账户,如果是,则安装GPU驱动程序;步骤S2:检测当前账户是否是root账户,如果是,则安装CUDA程序编译器;以及步骤S3:检测当前账户是否是root账户,如果是,则安装GPU软件开发套件。在所述方法中,所述步骤S1进一步包括:步骤S11:检测当前账户是否是root账户,如果是,则执行步骤S12;步骤S12:检测当前操作系统是否包含expect必需包,如果是,则执行步骤S13;步骤S13:检测当前操作系统类型和版本号;步骤S14:根据当前操作系统类型和版本号选择对应的GPU驱动程序;步骤S15:为所述GPU驱动程序添加可执行权限;步骤S16:检测当前操作系统运行级别,如果所述当前操作系统运行级别不是3则将其切换为3;步骤S17:安装所述GPU驱动程序;以及步骤S18:如果在所述步骤S15中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回所述步骤S15中检测得到的运行级别。在所述方法中,所述步骤S2进一步包括:步骤S21:检测当前账户是否是root账户,如果是,则执行步骤S22;步骤S22:检测当前操作系统是否包含expect必需包,如果是,则执行步骤S23;步骤S23:检测当前操作系统类型和版本号;步骤S24:根据所述当前操作系统类型和版本号选择对应的CUDA程序编译器;步骤S25:为所述CUDA程序编译器添加可执行权限;步骤S26:检测当前操作系统运行级别,如果所述当前操作系统运行级别不是3则将其切换为3;步骤S27:安装所述CUDA程序编译器;以及步骤S28:如果在所述步骤S25中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回所述步骤S25中检测得到的运行级别。在所述方法中,所述步骤S3进一步包括:步骤S31:检测当前账户是否是root账户,如果是,则执行步骤S32;步骤S32:检测当前操作系统是否包含expect必需包,如果是,则执行步骤S23;步骤S33:检测当前操作系统类型和版本号;步骤S34:根据所述当前操作系统类型和版本号选择对应的GPU软件开发套件;步骤S35:为所述GPU软件开发套件添加可执行权限;步骤S36:检测当前操作系统运行级别,如果所述当前操作系统运行级别不是3则将其切换为3;步骤S37:安装所述GPU软件开发套件;以及步骤S38:如果在所述步骤S35中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回所述步骤S35中检测得到的运行级别。在所述方法中,所述方法还包括:步骤S41:检测当前账户是否是root账户,如果是,则执行步骤S42;步骤S42:检测当前操作系统运行级别,如果所述当前操作系统运行级别不是3则将其切换为3;步骤S43:卸载所述GPU驱动程序;以及步骤S44:如果在所述步骤S42中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回所述步骤S42中检测得到的运行级别。在所述方法中,所述方法还包括:步骤S51:检测当前账户是否是root账户,如果是,则执行步骤S52;步骤S52:删除所述CUDA程序编译器的安装目录下的所有文件;以及步骤S53:删除当前操作系统中的环境变量配置文件。在所述方法中,所述方法还包括:步骤S61:检测当前账户是否是root账户,如果是,则执行步骤S62;以及步骤S62:删除所述GPU软件开发套件的所有文件。在所述方法中,所述GPU驱动程序、所述CUDA程序编译器和所述GPU软件开发套件安装在所述集群系统和云计算系统中的各个节点的相同目录中。在所述方法中,所述方法还包括:将所有操作步骤信息记录在日志文件中。在所述方法中,所述操作步骤信息包括操作时间、操作命令、操作账户和操作过程输出信息。本发明可以通过自动检测当前账户是否是root账户自动进行GPU开发环境部署,从而提高部署效率。附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1是根据本发明的总体实施例的流程图。具体实施方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。图1是根据本发明的总体实施例的流程图,在图1中:步骤S100(自动安装GPU驱动程序):检测当前账户是否是root账户,如果是,则安装GPU驱动程序。在本实施例中,自动检测是否为root用户操作,如果不是root用户,可以报错并提示切换至root用户操作步骤S102(自动安装CUDA程序编译器):检测当前账户是否是root账户,如果是,则安装CUDA程序编译器。在本实施例中,自动检测是否为root用户操作,如果不是root用户,可以报错并提示切换至root用户操作步骤S104(自动安装GPU软件开发套件):检测当前账户是否是root账户,如果是,则安装GPU软件开发套件。在本实施例中,自动检测是否为root账户,如果不是root账户,可以报错并提示切换至root账户。本实施例可以通过自动检测当前账户是否是root账户自动进行GPU开发环境部署,从而提高部署效率。其中,上述步骤S100的安装步骤可以具体包括以下步骤:检测当前账户是否是root账户,如果是,则执行以下步骤,如果不是可以报错并切换至root账户;检测当前操作系统是否包含expect必需包,如果是,则执行以下步骤;检测当前操作系统类型和版本号;根据当前操作系统类型和版本号选择对应的GPU驱动程序;为GPU驱动程序添加可执行权限;检测当前操作系统运行级别,如果当前操作系统运行级别不是3则将其切换为3;安装GPU驱动程序;以及如果在上述步骤中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回上述步骤中检测得到的运行级别。上述步骤S102的安装步骤可以具体包括以下步骤:检测当前账户是否是root账户,如果是,则执行以下步骤,如果不是可以报错并切换至root账户;检测当前操作系统是否包含expect必需包,如果是,则执行下述步骤;检测当前操作系统类型和版本号;根据当前操作系统类型和版本号选择对应的CUDA程序编译器;为CUDA程序编译器添加可执行权限;检测当前操作系统运行级别,如果当前操作系统运行级别不是3则将其切换为3;安装CUDA程序编译器;以及如果在上述步骤中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回上述步骤中检测得到的运行级别。上述步骤S104的安装步骤可以具体包括以下步骤:检测当前账户是否是root账户,如果是,则执行以下步骤,如果不是可以报错并切换至root账户;检测当前操作系统是否包含expect必需包,如果是,则执行下述步骤;检测当前操作系统类型和版本号;根据当前操作系统类型和版本号选择对应的GPU开发套件;为GPU开发套件添加可执行权限;检测当前操作系统运行级别,如果当前操作系统运行级别不是3则将其切换为3;安装GPU开发套件;以及如果在上述步骤中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回上述步骤中检测得到的运行级别。本发明提出一种的GPU开发环境部署方法可以根据操作系统自动选择GPU环境程序的合适版本,从而可以实现一键式安装,只需一个安装命令,不需要交互操作;自动生成环境变量配置文件,开机自动导入GPU开发工具环境变量,不必每次登录都手工导入,进而提高了部署效率。在安装之后,还可以包括卸载步骤:其中,卸载GPU驱动程序的步骤包括:检测当前账户是否是root账户,如果是,则执行以下步骤;检测当前操作系统运行级别,如果当前操作系统运行级别不是3则将其切换为3;卸载GPU驱动程序;以及如果在上述步骤中检测出当前操作系统运行级别不是3,则将当前操作系统运行级别转换回上述步骤中检测得到的运行级别。卸载CUDA程序编译器的步骤包括:检测当前账户是否是root账户,如果是,则执行以下步骤;删除CUDA程序编译器的安装目录下的所有文件;以及删除当前操作系统中的环境变量配置文件。卸载GPU程序开发套件的步骤包括:检测当前账户是否是root账户,如果是,则执行以下步骤;以及删除GPU程序开发套件的所有文件。本发明提出一种的GPU开发环境部署方法方便干净的卸载,不会为后续操作造成干扰。此外,在优选实施例中,GPU驱动程序、CUDA程序编译器和GPU程序开发套件安装在集群系统和云计算系统中的各个节点的相同目录中,从而便于后续管理维护。在另一个优选实施例中,还可以将所有操作步骤信息记录在日志文件中。例如,记录操作过程:可以将所有操作信息记录到/tmp/sugon/目录下的日志文件中,内容包括但不限于操作时间、操作命令、操作用户、操作过程中输出的信息等等,从而为排查错误提供保证。以下将具体描述一个部署实例:本发明提出一种高性能集群及云计算平台上GPU开发环境的自动部署方法,并编写了一套程序自动实现具体功能。该程序支持主流的centOS、Redhat和SUSE操作系统,实现了GPU驱动、cudatoolkit和GPUcomputingSDK的一键安装与卸载。必需包检测:检测静默安装所需要程序expect,如果操作系统内没有安装,则使用系统程序管理工具(yum或zypper)自动安装。如果本操作系统程序源里没有expect及其依赖程序包,则本程序从自身携带的RPM包里选择相应版本安装;检测freeglut.so库文件,如果在/usr/lib64/目录下没有64位版的libglut.so*文件,本程序尝试使用从操作系统程序、本程序所携带RPM包里安装,如果没有找到可用的RPM包,则从本程序携带的freeglut源码包编译安装;检测GPUcomputingSDK依赖包,这些程序包括但不限于libXi,libXmu,libGLU,libGL,libX11,如果没有安装,则尝试从操作系统程序源和本程序所携RPM包中安装。GPU驱动安装技术方案:检测命令参数正确性→检测是否为root账户→必需包检测→检测操作系统类型及版本号→根据操作系统信息选择合适的GPU驱动程序→为所选驱动程序文件添加可执行权限→检测操作系统运行级别,如果不为3,切换为3→无人值守安装GPU驱动→将系统运行级别调回原始级别。GPU驱动卸载技术方案:检测命令参数正确性→检测是否为root账户→检测操作系统运行级别,如果不为3,切换为3→使用nvidia-installer命令干净卸载驱动程序文件→将系统运行级别调回原始级别。cudatoolkit安装技术方案:检测命令参数正确性→检测是否为root账户→必需包检测→检测操作系统类型及版本号→根据操作系统信息选择合适的版本→为所选cudatoolkit文件添加可执行权限→静默安装,自动设置安装目录→输出文本信息,告知用户使CUDA环境变量生效的命令→完成,退出。cudatoolkit卸载技术方案:检测命令参数正确性→检测是否为root账户→删除cudatoolkit安装目录中所有文件→删除环境变量配置文件→完成,退出。GPUcomputingSDK安装技术方案:检测命令参数正确性→检测是否为root账户→必需包检测→检测操作系统类型及版本号→根据操作系统信息选择合适的版本→为所选GPUcomputingSDK文件添加可执行权限→静默安装GPUcomputingSDK→编译示例代码,并提示生成的可执行文件所在目录→完成,退出。GPUcomputingSDK卸载技术方案:检测命令参数正确性→检测是否为root账户→删除GPUcomputingSDK所有文件→完成,退出。记录操作过程:所有操作信息都会记录到/tmp/sugon/目录下的日志文件中,内容包括但不限于操作时间、操作命令、操作用户、操作过程中输出的信息。其中,自动检测是否为root用户操作,如果不是root用户,可以报错并提示切换至root用户操作。自动检测操作系统类型与版本号,并据此给SHELL脚本变量设置正确的程序名称。支持操作系统Redhat5.x,Redhat6.x,centOS5.x,centOS6.x,SUSE11SP1,SUSE11SP2。智能检测GPU开发环境程序和本程序正常运行所依赖的程序包,如果某个程序包缺失,本程序会尝试利用操作系统管理包管理工具(yum,zipper,rpm)从操作系统程序源安装,检测对象包括但不限于expect,expect-devel,freeglut,freeglut-devel,libX11,libX11-devel,libXi,libXi-devel,libXmu,libXmu-devel,mesa-libGLU,mesa-libGLU-devel,Mesa-devel。本发明可以自身携带经常需要额外安装的程序包,它们包括但不限于expect,expect-devel,freeglut,freeglut-devel,libX11,libX11-devel,libXi,libXi-devel,libXmu,libXmu-devel,mesa-libGLU,mesa-libGLU-devel,Mesa-devel。本发明自身携带freeglut程序包源代码和编译安装的shell脚本,在没有freeglut的RPM包或者freeglut的RPM包安装不成功时,使用源码安装。GPU开发环境部署工具名称为gputool,六种使用方法为gputool--install--driver,gputool--uninstall--driver,gputool --install--toolkit,gputool--uninstall--toolkit,gputool--install--sdk,gputool--uninstall–sdk。利用expect包功能,智能设置程序安装过程中需要输入的安装目录等信息,实现完成静默安装。在/etc/profile.d目录下创建环境变量配置文件sugon-cuda42.sh。将GPUcomputingSDK安装到集群共享目录,所有结点都能访问。自动编译GPUcomputingSDK携带的所有示例代码,并在编译完成后告知用户可执行文件所在目录。所有操作信息都会记录到/tmp/sugon/目录下的日志文件中,内容包括但不限于操作时间、操作命令、操作用户、操作过程中输出的信息。本实例的GPU环境部署方法方法,并开发了一套程序实现具体功能,达到以下效果:根据操作系统自动选择GPU环境程序的合适版本;一键式安装,只需一个安装命令,不需要交互操作;所有结点的安装目录相同,便于后续管理维护;将GPUcomputingSDK安装到共享目录,既节省了安装编译时间,又减少了本地存储容量的消耗;将cudatoolkit安装到结点本地存储空间,使各结点能单独使用,又能提高多机协作时的效率;方便干净的卸载,不会为后续操作造成干扰;集群中所有结点可以并行执行安装程序,无论集群规模有多大,都能在一小时内完成GPU开发环境的部署,极大地提高了工作效、节省时间成本和人力成本;操作简便,一共只有6个命令,对操作人员技术要求低;日志功能为排查错误提供保证。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1