GPU上的快速光谱图分区
图形是用于对物理,生物,社会和信息系统中许多类型的关系和过程进行建模的数学结构。用于解决各种高性能计算和数据分析问题。对于网络分析,基因组学,社交网络分析和其他领域,大规模图形处理的计算需求,只有加速器才能提供的强大而高效的计算性能。NVIDIA通过CUDA 8引入了nvGRAPH,这是GPU加速图形算法的新库。它的第一个版本nvGRAPH 1.0支持3种关键图形算法(PageRank,单源最短路径)以及“单源最宽路径”),工程和研究团队已经在为将来的版本开发新的并行算法。
许多应用程序需要将图划分为子图,或在其中找到簇。例如,图分区可用于偏微分方程(PDE)的数值解中,以执行更有效的稀疏矩阵-矢量乘法,而图聚类可用于标识社交网络中的社区和网络安全(请参见图1)。
在这里插入图片描述

图1:图分区的应用
图形分区或集群的质量可能会对应用程序的整体性能产生重大影响。不仅要利用GPU来快速找到拆分子图(GPU频谱图分区方案的执行速度比CPU实现快7倍),而且找到可能的最佳拆分也非常重要,这需要开发新算法。
同样,图分区和聚类旨在基于特定度量将图拆分为子图。特别地,频谱图的划分和聚类依赖于与给定图相对应的拉普拉斯矩阵的频谱(特征值和关联的特征向量)。接下来,将正式定义这个问题,展示它与拉普拉斯矩阵的频谱之间的关系,并研究其性质和权衡。
定义
让图
由其顶点集
和边集定义
。顶点集

表示图中的 节点,每个节点由唯一的整数标识
。边集
表示
图中的边,从节点
到的每个边
都由一对标识

图2:由一组顶点S = {1,2}引起的图G =(V,E)的最小平衡分割
应用程序经常需要找到将图形拆分为相似大小的子图,并通过尽可能少的边连接的子图。该陈述通常表述为以下问题:找到一组顶点

, 以成本函数的方式诱导图形的最小平衡割

重要的是要指出,分区和聚类都旨在将原始图分成多个子图。但是,在分区时,分区的数量通常是固定的,而在群集中,实际上没有分区可能是一个结果。同样,可以通过不同的成本函数(包括模块性,中间性或流程性)来衡量拆分的最优 性。
成本函数

拉普拉斯矩阵

这说明了为什么在上一节中,可以用向量x 和Laplacian矩阵来表示比率中的所有项以及归一化的成本函数L 。技术报告中给出了更详细的解释。
光谱方案的关键思想
请注意,通过找到向量的最佳非零离散值来获得成本函数的最小值 u并不比找到集合的最佳索引容易 S。成本函数的两个公式是等价的,都是NP难题。
频谱划分和聚类的关键思想不是直接寻找离散解决方案,而是分两个步骤进行。
首先,放宽离散约束,让向量u 取实值而不是离散值。在这种情况下,遵循线性代数Courant-Fischer定理(有时称为Min-Max定理),成本函数的最小值由p与 拉普拉斯矩阵的最小特征值相关的特征向量获得。
其次,将获得的实际值映射回离散值以找到感兴趣的解决方案。可以使用简单的试探法(例如,对实数值进行排序并寻找缺口)或使用更高级的多维算法(例如,k均值算法)来完成此步骤。在前一种情况下,间隙之间的所有实数值,而在后一种情况下,将聚集在特定质心周围的所有实数值,分配给相同的离散值,因此将属于相同的特定分区或群集。
不能保证两步法将找到最佳解决方案,但是在实践中,通常会找到足够好的近似值并且工作得相当好。
图3提供了该过程的直观轮廓,算法1以伪代码表示了该算法。

图3:频谱划分大纲
令G =(V,E)为输入图
设A为G的邻接矩阵
令对角矩阵D = diag(Ae)
设置拉普拉斯矩阵L = DA
解决特征值问题L u =λu
使用启发式将实数转换为离散值
特征值问题
特征值问题的解决方案通常是频谱图分区/聚类中最耗时的部分。有很多特征值求解器可以用来求解它,包括Lanczos,Tracemin,Jacobi-Davidson和LOBPCG。特别是,图3和图4分别显示了比较结果,比较了Lanczos和LOBPCG方法在从DIMACS图集合中寻找几种矩阵的30个最小特征向量时的性能和质量。尽管Lanczos通常是最快的特征值求解器,但是当具有0填充的不完全LU(ILU0)可用时,预处理的LOBPCG特征值求解器可能具有竞争力,并且通常可以计算出质量较高的解决方案。

图3:GPU上各种特征值求解器的性能。 图4:GPU上各种特征值求解器的质量。
实验
现在,将比较GPU上的频谱方案和CHACO软件包中CPU上实现的频谱方案。实验是在配备3.2 GHz Intel Core i7-3930K CPU和NVIDIA Tesla K40c GPU的工作站上进行的。
方案非常相似,但不完全相同,因为CHACO对算法的实现略有不同,并且还尝试在固定阈值内提供负载均衡的削减
,例如
。因此,CHACO的成本函数类似于削减比率,但最终的群集偏向于提供负载平衡的分区,同时仍将边际削减降至最低。此外,CHACO实现了频谱平分,因此与之比较时,将图形分为两个分区。
图5和图6分别显示了两种频谱方案的性能和质量。请注意,使用Lanczos的GPU频谱方案通常可以更快地获得解决方案,但与CHACO中的CPU频谱方案相比,其质量也可变,CHACO也使用Lanczos方法的一种变体。另一方面,当使用预处理的LOBPCG时,GPU的实现通常更快,并且在大多数情况下都可以通过成本函数获得更高质量的解决方案。这些实验的详细结果可以在技术报告中找到。

图5:GPU与CPU(CHACO)上光谱图分区的加速。

图6:GPU与CPU(CHACO)上频谱图分区的质量。
最后,如前所述,存在许多不同的分区和群集策略。尤其是,一些用于提供图的平衡切割的流行方法使用了在METIS等软件包中实现的多级方案。与局部启发式算法(例如Kernighan-Lin算法)相比,频谱和多级方案都是适用于整个图形的全局方法。
根据频谱方案和多级方案获得的边缘切除和成本函数,比较它们的质量是很有趣的。图7和8所示的数值实验绘制了30个分区的这些量的比率(METIS获得的成本除以GPU频谱方案获得的成本)。结果趋势表明,对于两类问题,频谱方案和多层方案的行为完全不同:(i)PDE离散化产生的网格;(ii)经常具有幂律分布的社交网络图。每个节点的边缘。推测是,这些方案之间质量的差异是由于以下事实导致的:多级方案通常依赖于本地信息来构建用于对图进行分区的图层次结构。
注意,对于PDE,通过两种方案获得的分区质量基本相同,而对于具有高度节点的网络(如社交网络),频谱方案可以获得明显更高质量的分区。即使在实验中,频谱方案所花费的时间通常比多级方案所花费的时间更长,但认为频谱方案对于质量很重要的应用可能是一个不错的选择。例如,在稀疏线性代数应用中,即使分区质量的适度提高也会对整体应用性能产生重大影响,因此频谱方案的额外分区成本可能是值得的。

图7:PDE的频谱与多级方案(METIS)。

图8:网络的频谱与多级方案(METIS)。
结论
我希望阅读了这篇博文后,您已经了解了频谱图分区/聚类方案的一些直觉,以及如何将其与其他类似算法进行比较。在我们的技术报告中可以找到对主题的更正式的处理,可以精确地推导出理论结果并进行详细的数值实验。
数值实验表明,GPU上的频谱分区性能可以比CPU上的频谱分区性能高7倍。同样,很明显,多级方案是划分PDE生成的网格的不错选择,而频谱方案可以在具有高度节点的网络图(例如社交网络图)上实现高质量的划分和聚类。
如果需要在应用程序中加速图形算法,请查看新的GPU加速的 nvGRAPH 库。您还可以在“ CUDA 8功能公开”一文中阅读有关nvGRAPH的更多信息。我们正在考虑将来将光谱划分添加到nvGRAPH中。如果您觉得有用,请在评论中告诉我们。
关于图形的注意事项
拉普拉斯矩阵的特征向量还有许多其它应用。例如,它们可用于绘制图形。实际上,此博客中的图形绘制是使用它们完成的。已经研究了用于该应用的特征向量的解释。

GPU上的快速光谱图分区相关推荐

  1. 该如何才能在cad快速看图软件上应用

    大家应该都知道,在cad快速看图软件上浏览和查看文件是非常麻烦的事情,我们想要提高工作的效率,更好的.便捷和快速查看文件,需要找到一个很专业的方法.这里就要给朋友没介绍一个非常舒服的cad看图软件的使 ...

  2. DGL无法把图放在GPU上

    看别人的dgl使用很简单.把图g.to(device)就行了. 我的错误 dgl._ffi.base.DGLError: [10:36:44] /opt/dgl/src/runtime/c_runti ...

  3. GPU上创建目标检测Pipeline管道

    GPU上创建目标检测Pipeline管道 Creating an Object Detection Pipeline for GPUs 今年3月早些时候,展示了retinanet示例,这是一个开源示例 ...

  4. OpenAI 研究员最新博客:如何在多GPU上训练真正的大模型?

    [专栏:前沿进展]近年来,在大规模预训练语言模型的帮助下,许多NLP模型在基准测试任务中取得了更好的结果.如何训练大而深的神经网络是一个挑战,需要大量的GPU内存和很长的训练时间.本文回顾了几种流行的 ...

  5. 想知道深度学习卷积在GPU上如何优化吗?“大神”赵开勇带你深入浅出

    想知道深度学习卷积在GPU上如何优化吗?"大神"赵开勇带你深入浅出 2016-08-19 11:54 转载 陈杨英杰 0条评论 雷锋网(搜索"雷锋网"公众号关注 ...

  6. 从上百幅架构图中学大型网站建设经验(上)

    http://blog.csdn.net/v_JULY_v/article/details/6839360 引言 近段时间以来,通过接触有关海量数据处理和搜索引擎的诸多技术,常常见识到不少精妙绝伦的架 ...

  7. 如何在 GPU 上加速数据科学

    数据科学家需要算力.无论您是用 pandas 处理一个大数据集,还是用 Numpy 在一个大矩阵上运行一些计算,您都需要一台强大的机器,以便在合理的时间内完成这项工作. 在过去的几年中,数据科学家常用 ...

  8. 在GPU上运行,性能是NumPy的11倍,这个Python库你值得拥有

    导读:NumPy是数据计算的基础,更是深度学习框架的基石.但如果直接使用NumPy计算大数据,其性能已成为一个瓶颈. 随着数据爆炸式增长,尤其是图像数据.音频数据等数据的快速增长,迫切需要突破NumP ...

  9. 从上百幅架构图中学得半点大型网站建设经验(上)

    近段时间以来,通过接触有关海量数据处理和搜索引擎的诸多技术,常常见识到不少精妙绝伦的架构图.除了每每感叹于每幅图表面上的绘制的精细之外,更为架构图背后所隐藏的设计思想所叹服.个人这两天一直在搜集各大型 ...

最新文章

  1. Android Studio一直Download fastutil-x.x.x.jar
  2. 【Android】Android 8种对话框(Dialog)
  3. OpenCV相机校准camera calibration的实例(附完整代码)
  4. The underlying provider failed on open 问题解决
  5. OpenCV单目视觉定位(测量)系统(新增 含代码)(转载)
  6. Nagios监控平台完全攻略 (三)
  7. ES6_类_note
  8. 智能仓储管理系统分析?
  9. CVTE 2017 秋季校招一面(C++ 后台)
  10. 安卓使用Audio Record自定义录音
  11. oracle ORA01017问题
  12. 高效程序员的七个习惯
  13. linux中数据库的管理
  14. 折腾小记(***+云盘选择+个人环境配置)
  15. 使用tinymce编辑器从word保持原格式复制粘贴的办法
  16. teradata ttu_SQL语句笔记之Teradata
  17. windows下cmd命令行显示UTF8字符设置(CHCP命令)
  18. 散热器的simulink建模
  19. 用例设计-1-交叉路径覆盖
  20. 药物 3D 打印新突破:圣地亚哥大学用机器学习筛选喷墨打印生物墨水,准确率高达 97.22%

热门文章

  1. 2022-2028年中国数字乡村建设深度调研及投资前景预测报告
  2. 2022-2028年中国打印耗材市场现状调研与进展趋势分析报告
  3. RabbitMQ 入门系列(2)— 生产者、消费者、信道、代理、队列、交换器、路由键、绑定、交换器
  4. leetcode 3. Longest Substring Without Repeating Characters 最长非重复子串的长度 滑动窗口法
  5. 第五周周记(国庆第五天)
  6. 【Springboot】日志
  7. TinyML-TVM如何驯服TinyML
  8. CUDA 内存统一分析
  9. 如何使用Nsight Compute?
  10. 2021年大数据Flink(十八):Flink Window操作