zoukankan      html  css  js  c++  java
  • cuGraph-GPU图形分析

    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

    人工智能芯片与自动驾驶
  • 相关阅读:
    【C语言程序设计】C语言渔夫打鱼晒网问题!
    【C语言】很少人真正了解 和 有什么区别!
    【C语言程序设计】C语言求亲密数!
    新手程序员该如何打造自己的个人品牌!谨记,共勉!
    【C语言程序设计】利用数组解决线性代数中的矩阵转置问题!
    【程序员段子】程序员太苦逼了,苍天啊!请给我一次重新择业的机会吧!
    27. Remove Element
    Leetcode Scratching Recorder
    Activity---弹出右侧窗口
    ViewPageIndicator--仿网易的使用
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14187347.html
Copyright © 2011-2022 走看看