cuGraph-GPU图形分析

所述RAPIDS cuGraph库是GPU的集合加速图形算法,在GPU DataFrames中发现过程数据。cuGraph的愿景是使图分析无处不在,以至于用户只是根据分析而不是技术或框架来思考。为了实现这一构想,cuGraph操作时,在Python的层,在GPU上DataFrames,从而允许无缝传递ETL任务之间的数据的cuDF和机器学习任务cuML。熟悉Python的数据科学家将迅速了解cuGraph如何与cuDF的类似Pandas的API集成。同样,熟悉NetworkX的用户将迅速认识cuGraph中提供的类似NetworkX的API,其目标是允许以最小的努力将现有代码移植到RAPIDS中。对于熟悉C ++ / CUDA和图形结构的用户,还提供了C ++ API。但是,C ++层的类型和结构检查较少。

有关更多项目详细信息,请参见Rapids.ai

注意:有关最新的稳定README.md,确保位于最新的分支上。

进口 书法

#使用read_csv数据读入一个cuDF数据帧

GDF  =  cudf。read_csv(“ graph_data.csv”,名称= [ “ src”,“ dst” ],dtype = [ “ int32”,“ int32” ])

import cugraph

# read data into a cuDF DataFrame using read_csv

gdf = cudf.read_csv("graph_data.csv", names=["src", "dst"], dtype=["int32", "int32"])

# We now have data as edge pairs

# create a Graph using the source (src) and destination (dst) vertex pairs

G = cugraph.Graph()

G.from_cudf_edgelist(gdf, source='src', destination='dst')

# Let's now get the PageRank score of each vertex by calling cugraph.pagerank

df_page = cugraph.pagerank(G)

# Let's look at the PageRank Score (only do this on small graphs)

for i in range(len(df_page)):

print("vertex " + str(df_page['vertex'].iloc[i]) +

" PageRank is " + str(df_page['pagerank'].iloc[i]))

支持的算法

支持图

支持的数据类型

cuGraph支持创建几种数据类型的图形:

  • cuDF DataFrame
  • Pandas DataFrame

cuGraph支持执行来自不同图形对象的图形算法

  • cuGraph图类
  • NetworkX图类
  • CuPy稀疏矩阵
  • SciPy稀疏矩阵

cuGraph尝试根据输入类型匹配返回类型。因此,NetworkX输入将返回与NetworkX相同的数据类型。

cuGraph注意

当前版本的cuGraph有一些限制:

  • 顶点ID应该是从0开始的连续整数。

cuGraph提供了重新编号功能来缓解此问题,默认情况下,将数据添加到图形时会自动调用该功能。重编号函数的输入顶点ID可以是任何类型,可以是非连续的,可以是多列,并且可以从任意数字开始。重新编号功能将提供的输入顶点ID映射到从0开始的32位连续整数。cuGraph仍然要求重新编号的顶点ID必须以32位整数表示。这些限制已得到解决,将很快修复。

此外,使用自动重编号功能时,结果中的顶点会自动取消编号。

cuGraph不断更新和改进。如果新版本遇到错误,请参阅《Transition Guide》

图形大小和GPU内存大小

所需的内存量取决于图形结构和执行的分析。根据一条简单的经验法则,GPU内存量应约为数据大小的两倍。这给CSV 数据读取和其它转换功能带来了开销。有很多方法可以使用规则,但是使用较小的数据块。

使用托管内存进行超额预订也可以超出上述内存限制。

获取cuGraph

介绍

有三种获取cuGraph的方法:

Quick start with Docker Demo Repo

Conda Installation

Build from Source

快速开始

参阅Demo Docker Repository,根据运行的NVIDIA CUDA版本选择一个标签。这提供了一个带有示例笔记和数据的可立即运行的Docker容器,展示了如何利用所有RAPIDS库:cuDF,cuML和cuGraph。

Conda

使用conda安装cuGraph很容易。可以使用Miniconda进行最小的conda安装,也可以使用Anaconda进行完整的安装。

使用conda命令安装和更新cuGraph:

# CUDA 10.1

conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults cugraph cudatoolkit=10.1

# CUDA 10.2

conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults cugraph cudatoolkit=10.2

# CUDA 11.0

conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults cugraph cudatoolkit=11.0

注意:此conda安装仅适用于Linux和Python版本3.7 / 3.8。

https://github.com/rapidsai/cugraph

cuGraph-GPU图形分析的更多相关文章

  1. Cacti 是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具

    Cacti 是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. mysqlreport是mysql性能监测时最常用的工具,对了解mysql运行状态和配置调整都有很大 ...

  2. openerp学习笔记 统计、分析、报表(过滤条件向导、分组报表、图形分析、比率计算、追加视图排序)

    待解决:图形中当改变分组时,图例不正确            存储比率计算时,分组合计不正确 wizard:过滤条件向导,用于输入过滤条件 wizard/sale_chart.py # -*- cod ...

  3. GPU图形绘制管线简介

    (阅读GPU+编程与CG+语言之阳春白雪下里巴人所得总结) GPU图形绘制管线是描述GPU渲染(把三维世界显示为屏幕上的二维图像)的流程,主要分为三个主要阶段应用程序阶段.几何阶段.光栅阶段. 1.应 ...

  4. (转)GPU图形绘制管线

    摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人”第二章. 图形绘制管线描述GPU渲染流程, ...

  5. 浅谈 GPU图形固定渲染管线

    图形渲染管道被认为是实时图形渲染的核心,简称为管道.管道的主要功能是由给定的虚拟摄像机.三维物体.灯源.光照模型.纹理贴图或其他来产生或渲染一个二维图像.由此可见,渲染管线是实时渲染技术的底层工具.图 ...

  6. 西川善司【神秘海域(Uncharted)】的图形分析

          本文是为传播0月8日发售的[神秘海域 合集]魅力而短篇连载的第2回,这次主要集中在神秘海域系列的图形的技术方面.原文链接在 http://weekly.ascii.jp/elem/000/ ...

  7. CAD和GIS绘制图形分析

    开发CAD和GIS绘图系统有些区别,自己试着分析一下. ♠ 首先CAD图形绘制主要管理图形,因此会有一个抽象的Geometry对象,软件维护一个Geometry对象的集合.如果以图层来管理几何图形,则 ...

  8. tableau中图形分析相关设置

    1.柱形堆叠图单元格顶部显示总计值(可通过参考线实现) 2.调节图形单元格的宽窄度 (ctrl + 右键/左键) 3.折线图预测区间 趋势区间线 分析中预测并不是针对所有的日期格式均其作用,比如日期格 ...

  9. mesos支持gpu代码分析以及capos支持gpu实现

    这篇文章涉及mesos如何在原生的mesoscontainerizer和docker containerizer上支持gpu的,以及如果自己实现一个mesos之上的framework capos支持g ...

随机推荐

  1. .NET 5学习笔记(12)——WinUI 3 Project Reunion 0.5

    2021年3月的时候,Win UI 3终于来到了第一个稳定的支持版本,可用于创建发布到Micosoft Store的应用.据某软的说法,这个叫WinUI 3 Project Reunion 0.5的版 ...

  2. Android的so库注入

    作者:Fly2015 Android平台的so库的注入是有Linux平台的进程注入移植来的.由于Android系统的底层实现是基于Linux系统的源码修改而来,因此很多Linux下的应用可以移植到An ...

  3. Linux下Apache服务的部署和配置

    目录 Apache服务的安装 yum源安装: 目录文件 源码包安装: 目录文件: Apache中添加对php的支持 Apache中添加php对mysql数据库的支持 Apache服务的高级配置 1:配 ...

  4. node-全局对象

    Node.js 全局对象 JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量. 全局对象与全局变量 global ...

  5. 【转】风控中的特征评价指标(一)——IV和WOE

    转自:https://zhuanlan.zhihu.com/p/78809853 1.IV值的用途 IV,即信息价值(Information Value),也称信息量. 目前还只是在对LR建模时用到过 ...

  6. mysql搭建多主一从源复制环境

    问题描述:搭建过一主多从的环境,由于数据库数据一致性要求高,有些情景会搭建一主多从的架构,搭建多主一从的模式,相对来说适合数据整合,将多个业务的库整合到一起,方便做查询,也可以当做一个监控其他主库数据 ...

  7. [xml模块、hashlib模块、subprocess模块、os与sys模块、configparser模块]

    [xml模块.hashlib模块.subprocess模块.os与sys模块.configparser模块] xml模块 XML:全称 可扩展标记语言,为了能够在不同的平台间继续数据的交换,使交换的数 ...

  8. kubernetes dashboard延长自动超时注销

    方法1:部署清单时,修改yaml文件,添加 container.Args 增加 --token-ttl=43200 其中43200是设置自动超时的秒数.也可以设置 token-ttl=0 以完全禁用超 ...

  9. 山东浪潮超越3B4000申泰RM5120-L

    龙芯解决方案 首页 > 龙芯业务 > 龙芯解决方案和产品生态 > 整机产品 > 服务器 > 详情 超越申泰RM5120-L 服务器 超越申泰RM5120-L 服务器 20 ...

  10. 常用的HTML标记

    一.格式标记 1.<br> <br>是一个单标记,用来强制换行. 2.<p> <p>是双标记.用来换分段落. 3.<center> < ...