nvGraph-NVIDIA图形库

数据分析是高性能计算的不断增长的应用。许多高级数据分析问题可以称为图形问题。反过来,当今许多常见的图形问题也可以称为稀疏线性代数。这是nvGraph的动机,它利用GPU的线性代数功能来处理大型图形分析。

https://github.com/rapidsai/nvgraph

该存储库包含NVIDIA CUDA Toolkit中的旧版nvGraph。目的是为CUDA Toolkit停止发布nvGraph的用户提供一种继续使用nvGraph的方法。尽管仍然接受错误报告,但并未积极开发该产品。如果发现并可以重现nvGRAPH中的错误,请在GitHub上报告问题

最近,NVIDIA开始开发cuGraph,它是图形分析的集合,可处理在GPU数据框中找到的作为RAPIDS一部分的数据。现在,大多数nvGraph算法也已成为cuGraph的一部分。此外,cuGraph的目标是提供数据科学家熟悉的类似于NetworkX的API,因此现在可以更轻松地构建GPU加速的工作流程。有关更多项目详细信息,请参见Rapids.ai

获取nvGrpah

先决条件

编译器要求:

  • gcc 版本5.4+
  • nvcc 版本9.2
  • cmake 版本3.12

CUDA要求:

  • CUDA 9.2+
  • NVIDIA驱动程序396.44+
  • Pascal架构或更高

可以从https://developer.nvidia.com/cuda-downloads获得CUDA 。编译器要求:

使用脚本

从源代码安装nvGraph很容易。为方便起见,build.sh提供了一个脚本。运行如下所示的脚本以下载源代码,构建并安装该库。请注意,该库将安装在中设置的位置$CUDA_ROOT(例如export CUDA_ROOT=/usr/local/cuda)。这些说明已在Ubuntu 18.04上进行了测试。

git clone https://github.com/rapidsai/nvgraph.git

cd nvgraph

export CUDA_ROOT=/usr/local/cuda

./build.sh  # build the nvGraph library and install it to $CUDA_ROOT (you may need to add the sudo prefix)

从源手动构建

以下说明适用于nvGraph开发的开发人员和贡献者。这些说明已在Linux Ubuntu 18.04上进行了测试。使用这些说明从源代码构建nvGraph并为它的发展做出贡献。其它操作系统可能兼容,但目前尚未测试。

nvGraph软件包是一个C / C ++ CUDA库。需要安装才能使nvGraph正常运行。

以下说明在Linux系统上测试。

生成并安装C / C ++ CUDA组件

要从源代码安装nvGraph,确保满足依赖性并遵循以下步骤:

1.克隆存储库和子模块

# Set the localtion to nvGraph in an environment variable NVGRAPH_HOME

export NVGRAPH_HOME=$(pwd)/nvgraph

# Download the nvGraph repo

git clone https://github.com/rapidsai/nvgraph.git $NVGRAPH_HOME

# Next load all the submodules

cd $NVGRAPH_HOME

git submodule update --init –recursive

2. 生成并安装libnvgraph_rapids.so。CMake依赖nvcc可执行文件的路径中,或在中定义$CUDACXX。

该项目使用cmake构建C / C ++库。要配置cmake,运行:

cd $NVGRAPH_HOME

cd cpp  # enter nvgraph's cpp directory

mkdir build         # create build directory

cd build            # enter the build directory

cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX

# now build the code

make -j            # "-j" starts multiple threads

make install       # install the libraries

The default installation locations are $CMAKE_INSTALL_PREFIX/lib and $CMAKE_INSTALL_PREFIX/include/nvgraph respectively.

C ++独立测试

# Run the tests

cd $NVGRAPH_HOME

cd cpp/build

gtests/NVGRAPH_TEST # this is an executable file#这是一个可执行文件

这些测试验证了库是否正确构建,以及图形结构是否按预期工作。目前不维护算法测试套件。大多数图形分析功能都是在cuGraph中开发和测试的。

文献资料

可以在CUDA工具包文档中找到C API文档。

nvGraph-NVIDIA图形库的更多相关文章

  1. (转)深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

      深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 发表于2016年07月15号由52nlp 接上文<深度学习主机攒机小记>,这台GTX10 ...

  2. 开源图形库 c语言-图形图像库 集合[转]

    开源图形库 c语言-图形图像库 集合[转] Google三维API O3D O3D 是一个开源的 Web API 用来在浏览器上创建界面丰富的交互式的 3D 应用程序.这是一种基于网页的可控3D标准. ...

  3. 解决Ubuntu Kylin 1610安装ANSYS17.2的NVIDIA显卡驱动问题

    Ubuntu Kylin 1610在安装完毕后,会自动安装显卡驱动,对于一般的图形图像使用来说自然不会有太大的问题,但是对于ANSYS17.2的一些模块,还是会出现问题.一个比较常见的问题就是Open ...

  4. Fedora 21 安装 Nvidia 驱动以及失败后的补救方法

    在 Linux 桌面系统下玩了这么久,大部分时间都是使用 Ubuntu,偶尔使用一下 Fedora.我的电脑中安装有多个 Linux 发行版,见这里<在同一个硬盘上安装多个Linux发行版及Fe ...

  5. C语言图形库简单对比及EGE库的安装小手册

    近期在琢磨C语言的图形库,发现主要有如下几种选择: Turbo C 的graphics库 SDL EasyX EGE 1. 普遍认为Graphics库太老了,而且TurboC本身使用比较麻烦,网上一边 ...

  6. 笔记:xubuntu下如何让系统默认使用nvidia显卡,而不是intel集显

    经反复折腾,得到如下的解决方法: prime-select nvidia 简单吧,但关系是如果让它开机自动执行一次. 反复折腾了xinitrc ,~/.xinitrc , /etc/rc.local ...

  7. 【转】[Intel/Nvidia]Ubuntu 16.04 LTS Intel/Nvidia双显卡切换

    1.在Unity中搜索 "Additional Drivers" 2.打开并选择以下选项 3.打开终端并输入 sudo apt-get install nvidia-361 4.安 ...

  8. ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12

    文章在简书里面编辑的,复制过来貌似不太好看,还是到简书的页面看吧: http://www.jianshu.com/p/c89b97d052b7 1.安装环境简介: 硬件: cpu:i7 6700k g ...

  9. 使用Python中PIL图形库进行截屏

    目的:通过使用Python的一个图形库PIL(Python Image Library)对屏幕进行截图 步骤: 1.下载PIL(路径)并安装 2.新建文件“截屏.py”,右键Edit with IDL ...

随机推荐

  1. 【JDK8】JDK 8 中Stream流中的去重的方法

    JDK 8 中Stream流中去重的方法 1.简单的去重,可以使用distinct()方法去重,该方法是通过比较equals和hashcode值去去重, 2.复杂的去重, 例如,在一个JavaBean ...

  2. Listview滑动时不加载数据,停下来时加载数据,让App更优

    http://blog.csdn.net/yy1300326388/article/details/45153813

  3. vscode 将本地项目上传到github、从github克隆项目以及删除github上的某个文件夹

    一.将本地项目上传到github 1.创建本地仓库(文件夹) mkdir study//创建文件夹studycd study //进入study文件夹 2.通过命令git init把这个文件夹变成Gi ...

  4. dispatcherServlet-servlet.xml(SSM maven 项目)

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  5. 关于HTTP的一些概念

    各种概念 HTTP HTTP(HyperText Transfer Protocol) -- 超文本传输协议 它可以拆成三个部分:"超文本"."传输".&quo ...

  6. Electron-Vue3-Vadmin后台系统|vite2+electron桌面端权限管理系统

    基于vite2.x+electron12桌面端后台管理系统Vite2ElectronVAdmin. 继上一次分享vite2整合electron搭建后台框架,这次带来的是最新开发的跨桌面中后台权限管理系 ...

  7. class的大小

    3个问题: sizeof一个空类是多大?为什么?编译器为什么这么做? 在这个类中添加一个virtual函数后再sizeof,这时是多大?为什么? 将这个类再virtual继承一个其它的空类,这是多大? ...

  8. 中国排名前100的IC设计公司

    中国排名前100的IC设计公司 北京地区大唐微电子技术有限公司北京北大众志微系统科技有限责任公司北京中星微电子有限公司中国华大集成电路设计中心  北京中电华大电子设计有限责任公司  北京清华同方微电子 ...

  9. ajax 异步无刷新点改

    <button class="status" t_id="{{$v->id}}">{{$v->status}}</button&g ...

  10. 原生JS和jQuery创建元素的方法

    jQ创建元素的方法 1.原生代码 .creatElement('tr')` .innerHTML = '<h1>加油</h1>' document.write('<h1& ...