CN201681385U - 一种基于gpu的文本数据挖掘系统 - Google Patents
一种基于gpu的文本数据挖掘系统 Download PDFInfo
- Publication number
- CN201681385U CN201681385U CN2010201674780U CN201020167478U CN201681385U CN 201681385 U CN201681385 U CN 201681385U CN 2010201674780 U CN2010201674780 U CN 2010201674780U CN 201020167478 U CN201020167478 U CN 201020167478U CN 201681385 U CN201681385 U CN 201681385U
- Authority
- CN
- China
- Prior art keywords
- gpu
- text data
- host server
- communication module
- digging system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于GPU的文本数据挖掘系统,包括终端工作站、交换机、主机服务器和存储阵列。其中,所述主机服务器设置有CPU和GPU,所述GPU设有通用并行计算模块,所述交换机分别与主机服务器、存储阵列,终端工作站连接;所述的通用并行计算模块具有统一计算架构单元。本实用新型提供一种快速、高效的数据挖掘,从而快速得到有价值的数据,方便决策者快速的响应市场需求,在市场竞争中取得有利地位,并且实现基于GPU硬件和CUDA架构的文本数据挖掘系统。
Description
技术领域
本实用新型属于文本数据挖掘系统领域,尤其是一种可以应用于各种行业的基于GPU的文本数据挖掘系统。
背景技术
1999-2000年间,计算机科学家,与诸如医疗成像和电磁等领域的研究人员,开始使用GPU(图形处理器)来运行通用计算应用程序。他们发现GPU(图形处理器)具备的卓越浮点性能可为众多科学应用程序带来显著的性能提升。这一发现掀起了被称作GPGPU(图形处理器通用计算)的浪潮。
GPU的处理核心SP基于传统的处理器核心设计,能够进行整数,浮点计算,逻辑运算等操作,从硬体设计上看就是一种完全为多线程设计的处理核心,拥有复数的管线平台设计,完全胜任每线程处理单指令的工作。
GPU内的线程分成多种,包括像素、几何以及运算三种不同的类型,在三维图像处理模式下,大量的线程同时处理一个渲染以达到最大化的效率,所以像GTX 200 GPU的核心内很大一部分面积都作为计算之用,和CPU上大部分面积都被缓存所占据有所不同,大约估计在CPU上有20%的晶体管是用作运算之用的,而GTX 200 GPU上有80%的晶体管用作运算。GPU处理的首要目标是运算以及数据吞吐量,而CPU内部晶体管的首要目的是降低处理的延时以及保持管线繁忙,这也决定了GPU在密集行计算比起CPU来更有优势。
CUDA(Compute Unified Device Architecture,统一计算架构)是一种由NVIDIA公司推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用C以及C++语言来为CUDA架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDATM的处理器上以超高性能运行。
随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVIDIA公司推出CUDA,让显卡可以用于图像计算以外的目的。
正是由于GPU本身的通用特性和CUDA提供的方便的开发环境,各种各样的企业级应用程序正在利用NVIDIA GPU的大规模并行CUDA架构来实现更高生产率。它在数据挖掘领域起着重要的作用,尤其是文本数据挖掘。
发明内容
本实用新型的目的在于克服现有技术的不足,提供一种快速、高效的数据挖掘,从而快速得到有价值的数据,方便决策者快速的响应市场需求,在市场竞争中取得有利地位,并且实现基于GPU硬件和CUDA架构的文本数据挖掘系统。
为了解决上述技术问题,本实用新型是通过以下技术方案实现的:
一种基于GPU的文本数据挖掘系统,包括终端工作站、交换机、主机服务器和存储阵列,其特征在于,所述主机服务器设置有CPU和GPU,所述GPU设有通用并行计算模块,所述交换机分别与主机服务器、存储阵列,终端工作站连接;所述的通用并行计算模块具有统一计算架构单元。
进一步地,交换机设有交换通信模块;终端工作站包括CPU、终端通信模块、终端人机交互设备;主机服务器还包括服务器通信模块和服务器人机交互设备;存储阵列包括存储模块和存储通信模块;交换通信模块分别与终端通信模块、服务器通信模块、存储通信模块连接。
用户指令通过人机交互设备发送到终端工作站的CPU,再经终端通讯模块、交换机到主机服务器;主机服务器发出提取文本数据请求的指令,依次经过服务器通讯模块、交换机到达所述存储阵列;存储阵列发出文本数据,依次经过存储通信模块、交换机到达主机服务器,发送到主机服务器的GPU,进入到GPU通用并行计算模块的统一计算架构单元。统一计算架构单元对文本数据进行挖掘。
终端通讯模块、服务器通讯模块、存储通信模块、交换通信模块是网卡和/或光纤连接器。
网卡为千兆或万兆网卡。
网卡为有线或无线网卡。
终端人机交互设备包括显示屏、键盘、鼠标。
终端工作站的数量是2-32台。
主机服务器还包括主机内存;主机服务器的GPU还包括GPU全局内存;主机服务器的CPU与主机内存连接、主机内存与GPU全局内存之间连接,GPU全局内存与GPU通用并行计算模块的统一计算架构单元连接。
GPU还设有通用API接口,GPU通过通用API接口与应用程序进行通信。
设计GPGPUS的算法关键之一就是让所有的处理单元都能工作起来。NVIDIA公司就是要确保资源的高利用率,使处理器能够高效的利用资源,这样就可以并行处理更多的工作流。使用延时隐藏技术,一个处理单元停滞在内存当中,这样就可以简单的切换到另一个地方派发工作单元。
为了在NVIDIA公司的图形处理器(GPU)中充分利用大量的流处理器,可以使用64位操作系统批量处理文件。第一内核输入的是原始数据流。被分配的区会处理每个文件流。在内核中,每个特殊字符都会被替换成统一的特殊字符然后被忽略。这样就可以有效地进行全局内存访问了。这个标记流会被送到第二内核,然后剥离附加部分。在这个内核中,通过统一计算架构单元(CUDA)多线程处理技术间将文件流平均分配、处理。哈希表是种数据结构,是一种数据元素以散列方式组织的存储结构,它可以提供快速的插入操作和查找操作,是应用得非常广泛的数据结构,它解决了在有限程序空间内容纳总数有限,但索引取值范围非常大的数据项的设计要求。本实用新型的文本数据挖掘系统,也是设置有哈希表的。
内核需要通过DMA(直接内存访问)让大量的数据在主机和GPU间移动。第一,处理大量的文档/文件,尤其是当总文件长度大于GPU全局内存的时候,一旦他们被完全建立,文件哈希表就会被刷新出主机内存。第二,在每个批次进程开始的时候,文件的原始数据都会从主机内存送到GPU全局内存中。为了减少内存的开销,可以让CPU/GPU联合协作。在每批迭代的时候,CPU的线程首先发送前两个内核的异步。在GPU全局内存调用下一个写入文件哈希表缓存的内核之前,它会等待前一批的DMA把旧表传送到主机内存的完成信号。在GPU忙于产生该文件哈希表和将标记插入到全局表中时,CPU可以从磁盘上预取下一批文件,并且把他们复制到其他文件流的缓冲区。在结束批处理迭代时,CPU会再次处理内存异步问题,将文件的哈希表复制到主机的内存中。仅在下一批迭代的时候,完成DMA的同步。通过这种方式,输入到GPU的文档原始数据与DMA的时间部分重叠,并且将哈希表复制到当前的批次和流预处理的下一批次重叠。
为了进一步减少DMA的开销,可以减少文件哈希表的大小。这就不同于在GPU全局内存中驻留但不必复制到主机并且直到执行结束的全局表。该哈希文件包含一个表头和一个数组,如果它们属于同一个桶,那么它们就可以在内部链接成一个列表。表头是用来确定桶的大小,并找到每个桶的第一项。与此相反,全局哈希表把大的数组平均分到桶中。由于特殊限制,无论多大的库,都可以选择足够大小的桶,以避免溢出。
另外一项努力就是减少文件哈希表的大小以避免长期储存单词。相反,每个条目都是简单的维护一个索引指向相应的条目,这些条目实际上是长期保存在当前的全局表中。为了在插入和搜索中减少哈希键的哈希计算,关键在于作为“无符号长”保存。为了进一步减少哈希碰撞的概率(两个时期共享相同的键),增加一个“无符号整数”,作为身份验证,以帮助作为区分条件。获取哈希表的途径有两种,一种是通过原子操作(Atomic Operations)来获取,一种是不通过原子操作来获取。
第一种,通过原子操作获取哈希表。通过原子操作获得哈希表有两个步骤。第一步,该文件流均匀分布在统一计算架构单元(CUDA)线程集上。这些线程都是被选择用来最大化GPU的利用率。缓存用来储存中间的哈希表,这些哈希表的结构布局很接近于当前的全局哈希表,但是一个较小的桶K是对桶ID排序的条件。在线程流中遇到一个新的名词和获取桶ID时,它会发出一个原子(同时原子加1)来影响桶的大小。
下一步,中间的哈希表减少到最后,更简洁的文件哈希表就会展现。每个CUDA线程,遍历一个桶中处于中间的哈希表,重复计算,如果发现一个新的名词,那么就储存在项目中的数组中。然后推进桶链接列表的新条目。由于不同的线程操作不相交的桶,所以每条桶链表访问相互互斥,这就避免了写入线程之间的冲突。
第二种,不通过原子操作获取哈希表。在GPU的支持下,文件流首先分成小包,每个包都被送到不同的哈希包块中,这些哈希包块都是被线程所拥有的。通过给每个线程一个单独的散列哈希表,我们可以保证线程之间的写保护。线程被重新分配给不同的分表,在此步骤上发现相同的条件,生成每个桶的统计信息。处理的桶大小信息,将分表合并成最终的哈希表。
以上两个处理哈希标记的程序,不需要任何其他文件资料。因此,在不同的GPU块,每个文件可同时独立处理。
通过植入CUDA技术的GPU,取得了很高倍数的加速,GPU能够提供大规模并行计算。
本实用新型的有益效果是:
(1)本实用新型能够快速得到有价值的数据,方便决策者快速的响应市场需求,在市场竞争中取得有利地位;
(2)通过GPU的超强的并行计算能力,实现快速、有效地数据挖掘;
(3)利用千兆网线和光纤实现快速的数据传输。
附图说明
图1为本实用新型所述基于GPU的文本数据挖掘系统的整体结构图;
图2为本实用新型所述基于GPU的文本数据挖掘系统的终端工作站的数据流程示意图;
图3为本实用新型所述基于GPU的文本数据挖掘系统的主机服务器数据流程示意图;
图4为本实用新型所述基于GPU的文本数据挖掘系统的CPU/GPU联合协作示意框图;
图5为本实用新型所述基于GPU的文本数据挖掘系统的CPU/GPU联合协作处理文本数据时的数据流程示意图。
具体实施方式
为更进一步阐述本实用新型为达成预定目的所采取的技术手段及功效,以下结合附图,详细说明如后。
如图1所示,为本实用新型所述基于GPU的文本数据挖掘系统的整体结构图。终端工作站1可有多台,从终端工作站11、终端工作站12到终端工作站1n,本实用新型的优选数量为2台到32台。同样地,主机服务器3也可以有多台,如主机服务器31、主机服务器32到主机服务器3n等。同样地,存储阵列4也可以有多台,如存储阵列41、存储阵列42到存储阵列4n。
终端工作站通过人机交互设备接收用户指令后,通过终端工作站本机的CPU对请求进行预处理,然后通过终端工作站的终端通讯模块将请求发送交换机,交换机将请求发送给主机服务器,主机服务器根据用户指令,向存储阵列发出提取文本数据请求,存储阵列将文本数据通过交换机回传至主机服务器,通过主机服务器的GPU对文本数据进行挖掘。具体步骤为:
S1、终端工作站向主机服务器发送请求;S2、主机服务器监听并接收交换机转来的终端工作站请求;S3、主机服务器向存储阵列发送提取文本数据请求;S4、存储阵列接收交换机转来的主机服务器提取文本数据请求;S5、存储阵列向主机服务器发送文本数据;S6、主机服务器接收交换机转来的文本数据并计算;S7、主机服务器发送结果给终端工作站;S8、终端工作站接收交换机转来的主机服务器计算结果。
如图2所示,为本实用新型所述基于GPU的文本数据挖掘系统的终端工作站的数据流程示意图。终端工作站的数据流程为:首先扫描人机交互设备,例如键盘、鼠标、触摸屏等,看是否有请求产生并发出,当用户有请求发出后,内存将存储相关数据,判断是否有效请求,如果是有效请求,则终端工作站的CPU则对请求进行预处理,成功处理后发送到网卡,由网卡将处理后的请求发送到主机服务器。当人机交互设备没有发出请求、请求被判断为无效请求或者终端工作站的CPU对请求处理不成功时,均返回待机。
如图3所示,为本实用新型所述基于GPU的文本数据挖掘系统的主机服务器数据流程示意图。主机服务器的数据流程为:主机服务器接收终端工作站的请求,成功接收请求后,通过主机服务器的服务器通信模块向存储阵列发送取得文本数据的请求,存储阵列响应后,主机服务器接收存储阵列的数据并存入内存,然后主机服务器的GPU开始高速并行计算。
如图4所示,为本实用新型所述基于GPU的文本数据挖掘系统的CPU/GPU联合协作示意框图。主机服务器的CPU与主机内存连接、主机内存与GPU全局内存之间连接,GPU全局内存与GPU通用并行计算模块的统一计算架构单元连接。文本数据信号依次通过主机服务器CPU、主机内存、GPU全局内存进入统一计算架构单元进行数据挖掘处理。
如图5所示,为本实用新型所述基于GPU的文本数据挖掘系统的CPU/GPU联合协作处理文本数据时的数据流程示意图。CPU/GPU的联合协作是迭代处理的。
第一批文件的处理流程为:CPU从磁盘(例如硬盘)上获取文件数据到主机内存;CPU创建文件哈希表;通过DMA将文件数据从主机内存传输到GPU全局内存中;在GPU中文件流被平均分配到多个文件流缓冲区;GPU调用内核将哈希表存储到哈希表缓存,并且将标记插入到全局表中;CUDA线程就对文件流进行挖掘;挖掘完毕后,将挖掘结果传输到主机内存。
其后批次的数据也是根据同样的流程处理的:CPU从磁盘(例如硬盘)上获取文件数据到主机内存;CPU创建文件哈希表;通过DMA将文件数据从主机内存传输到GPU全局内存中;在GPU中文件流被平均分配到多个文件流缓冲区;GPU调用内核将哈希表存储到哈希表缓存,并且将标记插入到全局表中;判断前一批文件是否挖掘完毕,如果挖掘完毕,则CUDA线程就对文件流进行挖掘;如果尚未挖掘完毕,则等待前一批文件挖掘完毕,CUDA线程再对文件流进行挖掘。
与此同时,CPU在磁盘(例如硬盘)上获取下一批文件数据到主机内存。
显然上述具体实施方式不是对本实用新型的限制,上述一种基于GPU的文本数据挖掘系统还可以有其他许多变化。虽然已经结合上述例子详细讨论了本实用新型,但应该理解到:业内专业人士可以显而易见地想到的一些雷同,代替方案,均落入本实用新型权利要求所限定的保护范围之内。
Claims (10)
1.一种基于GPU的文本数据挖掘系统,其特征在于,包括终端工作站、交换机、主机服务器和存储阵列,所述主机服务器设置有CPU和GPU,所述GPU设有通用并行计算模块,所述交换机分别与主机服务器、存储阵列,终端工作站连接;所述的通用并行计算模块设置有统一计算架构单元。
2.根据权利要求1所述基于GPU的文本数据挖掘系统,其特征在于,所述交换机设有交换通信模块;所述终端工作站包括CPU、终端通信模块、终端人机交互设备;所述主机服务器还包括服务器通信模块和服务器人机交互设备;所述存储阵列包括存储模块和存储通信模块;所述交换通信模块分别与终端通信模块、服务器通信模块、存储通信模块连接。
3.根据权利要求2所述基于GPU的文本数据挖掘系统,其特征在于,所述终端通讯模块、服务器通讯模块、存储通信模块、交换通信模块是网卡和/或光纤连接器。
4.根据权利要求3所述基于GPU的文本数据挖掘系统,其特征在于,所述网卡是千兆或万兆网卡。
5.根据权利要求4所述基于GPU的文本数据挖掘系统,其特征在于,所述网卡是有线网卡。
6.根据权利要求4所述基于GPU的文本数据挖掘系统,其特征在于,所述网卡是无线网卡。
7.根据权利要求4所述基于GPU的文本数据挖掘系统,其特征在于,所述终端人机交互设备包括显示屏、键盘、鼠标。
8.根据权利要求7所述基于GPU的文本数据挖掘系统,其特征在于,所述终端工作站是2-32台。
9.根据权利要求1-8任一项所述基于GPU的文本数据挖掘系统,其特征在于,所述主机服务器还包括主机内存;所述主机服务器的GPU还包括GPU全局内存;主机服务器的CPU与主机内存连接、主机内存与GPU全局内存之间连接,GPU全局内存与设置在GPU通用并行计算模块上的统一计算架构单元连接。
10.根据权利要求9所述基于GPU的文本数据挖掘系统,其特征在于,所述GPU还设有通用API接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010201674780U CN201681385U (zh) | 2010-04-22 | 2010-04-22 | 一种基于gpu的文本数据挖掘系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010201674780U CN201681385U (zh) | 2010-04-22 | 2010-04-22 | 一种基于gpu的文本数据挖掘系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN201681385U true CN201681385U (zh) | 2010-12-22 |
Family
ID=43346422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010201674780U Expired - Fee Related CN201681385U (zh) | 2010-04-22 | 2010-04-22 | 一种基于gpu的文本数据挖掘系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN201681385U (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102628956A (zh) * | 2011-04-08 | 2012-08-08 | 中国科学院地质与地球物理研究所 | Gpu/cpu协同方式可控震源数据相关处理设备及方法 |
CN102682138A (zh) * | 2011-03-15 | 2012-09-19 | 深圳光启高等理工研究院 | 一种数据处理方法 |
-
2010
- 2010-04-22 CN CN2010201674780U patent/CN201681385U/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682138A (zh) * | 2011-03-15 | 2012-09-19 | 深圳光启高等理工研究院 | 一种数据处理方法 |
CN102682138B (zh) * | 2011-03-15 | 2015-03-11 | 深圳光启高等理工研究院 | 一种数据处理方法 |
CN102628956A (zh) * | 2011-04-08 | 2012-08-08 | 中国科学院地质与地球物理研究所 | Gpu/cpu协同方式可控震源数据相关处理设备及方法 |
CN102628956B (zh) * | 2011-04-08 | 2014-05-07 | 中国科学院地质与地球物理研究所 | Gpu/cpu协同方式可控震源数据相关处理设备及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110704360B (zh) | 一种基于异构fpga数据流的图计算优化方法 | |
Wang et al. | Towards efficient solutions of bitruss decomposition for large-scale bipartite graphs | |
CN102307206B (zh) | 基于云存储的快速访问虚拟机镜像的缓存系统的缓存方法 | |
CN102750131B (zh) | 一种面向gpu的双调归并排序方法 | |
US20100293135A1 (en) | Highconcurrency query operator and method | |
CN103559016A (zh) | 一种基于图形处理器并行计算的频繁子图挖掘方法 | |
Basaran et al. | Grex: An efficient MapReduce framework for graphics processing units | |
CN1983165A (zh) | 用于在simd结构中处理线程组的系统和方法 | |
CN106407463A (zh) | 一种基于Hadoop的图像处理方法及系统 | |
Min et al. | Pytorch-direct: Enabling gpu centric data access for very large graph neural network training with irregular accesses | |
CN108021449A (zh) | 一种协程实现方法、终端设备及存储介质 | |
JP2014146319A (ja) | インメモリデータベースにおける高効率のゲノムリードアラインメント | |
CN106462386B (zh) | 排序分布式输入数据的排序方法和处理系统 | |
CN112487161A (zh) | 一种面向企业需求的专家推荐方法、装置、介质及设备 | |
Banaei et al. | Hadoop and its role in modern image processing | |
CN103995827A (zh) | MapReduce计算框架中的高性能排序方法 | |
He et al. | Efficient parallel A* search on multi-GPU system | |
CN201681385U (zh) | 一种基于gpu的文本数据挖掘系统 | |
Huang et al. | $ TC-Stream $ T C-S t r e a m: Large-Scale Graph Triangle Counting on a Single Machine Using GPUs | |
CN108052535B (zh) | 基于多处理器平台的视觉特征并行快速匹配方法和系统 | |
Xie et al. | PetPS: Supporting huge embedding models with persistent memory | |
Wang et al. | A CUDA-enabled parallel implementation of collaborative filtering | |
Wang et al. | Noswalker: A decoupled architecture for out-of-core random walk processing | |
Ma et al. | BiloKey: a scalable Bi-index locality-aware in-memory key-value store | |
Faraji et al. | Exploiting heterogeneity of communication channels for efficient GPU selection on multi-GPU nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
DD01 | Delivery of document by public notice |
Addressee: Zhou Xiaohui Document name: Notification to Pay the Fees |
|
DD01 | Delivery of document by public notice |
Addressee: Zhou Xiaohui Document name: Notification of Termination of Patent Right |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101222 Termination date: 20150422 |
|
EXPY | Termination of patent right or utility model |