CN116342370B - 一种基于gpu的地球化学数据一体化处理方法及系统 - Google Patents
一种基于gpu的地球化学数据一体化处理方法及系统 Download PDFInfo
- Publication number
- CN116342370B CN116342370B CN202310239808.4A CN202310239808A CN116342370B CN 116342370 B CN116342370 B CN 116342370B CN 202310239808 A CN202310239808 A CN 202310239808A CN 116342370 B CN116342370 B CN 116342370B
- Authority
- CN
- China
- Prior art keywords
- value
- chemical
- sampling points
- data
- gpu
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000005070 sampling Methods 0.000 claims abstract description 91
- 229910052729 chemical element Inorganic materials 0.000 claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 68
- 239000000126 substance Substances 0.000 claims abstract description 54
- 238000001514 detection method Methods 0.000 claims abstract description 49
- 230000002159 abnormal effect Effects 0.000 claims abstract description 48
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 239000012634 fragment Substances 0.000 claims abstract description 19
- 238000009877 rendering Methods 0.000 claims abstract description 7
- 239000000872 buffer Substances 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 38
- 239000000523 sample Substances 0.000 claims description 18
- 239000013598 vector Substances 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 14
- 238000012216 screening Methods 0.000 claims description 12
- 238000004040 coloring Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 238000002156 mixing Methods 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 abstract description 3
- 238000012935 Averaging Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- JTJMJGYZQZDUJJ-UHFFFAOYSA-N phencyclidine Chemical compound C1CCCCN1C1(C=2C=CC=CC=2)CCCCC1 JTJMJGYZQZDUJJ-UHFFFAOYSA-N 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000556 factor analysis Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16C—COMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
- G16C20/00—Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
- G16C20/90—Programming languages; Computing architectures; Database systems; Data warehousing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
- G06T15/87—Gouraud shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2012—Colour editing, changing, or manipulating; Use of colour codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Chemical & Material Sciences (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种基于GPU的地球化学数据一体化处理方法,步骤如下:S1、将化探数据按照三维数组数据结构Struct_A格式进行存储;S2、在图形处理单元GPU中使用计算着色器对化探数据进行处理,计算每个化学元素含量的均值和标准偏差,并计算阈值,剔除低于该阈值的采样点,重复进行,得到最终的背景值,以及异常下限值;S3、通过剔除采样点后的化探数据集构建空间坐标,将其载入片元着色器进行渲染并根据背景值和异常下限值完成异常圈定。本发明还公开了一种基于GPU的地球化学数据一体化处理装置和一种计算机系统。本发明能加快化探数据处理和异常图绘制速度,做到实时交互式化探异常圈定,可以广泛应用于化探技术领域。
Description
技术领域
本发明涉及化探技术领域,特别是涉及一种基于GPU的地球化学数据一体化处理方法及系统。
背景技术
化探工作是找矿工作的主要组成部分,而化探数据的处理,则是化探工作的关键。化探数据处理是指在地球化学勘查和地球化学研究中,为了提取具有地质找矿意义的信息和其他有用信息,对地球化学数据的加工、分析和解释工作。处理过程通常是使用统计学工具对采集到的样品数据进行筛选,确定哪些样品点存在“异常”,并对异常的范围进行圈定,形成异常图。存在异常的区域,便是具有潜在找矿潜力的区域。
在计算机技术应用到找矿中后,化探数据处理技术有了质的飞跃。依托于计算机的高速处理能力,各种复杂的统计学方法被应用于化探数据处理,包括聚类分析、因子分析、判别分析等等。
伴随着计算机技术的发展,更多复杂的数据处理方法被应用于化探数据处理。如史长义等(1999)提出了“子区中位数衬值滤波法”,成秋明(2001)提出了局部奇异性理论,韩东昱等(2004)结合分形理论,提出了“含量—总量法确定异常下限”及“分形趋势面法”。
现今,人工智能和机器学习技术也已被应用于化探数据处理。
处理完成后,则需要基于数据结果绘制异常图,圈定异常区域。目前数据处理结果通常使用Surfer、MapGIS等软件以人机交互的方式完成异常圈定。
生产中,化探数据处理通常是使用Excel应用迭代法进行处理的。迭代法的具体原理为,首先计算该元素的含量值的均值X1和标准偏差Sd1,然后将所有高于X1+n×Sd1的值剔除掉;再计算新数据集的均值X2和标准偏差Sd2,再将所有高于X2+n×Sd2的值剔除掉,重复以上计算,直到无值可剔除,其中,上述n均为2或3;得出的最终均值Xi即为背景值,Xi+2×Sdn即为异常下限。根据实际情况,采样点中元素值高于背景值或者异常下限的点位即被认为是异常区域。
为了计算得到背景值和异常值,实践中通常使用Excel手动进行计算。当数据量较大时,如对10万采样点40种元素,使用Excel处理便较为吃力。处理完成后,会将数据导入Surfer或者MapGIS等软件,并根据各个点的值指定颜色,形成异常图。这些处理过程都大量的需要人工介入。为了提高处理效率,出现了如“化探数据一体化处理系统”的数据处理工具,可以方便的将化探数据按需求导入处理,并绘制成异常图,简化了操作过程。
现有的自动化处理工具相比手动操作效率更高,但每次成图后,如果对效果不满意,需要调整处理参数就需要将之前的过程重新走一遍,而不能做到边观察成图结果边调整相关参数的实时交互式调整。造成这一问题的根本原因在于目前的数据处理和绘制均是在CPU(基于串行处理)上进行的,而CPU对于图形数据的处理天然不擅长。
CPU(graphics processing unit图形处理器)具有并行处理的能力,但是由于CPU和GPU的硬件架构不同,现有的计算机处理方法只能在CPU执行,无法机械的照搬至GPU。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于GPU的地球化学数据一体化处理方法及系统,使其具有加快化探数据处理以及异常图绘制速度,做到实时交互式的化探异常圈定的功能,这需要将化探数据处理和异常图绘制的过程从CPU转移到使用GPU(graphics processing unit指图形处理器)解决。
本发明提供的一种基于GPU的地球化学数据一体化处理方法,包括如下步骤:
S1、将化探数据按照预设的三维数组数据结构Struct_A的格式进行存储,该三维数组数据结构Struct_A的第一维度表示采样点,第二维度表示化学元素,第三维度用于采样点计数和存储化学元素值;
S2、在图形处理单元GPU中使用计算着色器对格式化后的化探数据进行迭代处理,具体对相邻采样点进行两两并行迭代相加处理,直至计算出所有采样点的各个化学元素含量的迭代之和,据此计算每个化学元素含量的均值和标准偏差,并计算化学元素的阈值,剔除低于该阈值的采样点,重复进行,直到无采样点可剔除,得到最终的均值作为背景值,以及最终的阈值作为异常下限值;
S3、根据剔除采样点后的新的化探数据集构建空间坐标,将其载入片元着色器进行渲染并根据背景值和异常下限值完成异常圈定。
接上述技术方案,所述步骤S2的具体过程如下:
S21、创建可被计算着色器访问的第一缓冲区和第二缓冲区,将初始的化探数据集CSet1按照Struct_A的格式写入第一缓冲区,将相邻采样点两两并行进行采样点计数值C和化学元素值V的向量求和,并存到第二缓冲区,将第二缓冲区中的数据再进行相邻两两求和存入第一缓冲区,反复进行,直至计算出所有采样点中所有化学元素的C和V的向量和,通过两者的比值计算每个化学元素的平均值PM;
S22、创建可被计算着色器访问的第三缓冲区和第四缓冲区,将初始的化探数据集CSet1写入第三缓冲区,并行计算相邻采样点中每个化学元素的V值与相应化学元素平均值PM的差方之和,以及C的向量和,存到第四缓冲区,再将第四缓冲区的向量采样点再进行相邻两两并行求和计算存入第三缓冲区,反复进行,直至计算出所有采样点V的差方之和以及C的向量和,并据此计算每个化学元素的元素标准差PSd;根据PM和PSd计算阈值,根据该阈值筛选初始的化探数据集CSet1,得到筛选后的化探数据集CSet2;
S23、对筛选后的化探数据集CSet2再按照相同的方法进行筛选,直到没有采样点被剔除,此时得到最终的各个化学元素的平均值PMN作为背景值,以及最终的各个化学元素的阈值PtN作为异常下限值。
接上述技术方案,其中,初始的化探数据集CSet1中所有化学元素的C值都初始化为1。
接上述技术方案,其中,第二缓冲区和第四缓冲区中所有化学元素的C值和V值都初始化为0。
接上述技术方案,第一缓冲区的内存偏移量是第二缓冲区的内存偏移量的2倍;第三缓冲区的内存偏移量是第四缓冲区的内存偏移量的2倍。
接上述技术方案,如果相邻采样点中的某个化学元素的V值为0,则该化学元素的C值也被设置为0。
接上述技术方案,步骤S3的具体过程如下:
S31、通过剔除采样点后的新的化探数据集创建顶点缓冲对象VBO,其中空间坐标作为顶点坐标,各化学元素值作为顶点属性;
S32、对新的化探数据集进行三角化,创建三角形绘制的顶点序号列表,并在此过程中对数据进行插值,得到平滑的待圈定的异常图;
S33、根据背景值PMN和异常下限值PtN,在片元着色器中对待圈定的异常图进行着色,当顶点属性值大于PMN或者PtN时,将该顶点的像素设置为异常颜色,否则设置为非异常颜色,完成异常圈定。
接上述技术方案,若待圈定的异常图为多化学元素异常图,则根据实际情况自行选择多种颜色混合方式。
本发明还提供一种基于GPU的地球化学数据一体化处理装置,其特征在于,该系统包括:
三维数组模块,用于将化探数据按照预设的三维数组数据结构Struct_A的格式进行存储,该三维数组数据结构Struct_A的第一维度表示采样点,第二维度表示化学元素,第三维度用于采样点计数和存储化学元素值;
背景值计算模块,用于在图形处理单元GPU中使用计算着色器对格式化后的化探数据进行迭代处理,具体对相邻采样点进行两两并行迭代相加处理,直至计算出所有采样点的各个化学元素含量的迭代之和,据此计算每个化学元素含量的均值和标准偏差,并计算化学元素的阈值,剔除低于该阈值的采样点,重复进行,直到无采样点可剔除,得到最终的均值作为背景值,以及最终的阈值作为异常下限值;
异常圈定模块,用于通过剔除采样点后的新的化探数据集构建空间坐标,将其载入片元着色器进行渲染并根据背景值和异常下限值完成异常圈定。
本发明还提供一种计算机存储介质,其内存储有可被处理器执行的计算机程序,该计算机程序执行上述技术方案中任一项所述的基于GPU的地球化学数据一体化处理方法。
本发明具有以下有益效果:
首先,本发明基于GPU多核优势可提供较强的算力,可以快速并行两两求和计算,从而能够提高本发明的运算效率。
其次,本发明采用的Struct_A三维数组是依据化探数据处理中两个基本的操作特性而构建。针对化探数据处理的本质是三个步骤的循环,即(1)求平均、(2)求标准差、(3)筛选,在整个运算中,都是通过对C和V这两个变量的复用来实现各个步骤的计算,而不必针对每种运算定义专门的存储方式,这既简化了程序的设计,又减少了内存复制的开销,从而提高了运行效率。
同时,本发明专门针对传统的化探数据处理方法“迭代法”在计算着色器上做出了改进。在传统化探数据处理中,通过迭代法将样品化探数据进行求平均值、求标准差、筛选等步骤,得到区域的地球化学背景值及异常下限,用于分辨哪些样品为“异常值”,可以帮助圈定找矿潜力区域。而本发明基于迭代法的核心思路,在传统计算方法的基础上,进行了并行处理适配,使其在GPU上能得到与CPU相同结果的基础上,大幅度提高了处理速度,提高了用户的体验。
附图说明
图1为本发明基于GPU的地球化学数据一体化处理方法的整体流程示意图;
图2为本发明基于GPU的地球化学数据一体化处理方法中步骤2的流程示意图;
图3为本发明基于GPU的地球化学数据一体化处理方法中步骤2.1.1和步骤2.1.2涉及的数据结构示意图;
图4为本发明基于GPU的地球化学数据一体化处理方法中步骤2.1.3和步骤2.1.4涉及的数据结构示意图;
图5为本发明基于GPU的地球化学数据一体化处理方法中步骤2.2的流程示意图;
图6为本发明基于GPU的地球化学数据一体化处理方法中步骤3的流程示意图;
图7为本发明基于GPU的地球化学数据一体化处理装置的结构示意图;
图8为本发明计算机系统的结构示意图。
具体实施方式
下面结合附图及实施例对本发明作进一步的详细描述,但该实施例不应理解为对本发明的限制。
参见图1,本发明基于GPU的地球化学数据一体化处理方法,
该方法包括三个关键环节:1、通过三维数据结构构建完成化探数据的转换;2、背景值和异常下限的计算;3、异常圈定。
步骤1,定义一种数据结构Struct_A。Struct_A是一个三维数组,第一维度为采样点,第二维度为元素,第三维度只包含两个值C和V,其中C为用于采样点计数的整数型数值,V为用于存储化学元素值的浮点型数值,且第三维度的体积固定为S。以0为计数起始,则若访问第n个采样点的第m个元素的相关值,其在该数据结构中的偏移为(S×m)+(S×m×n)。
步骤2,参见图2,背景值的计算主要使用计算着色器(Compute Shader)完成,设初始的化探数据集为CSet1,具体处理步骤如下:
2.1针对输入的化探数据集CSet1,计算平均值,其具体方法如下:
2.1.1参见图3,在显存中按Struct_A的格式创建可被计算着色器直接访问的缓冲区Buffer_1,作为计算着色器的输入缓冲区一。将所有初始的化探数据集CSet1值写入到Buffer_1中,且其中初始的化探数据集CSet1中所有化学元素的C值都初始化为1。
2.1.2在显存中按Struct_A的格式创建可被计算着色器直接访问的缓冲区Buffer_2,作为计算着色器的输出缓冲区一。Buffer_2所能存储的采样点数量为Buffer_1的一半。Buffer_2中所有化学元素的C值和V值都初始化为0。
2.1.3参见图4,执行(Dispatch)一个计算着色器程序。执行的合计线程数为Buffer_2中采样点个数。上述计算着色器程序按如下步骤执行:该计算着色器程序通过主函数传入的线程ID来确定其所对应的缓冲区偏移量,利用该偏移量找到在Buffer_1中对应的采样点P1以及位于其右侧的采样点P2。如果P1或者P2中的某个元素的V值为0,则该元素的C值也要被设置为0。然后对P1和P2中的V值和C值进行向量求和得到新的采样点PN,并将PN的值写入到Buffer_2中。需要注意,由于计算着色器程序在Buffer_1中取两个采样点而在Buffer_2写入一个采样点,Buffer_1的体积是Buffer_2的两倍,因此对应Buffer_1的内存偏移量是对应Buffer_2的内存偏移量的2倍。
2.1.4将存入Buffer_2的相邻采样点的向量值再次两两并行进行C和V的向量求和,即代入步骤2.1.2和2.1.3并重复执行,直到Buffer_2中所输出的采样点仅剩1个,该采样点每个化学元素的C值即为针对该元素的有效采样点的个数,V值即为所有该元素采样点值的和。该采样点即得到了该化学元素的平均值PM。
在本发明中,针对计算平均值前的求和步骤,如果在CPU上计算时,只需将所有采样点的值循环求和即可。例如计算a+b+c+d+e+f+g+h,在CPU上需要先计算a+b,然后再计算+c,在计算+d等等。如果每次相加都要消耗一个时钟周期的话,这个运算需要7个时钟周期。在换成使用GPU计算后,按照这种简单相加的思路,需要下一步运算必须要依赖于上一步运算的结果,这种依赖导致该运算无法并行化,无法发挥GPU的多核优势。因此我们需要对该算法进行改进,即将任务拆分为计算a+b、c+d、e+f、g+h,这四个加法运算放到4个GPU核心中执行,仅需要执行1个时钟周期便可以得到4个结果,然后再次对这4个结果两两相加,直到得到最后仅有一个结果,即是总和。这样仅需要3个时钟周期,即可完成全部运算,比CPU的串行计算方法节省一半多的时钟周期。
2.2参见图5,针对输入的化探数据集CSet1,计算标准差,具体处理步骤如下:
2.2.1在显存中按Struct_A的格式创建可被计算着色器直接访问的缓冲区Buffer_3,作为计算着色器的输入缓冲区二。将所有初始的化探数据集CSet1值写入到Buffer_3中,且其中初始的化探数据集CSet1中所有化学元素的C值都初始化为1。
2.2.2在显存中按Struct_A的格式创建可被计算着色器直接访问的缓冲区Buffer_4,作为计算着色器的输出缓冲区二。Buffer_4所能存储的采样点数量为Buffer_3的一半。Buffer_4中所有化学元素的C值和V值都初始化为0。
2.2.3执行一个计算着色器程序。执行的合计线程数为Buffer_3中所包含的点位数的一半。上述计算着色器程序按如下流程进行:该计算着色器程序通过主函数传入的线程ID来确定其所对应的内存偏移量,通过外部传入的Uniform变量方式获得步骤2.1.4中所得到的各个化学元素的平均值PM。利用内存偏移量找到在Buffer_3中对应的采样点P1及位于其右侧的采样点P2。如果P1或者P2中的某个化学元素的V值为0,则该化学元素的C值也要被设置为0。使用V值计算(P1与P2的V分别与PM向量减后求各分量平方,然后两向量求和),使用C值计算/>得到结果PD,并写入到Buffer_4中。在访问Buffer_3和Buffer_4时,同样,由于计算着色器程序在Buffer_3中取两个采样点而在Buffer_4写入一个采样点,Buffer_3的体积是Buffer_4的两倍,因此对应Buffer_3的内存偏移量是对应Buffer_4的内存偏移量的2倍。
2.2.4将存入Buffer_4的相邻采样点的V值与其平均值PM的差方之和,以及C值的向量和,得到的新结果再次存入第四缓冲区,即代入2.2.2和2.2.3步骤并重复执行,直到Buffer_4中所输出的采样点仅剩1个,针对该采样点计算即得到元素标准差PSd。
在本发明的实际执行过程中,之所以定义Struct_A数据结构,这是由于化探数据处理中两个基本处理操作的特性所决定的。化探数据处理的本质即是三个步骤的循环,即(1)求平均、(2)求标准差、(3)筛选。针对这三个运算的特性,本发明采用了Struct_A这种数据结构。可以看到,在整个运算中,都是通过对C和V这两个变量的复用,实现各个步骤的计算的,而不需要针对每种运算定义专门的存储方式,这可以简化程序的设计,减少内存复制的开销,提高运行效率。
2.3计算阈值其中n根据数据处理需求取值,通常取值范围为[2,3]。该计算因计算量较小,可以在CPU完成。
2.4在CPU上对初始化探数据CSet1进行筛选,如果某个元素值低于其在Pt中对应的值,则该元素值设置为0;如果某采样点所有元素的值都为0,则将该采样点剔除。剔除后得到新的化探数据集CSet2,有M1个采样点和N个元素。
2.5针对CSet2重复步骤2.1~2.4,直到在步骤2.4中不再有采样点被剔除,则得到最终的元素平均值PMN,和最终的阈值PtN。PMN即背景值,PtN即异常下限。
步骤3,参见图6,异常圈定主要使用片元着色器(Fragment Shader,或称为像素着色器Pixel Shader),此时化探数据集为CSet2,CSet2中的每个采样点都包含了空间坐标,具体步骤如下:
3.1使用CSet2的数据构建顶点(Vertex),其中空间坐标作为顶点坐标,各化学元素值作为顶点属性(GLSL Attribute,或其他等价方式)。
3.2使用任意一种方法对CSet2进行三角化,以创建三角形绘制的顶点序号列表。在此过程中可以对数据进行插值,以获得更为平滑的异常图。
3.3执行一个片元着色器程序,将步骤2.5中获得的背景值PMN和异常下限值PtN以Uniform的形式传入并执行该片元着色器程序。该片元着色器程序按如下步骤推进:3.3.1设针对某化学元素的异常颜色为C1,非异常颜色为C2,则针对该化学元素的每个像素,如果该像素属性中(GLSL Varying或其他等价方式)该化学元素的值大于PMN或PtN,则该像素颜色为C1,否则该像素颜色为C2。3.3.2多元素异常图可根据实际情况自行选择颜色混合方式。
3.4完成异常圈定。
参见图7,本发明基于GPU的地球化学数据一体化处理装置,包括如下部分:
三维数组模块:定义一种三维数组数据结构Struct_A,其中,第一维度为采样点,第二维度为元素,第三维度只包含两个值C和V,其中,C为用于采样点计数的整数型数值,V为用于存储化学元素值的浮点型数值,且第三维度的体积固定为S,以0为计数起始,则若访问第n个采样点的第m个元素的相关值,其在该数据结构中的偏移为(S×m)+(S×m×n);
背景值计算模块:在图形处理单元GPU中使用计算着色器对格式化后的化探数据进行迭代处理,具体对相邻采样点进行两两并行迭代相加处理,直至计算出所有采样点的各个化学元素含量的迭代之和,据此计算每个化学元素含量的均值和标准偏差,并计算化学元素的阈值,剔除低于该阈值的采样点,重复进行,直到无采样点可剔除,得到最终的均值作为背景值,以及最终的阈值作为异常下限值;
异常圈定模块:通过剔除采样点后的化探数据集构建空间坐标,将其载入片元着色器进行渲染并根据背景值和异常下限值完成异常圈定。
参见图8,本发明计算机系统,包括基于GPU的地球化学数据一体化处理装置。
本发明中计算着色器和片元着色器的应用原理:
目前主流的并行运算通常使用CUDA执行。这是由NVIDIA的市场地位所决定的。但由于CUDA是NVIDIA的私有标准,而不是一个行业标准,因此其硬件应用客观受限。而目前最为广泛支持的,能够基本等价于CUDA的方法标准,即为计算着色器。计算着色器是OpenGL4.6标准的组成部分,几乎所有现今GPU厂商都可以支持。
OpenGL 4.6标准包括5种着色器,即顶点着色器、细分着色器、几何着色器、片元着色器、计算着色器。这其中只有计算着色器可以做到通用计算,而其他几种着色器都是为图形显示服务的,因此数据计算必须选择计算着色器。
而在本发明的异常圈定步骤,由于其本质是针对像素的上色操作,而在像素处理阶段对应的是OpenGL 4.6标准中的片元着色器,因此,使用片元着色器完成计算。
以下将以一个具体的实施例加以说明:
实施例
假设处理一个以Excel表格形式存储的化探数据,共16种元素,如下表:
检测号 | 密码号 | 样号 | X | Y | H | Ag | As | Bi | Cd | Co | …… |
HT192030008 | 0002C3 | 0058B1C | 341597 | 3374771 | 4887 | 0.058 | 16 | 0.48 | 0.16 | 9.67 | …… |
HT192030051 | 0014C1 | 0069B1C | 352601 | 3374697 | 4822 | 0.046 | 17.2 | 0.41 | 0.14 | 6.82 | …… |
HT192030101 | 0031C3 | 0092C1C | 351250 | 3373450 | 4831 | 0.075 | 24.9 | 0.51 | 0.13 | 5.77 | …… |
HT192030200 | 0059C1 | 0106A1C | 341284 | 3372594 | 4944 | 0.043 | 21.9 | 0.56 | 0.14 | 8.23 | …… |
HT192030250 | 0075A2 | 0153B1C | 340634 | 3370596 | 4967 | 0.059 | 39.2 | 0.74 | 0.14 | 12.2 | …… |
HT192030300 | 0088B2 | 0177C1C | 340340 | 3369252 | 5041 | 0.068 | 27.5 | 0.78 | 0.11 | 8.98 | …… |
HT192030350 | 0101C1 | 0185C1C | 348144 | 3369151 | 4887 | 0.057 | 21.8 | 0.56 | 0.096 | 5.97 | …… |
HT192030400 | 0113D2 | 0208C1C | 347064 | 3368459 | 4897 | 0.073 | 21.1 | 0.42 | 0.092 | 5.36 | …… |
…… | …… | …… | …… | …… | …… | …… | …… | …… | …… | …… | …… |
使用OpenGL、Vulkan或者DirectX,其处理过程如下:
1、使用任意一种方式将Excel表格读取至内存。
2、Struct_A中,C的数据格式为uint32,V的数据格式为float32。
3、在显存中创建缓冲区Buffer_1,并按照Struct_A的格式将Excel表格中的数据逐行写入缓冲区中。
4、在显存中创建缓冲区Buffer_2,其体积为Buffer_1的1/2。
5、创建一个计算着色器程序用于计算背景值。
6、载入编译该计算着色器程序,并将Buffer_1和Buffer_2绑定至该程序,然后执行该着色器程序,线程数为Buffer_2中的采样点个数。
7、执行完成后,将Buffer_1丢弃,并将Buffer_2重新绑定至Buffer_1,创建新的Buffer_2并绑定至计算着色器原有的Buffer_2的位置,重新执行程序。
8、重复步骤7,直到Buffer_2中只有一个采样点。针对每个元素,v_mean=target.V/target.C即为背景值。
9、重复步骤3和步骤4。
10、创建一个计算着色器程序用于计算标准差。
11、载入编译该计算着色器程序,并将Buffer_1和Buffer_2绑定至该程序,然后执行该计算着色器程序,线程数为Buffer_2中的采样点个数。
12、执行完成后,将Buffer_1丢弃,并将Buffer_2重新绑定至Buffer_1,创建新的Buffer_2并绑定至计算着色器原有的Buffer_2的位置,重新执行程序。
13、重复步骤7,直到Buffer_2中只有一个采样点。针对每个元素,v_sd=sqrt(target.V/target.C)即为标准差。
14、针对每个元素,背景值即为v_mean,异常下限即为pt=v_mean+3*v_sd。
15、使用Excel中的数据创建VBO(Vertex Buffer Object顶点缓冲对象)。
16、创建一个片元着色器程序。
17、载入编译该片元着色器程序,并将包含化探数据的VBO绑定。使用该片元着色器进行渲染。
18、完成异常圈定。
本申请还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储计算机程序,该计算机程序被处理器执行时实现方法实施例的基于GPU的地球化学数据一体化处理方法。
本发明是专门针对传统的化探数据处理方法“迭代法”在计算着色器上的研究成果。在化探数据处理中,通过迭代法将样品化探数据进行求平均值、求标准差、筛选等步骤,得到区域的地球化学背景值及异常下限,用于分辨哪些样品为“异常值”,以帮助圈定找矿潜力区域。本发明基于迭代法的核心思路,过程也分为求平均值、求标准差、筛选等步骤。但本发明在传统计算方法的基础上,进行了并行处理适配,使其能在GPU上得到与CPU相同的结果,并提高处理速度。
综上所述,本发明使化探数据处理和异常圈定的效率都得到了极大的提升,使用户可以近乎实时地对化探数据处理。经过对比实验,处理16种元素的共计5万条化探数据,采用传统的化探数据处理软件,熟练用户需要花费5分钟时间,另外调整参数重新处理也需要约1分钟。而使用基于本发明的处理软件,非熟练用户仅需要10秒钟即可完成异常圈定,而调整参数重新处理也仅需要1秒钟。相对于现有技术,本发明的用户满意度有了质的提升。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (9)
1.一种基于GPU的地球化学数据一体化处理方法,其特征在于:包括如下步骤:
S1、将化探数据按照预设的三维数组数据结构Struct_A的格式进行存储,该三维数组数据结构Struct_A的第一维度表示采样点,第二维度表示化学元素,第三维度用于采样点计数和存储化学元素值;
S2、在图形处理单元GPU中使用计算着色器对格式化后的化探数据进行迭代处理,具体对相邻采样点进行两两并行迭代相加处理,直至计算出所有采样点的各个化学元素含量的迭代之和,据此计算每个化学元素含量的均值和标准偏差,并计算化学元素的阈值,剔除低于该阈值的采样点,重复进行,直到无采样点可剔除,得到最终的均值作为背景值,以及最终的阈值作为异常下限值;
S3、根据剔除采样点后的新的化探数据集构建空间坐标,将其载入片元着色器进行渲染并根据背景值和异常下限值完成异常圈定;
步骤S3的具体过程如下:
S31、通过剔除采样点后的新的化探数据集创建顶点缓冲对象VBO,其中空间坐标作为顶点坐标,各化学元素值作为顶点属性;
S32、对新的化探数据集进行三角化,创建三角形绘制的顶点序号列表,并在此过程中对数据进行插值,得到平滑的待圈定的异常图;
S33、根据背景值和异常下限值,在片元着色器中对待圈定的异常图进行着色,当顶点属性值大于背景值或者异常下限值时,将该顶点的像素设置为异常颜色,否则设置为非异常颜色,完成异常圈定。
2.根据权利要求1所述的基于GPU的地球化学数据一体化处理方法,其特征在于:步骤S2的具体过程如下:
S21、创建可被计算着色器访问的第一缓冲区和第二缓冲区,将初始的化探数据集CSet1按照Struct_A的格式写入第一缓冲区,将相邻采样点两两并行进行采样点计数值C和化学元素值V的向量求和,并存到第二缓冲区,将第二缓冲区中的数据再进行相邻两两求和存入第一缓冲区,反复进行,直至计算出所有采样点中所有化学元素的C和V的向量和,通过两者的比值计算每个化学元素的平均值PM;
S22、创建可被计算着色器访问的第三缓冲区和第四缓冲区,将初始的化探数据集CSet1写入第三缓冲区,并行计算相邻采样点中每个化学元素的V值与相应化学元素平均值PM的差方之和,以及C的向量和,存到第四缓冲区,再将第四缓冲区的向量采样点再进行相邻两两并行求和计算存入第三缓冲区,反复进行,直至计算出所有采样点V的差方之和以及C的向量和,并据此计算每个化学元素的元素标准差PSd;根据PM和PSd计算阈值,根据该阈值筛选初始的化探数据集CSet1,得到筛选后的化探数据集CSet2;
S23、对筛选后的化探数据集CSet2再按照相同的方法进行筛选,直到没有采样点被剔除,此时得到最终的各个化学元素的平均值PMN作为背景值,以及最终的各个化学元素的阈值PtN作为异常下限值。
3.根据权利要求2所述的基于GPU的地球化学数据一体化处理方法,其特征在于:其中,初始的化探数据集CSet1中所有化学元素的C值都初始化为1;第二缓冲区和第四缓冲区中所有化学元素的C值和V值都初始化为0。
4.根据权利要求2所述的基于GPU的地球化学数据一体化处理方法,其特征在于:第一缓冲区的内存偏移量是第二缓冲区的内存偏移量的2倍。
5.根据权利要求2所述的基于GPU的地球化学数据一体化处理方法,其特征在于:第三缓冲区的内存偏移量是第四缓冲区的内存偏移量的2倍。
6.根据权利要求2所述的基于GPU的地球化学数据一体化处理方法,其特征在于:如果相邻采样点中的某个化学元素的V值为0,则将该化学元素的C值也设置为0。
7.根据权利要求1所述的基于GPU的地球化学数据一体化处理方法,其特征在于:若待圈定的异常图为多化学元素异常图,则根据实际情况选择多种颜色混合方式。
8.一种基于GPU的地球化学数据一体化处理装置,其特征在于,该装置包括:
三维数组模块,用于将化探数据按照预设的三维数组数据结构Struct_A的格式进行存储,该三维数组数据结构Struct_A的第一维度表示采样点,第二维度表示化学元素,第三维度用于采样点计数和存储化学元素值;
背景值计算模块,用于在图形处理单元GPU中使用计算着色器对格式化后的化探数据进行迭代处理,具体对相邻采样点进行两两并行迭代相加处理,直至计算出所有采样点的各个化学元素含量的迭代之和,据此计算每个化学元素含量的均值和标准偏差,并计算化学元素的阈值,剔除低于该阈值的采样点,重复进行,直到无采样点可剔除,得到最终的均值作为背景值,以及最终的阈值作为异常下限值;
异常圈定模块,用于根据剔除采样点后的新的化探数据集构建空间坐标,将其载入片元着色器进行渲染并根据背景值和异常下限值完成异常圈定;该异常圈定模块具体用于通过剔除采样点后的新的化探数据集创建顶点缓冲对象VBO,其中空间坐标作为顶点坐标,各化学元素值作为顶点属性;对新的化探数据集进行三角化,创建三角形绘制的顶点序号列表,并在此过程中对数据进行插值,得到平滑的待圈定的异常图;根据背景值和异常下限值,在片元着色器中对待圈定的异常图进行着色,当顶点属性值大于背景值或者异常下限值时,将该顶点的像素设置为异常颜色,否则设置为非异常颜色,完成异常圈定。
9.一种计算机存储介质,其特征在于:其内存储有可被处理器执行的计算机程序,该计算机程序执行权利要求1-7中任一项所述的基于GPU的地球化学数据一体化处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310239808.4A CN116342370B (zh) | 2023-03-08 | 2023-03-08 | 一种基于gpu的地球化学数据一体化处理方法及系统 |
US18/596,686 US20240303901A1 (en) | 2023-03-08 | 2024-03-06 | Gpu-based integrated processing method and system for geochemical data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310239808.4A CN116342370B (zh) | 2023-03-08 | 2023-03-08 | 一种基于gpu的地球化学数据一体化处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116342370A CN116342370A (zh) | 2023-06-27 |
CN116342370B true CN116342370B (zh) | 2023-10-31 |
Family
ID=86881651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310239808.4A Active CN116342370B (zh) | 2023-03-08 | 2023-03-08 | 一种基于gpu的地球化学数据一体化处理方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240303901A1 (zh) |
CN (1) | CN116342370B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345566A (zh) * | 2013-02-26 | 2013-10-09 | 郑有业 | 基于地质内涵的化探异常识别与评价方法 |
CN113227997A (zh) * | 2018-10-23 | 2021-08-06 | 辉达公司 | 使用多个gpu对散列表有效且可扩展地构建和探测 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008142495A1 (en) * | 2007-05-17 | 2008-11-27 | Spectraseis Ag | Seismic attributes for reservoir localization |
US11340345B2 (en) * | 2015-07-17 | 2022-05-24 | Origin Wireless, Inc. | Method, apparatus, and system for wireless object tracking |
US10332308B2 (en) * | 2014-12-08 | 2019-06-25 | Intel Corporation | Graphic rendering quality improvements through automated data type precision control |
-
2023
- 2023-03-08 CN CN202310239808.4A patent/CN116342370B/zh active Active
-
2024
- 2024-03-06 US US18/596,686 patent/US20240303901A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345566A (zh) * | 2013-02-26 | 2013-10-09 | 郑有业 | 基于地质内涵的化探异常识别与评价方法 |
CN113227997A (zh) * | 2018-10-23 | 2021-08-06 | 辉达公司 | 使用多个gpu对散列表有效且可扩展地构建和探测 |
Non-Patent Citations (3)
Title |
---|
Petrogenesis and tectonic setting of Early Cretaceous magmatism in the Jiwa area, central Lhasa Terrane, Tibet;Youye Zheng等;《International Geology Review》;全文 * |
基于CUDA技术的矿产储量计算;章浩;庞振山;姚长利;张明华;;地质通报(第Z1期);全文 * |
多属性海量地质勘探数据的可视化技术研究;罗章彪;《中国优秀硕士论文全文数据库》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116342370A (zh) | 2023-06-27 |
US20240303901A1 (en) | 2024-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Owens et al. | A survey of general‐purpose computation on graphics hardware | |
Harris | Mapping computational concepts to GPUs | |
EP1081655B1 (en) | System and method for rendering using ray tracing | |
US7548892B2 (en) | Processing machine learning techniques using a graphics processing unit | |
US9047674B2 (en) | Structured grids and graph traversal for image processing | |
Gautier et al. | Fpga architectures for real-time dense slam | |
CN1997964A (zh) | 顶点和片段程序的优化链接 | |
Zhang et al. | Real-time volume rendering in dynamic lighting environments using precomputed photon mapping | |
Ross et al. | Visualization and parallel I/O at extreme scale | |
CN110811667B (zh) | 一种基于gpu加速的高精度pet重建方法及装置 | |
Mohan et al. | Studying the potential of Graphcore IPUs for applications in particle physics | |
WO2021114306A1 (zh) | 一种基于gpu加速的高精度pet重建方法及装置 | |
US7724254B1 (en) | ISO-surface tesselation of a volumetric description | |
Ben Boudaoud et al. | Implementation and comparison of binary thinning algorithms on GPU | |
CN116342370B (zh) | 一种基于gpu的地球化学数据一体化处理方法及系统 | |
Liu et al. | Parallel Marching Blocks: A Practical Isosurfacing Algorithm for Large Data on Many‐Core Architectures | |
Harris et al. | Iterative Solutions using Programmable Graphics Processing Units. | |
Lamas-Rodriguez et al. | GPU-accelerated level-set segmentation | |
Schenke et al. | GPU-based volume segmentation | |
CN101127124A (zh) | 在显示用图形对象绘制期间变换对象顶点的方法及设备 | |
Hjelmervik et al. | GPU-accelerated shape simplification for mechanical-based applications | |
Dokken et al. | An introduction to general-purpose computing on programmable graphics hardware | |
Li | Differentiable Visual Computing: Challenges and Opportunities | |
Kuijper et al. | 3d anisotropic diffusion on gpus by closed-form local tensor computations | |
Hangün | Performance evaluation of a parallel image enhancement technique for dark images on multithreaded cpu and gpu architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |