littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于GPGPU虚拟化的高性能计算云组件

项目简介

GVirtuS是用于高性能计算云的GPGPU透明虚拟化组件,其目标是缩小本地托管的计算集群与通过公共或私有云部署的高性能虚拟集群之间的差距。该组件允许虚拟机实例以透明且与虚拟机管理程序无关的方式访问GPGPU,开销仅略高于真实机器/GPGPU设置。

项目的主要特性和功能

  1. GPGPU透明虚拟化:虚拟机实例可透明访问GPGPU,不依赖特定虚拟机管理程序。
  2. 高性能计算支持:借助云计算提供GPGPU能力,支持HPC集群和远程GPGPU共享。
  3. 多种部署场景:适用于云计算HPC集群和边缘计算等多种部署情况。
  4. 性能评估:通过一系列测试评估不同部署场景下组件的性能。

安装使用步骤

前提条件

  • 编译器:GCC、G++(支持C++17扩展,版本7或以上)
  • 构建工具:CMake(版本3.17或以上)
  • 操作系统:CentOS 7.3或Ubuntu 18.04(已测试,理论上可在任何系统安装)
  • CUDA工具包:版本10.2或以上

此外,还需以下软件包: build-essential autotools-dev automake git libtool libxmu-dev libxi-dev libgl-dev libosmesa-dev liblog4cplus-dev 在Ubuntu上安装这些软件包的命令: sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev libosmesa-dev git liblog4cplus-dev 在CentOS上安装这些软件包的命令: sudo yum install centos-release-scl sudo yum install devtoolset-8-gcc scl enable devtoolset-8 bash

安装步骤

  1. 复制GVirtuS主仓库(此处原文档未提供命令)。
  2. 使用CMake编译和安装GVirtuS: cd GVirtuS mkdir build cd build cmake .. make make install 默认情况下,GVirtuS将安装在${HOME}/GVirtuS。若需更改安装路径,在运行CMake之前导出GVIRTUS_HOME变量: export GVIRTUS_HOME=/Your/GVirtuS/Path

运行GVirtuS

后端机器(需要物理GPU和CUDA)

  1. 修改GVirtuS后端配置文件$GVIRTUS_HOME/etc/properties.json,若默认端口9999被占用或机器是远程的,更改localhost IP为机器的IP: json { "communicator": [ { "endpoint": { "suite": "tcp/ip", "protocol": "tcp", "server_address": "127.0.0.1", "port": "9999" }, "plugins": [ "cudart", "cublas", "curand", "cudnn" ] } ], "secure_application": false }
  2. 运行gvirtus-backend服务器应用程序: LD_LIBRARY_PATH=${GVIRTUS_HOME}/lib:${LD_LIBRARY_PATH} $GVIRTUS_HOME/bin/gvirtus-backend ${GVIRTUS_HOME}/etc/properties.json

前端机器(不需要GPU或CUDA)

  1. 修改GVirtuS前端配置文件$GVIRTUS_HOME/etc/properties.json,若默认端口9999被占用或机器是远程的,更改localhost IP为远程机器的IP: json { "communicator": [ { "endpoint": { "suite": "tcp/ip", "protocol": "tcp", "server_address": "127.0.0.1", "port": "9999" }, "plugins": [ "cudart", "cublas", "curand", "cudnn" ] } ], "secure_application": false }
  2. 编译CUDA应用程序时,确保使用共享库: export EXTRA_NVCCFLAGS="--cudart=shared" nvcc example.cu -o example --cudart=shared
  3. 导出动态GVirtuS库: export LD_LIBRARY_PATH=${GVIRTUS_HOME}/lib:${GVIRTUS_HOME}/lib/frontend:${LD_LIBRARY_PATH}
  4. 运行CUDA应用程序: ./example

日志记录

可通过设置GVIRTUS_LOGLEVEL环境变量来更改日志级别: export GVIRTUS_LOGLEVEL=<loglevel> <loglevel>的值定义如下: OFF_LOG_LEVEL = 60000 FATAL_LOG_LEVEL = 50000 ERROR_LOG_LEVEL = 40000 WARN_LOG_LEVEL = 30000 INFO_LOG_LEVEL = 20000 DEBUG_LOG_LEVEL = 10000 TRACE_LOG_LEVEL = 0

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】