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. 《机器学习Python实现_10_09_集成学习_bagging_stacking原理及实现》

    介绍 前面对模型的组合主要用了两种方式: (1)一种是平均/投票: (2)另外一种是加权平均/投票: 所以,我们有时就会陷入纠结,是平均的好,还是加权的好,那如果是加权,权重又该如何分配的好?如果我们 ...

  2. 对c语言回调函数的理解

    对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别. 1. 普通函数调用 一般为实现方在其函数体执行过程中直接调用. 代码示例: #includ ...

  3. LA3602DNA序列

    题意:      给你一个一些DNA序列(只有ACGT)然后让你构造一个序列,使得所有的序列到他的Hamming距离最小,所有的序列包括构造的序列长度都是N,Hamming表示两个序列的不同字符位置个 ...

  4. The 2014 ACM-ICPC Asia Mudanjiang Regional First Round A

    网选A,水题: 这个是水题,只要枚举一遍,看有多少a[i-1]<a[i]>a[i+1],不解释了.

  5. 哈希爆破神器Hashcat的用法

    目录 HashCat HshCat的使用 使用Hashcat生成字典 使用Hashcat破解NTLMv2 HashCat HashCat系列软件在硬件上支持使用CPU.NVIDIA GPU.ATI G ...

  6. Windows核心编程 第十七章 -内存映射文件(上)

    第1 7章 内存映射文件 对文件进行操作几乎是所有应用程序都必须进行的,并且这常常是人们争论的一个问题.应用程序究竟是应该打开文件,读取文件并关闭文件,还是打开文件,然后使用一种缓冲算法,从文件的各个 ...

  7. Windows PE 第一章开发环境和基本工具使用

    第一章 Windows PE 基本工具 1.1开发语言MASM32 1.1.1设置开发环境 这个不细说了,我在整理Intel汇编的时候详细的说了环境搭建以及细节.地址是:http://blog.csd ...

  8. ajax提交session超时跳转页面使用全局的方法来处理

    来自:http://www.jb51.net/article/43770.htm 如果是ajax提交,超时时从服务器发出的跳转命令就不会起作用,所以如果是session超时,而且是在ajax请求,就在 ...

  9. Qt链接MySQL发布后Drive not loadedDrive not loaded怎么办

    缺少动态链接库!把MySQL文件夹下面带dll.lib的全复制进去就行了

  10. 【原创】JVM如何运行Java程序的?

    [Deerhang] 我们知道Java程序的运行是依赖于JVM虚拟机的,JVM类语言经过编译生成class字节码文件,字节码又经JVM进一步的编译生成机器码,最终运行在硬件上.那么JVM存在的意义是什 ...