数据传输方法及装置制造方法及图纸

技术编号:20545495 阅读:30 留言:0更新日期:2019-03-09 18:26
本发明专利技术提供了一种数据传输方法及装置,该方法包括:在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构,建立多个线程,以及获取待处理数据所对应的应用层数据并保存至所述并发数据结构;利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,以将所述待处理数据所对应的应用层数据转换成所述待处理数据所对应的硬件层数据;将所述待处理数据所对应的硬件层数据发送至协处理器进行处理。通过上述方案能够提高主机端系统的响应速度,从而提高主机端和协处理器端之间的数据传输效率。

Data transmission method and device

The invention provides a data transmission method and device. The method includes: establishing concurrent data structure in memory for storing application layer data, compiling related data and hardware layer data, establishing multiple threads, acquiring application layer data corresponding to data to be processed and storing it to the concurrent data structure, accessing the concurrent data concurrently by using the multiple threads. Structure, and perform operations according to the set function division of labor to convert the application layer data corresponding to the data to be processed into the hardware layer data corresponding to the data to be processed, and send the hardware layer data corresponding to the data to be processed to the coprocessor for processing. Through the above scheme, the response speed of the host system can be improved, and the data transmission efficiency between the host and the coprocessor can be improved.

【技术实现步骤摘要】
数据传输方法及装置
本专利技术涉及计算机
,尤其涉及一种数据传输方法及装置。
技术介绍
随着摩尔定律的终结,专用芯片作为协处理器迎来了“黄金”时代。专用芯片基本上都是采用类似于单指令多数据流(SIMD)的设计架构处理数据,例如,一些图形处理器(GPU)、张量处理器(TPU)等。这些专用芯片在处理数据时,数据搬运是影响其性能的关键,包括从主机端搬运到协处理器端,以及从协处理器端读取结果数据。为了提高数据传输效率,各界提出了多种优化方法,例如,采用新型的存储器GDDR5X将GPU的带宽提高到12Gbps,通过数据压缩减少数据传输时间等。通过这些技术,用户在调用协处理器加速应用时的等待时间减少了,系统的流畅度提升了。同时,用户对传输效率的要求也不断提高。因此,主机端和协处理器端之间的数据传输效率仍需进一步提高。
技术实现思路
有鉴于此,本专利技术提供了一种数据传输方法及装置,以提高主机端系统的响应速度,从而进一步提高主机端和协处理器端之间的数据传输效率。为了实现上述目的,本专利技术采用以下方案:在本专利技术一个实施例中,数据传输方法,包括:在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构,建立多个线程,以及获取待处理数据所对应的应用层数据并保存至所述并发数据结构;利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,以将所述待处理数据所对应的应用层数据转换成所述待处理数据所对应的硬件层数据;将所述待处理数据所对应的硬件层数据发送至协处理器进行处理。在本专利技术一个实施例中,数据传输装置,包括:构建单元,用于在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构,建立多个线程,以及获取待处理数据所对应的应用层数据并保存至所述并发数据结构;处理单元,用于利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,以将所述待处理数据所对应的应用层数据转换成所述待处理数据所对应的硬件层数据;发送单元,用于将所述待处理数据所对应的硬件层数据发送至协处理器进行处理。在本专利技术一个实施例中,计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例所述方法的步骤。在本专利技术一个实施例中,计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所述方法的步骤。本专利技术的数据传输方法、数据传输装置、计算机设备及计算机可读存储介质,通过在内存中建立并发数据结构,建立多个线程,利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,将待处理数据由应用层数据转换成相应的硬件层数据,能够实现主机端在对协处理器进行数据响应时不同操作的并发执行,减少主机端系统的响应时间和计算资源的最大化利用,从而提高主机端和协处理器端之间的数据传输效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是本专利技术一实施例的数据传输方法的流程示意图;图2是本专利技术一实施例中在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构的方法流程示意图;图3是本专利技术一实施例中利用多个线程并发访问并发数据结构并按设定功能分工执行操作生成硬件层数据的方法流程示意图;图4是本专利技术另一实施例中利用多个线程并发访问并发数据结构并按设定功能分工执行操作生成硬件层数据的方法流程示意图;图5是本专利技术另一实施例的数据传输方法的流程示意图;图6是本专利技术一实施例中数据结构的示意图;图7是本专利技术一实施例中多线程的示意图;图8是本专利技术一实施例的主机端的系统运行流程示意图;图9是本专利技术一实施例的数据传输的交互示意图;图10是本专利技术一实施例的数据传输装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。图1是本专利技术一实施例的数据传输方法的流程示意图。如图1所示,一些实施例的数据传输方法,可包括:步骤S110:在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构,建立多个线程,以及获取待处理数据所对应的应用层数据并保存至所述并发数据结构;步骤S120:利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,以将所述待处理数据所对应的应用层数据转换成所述待处理数据所对应的硬件层数据;步骤S130:将所述待处理数据所对应的硬件层数据发送至协处理器进行处理。上述步骤S110~步骤S130可以由主机端执行。该主机端可以是各种通用处理器,例如,个人计算机、平板电脑、手机、服务器等。上述协处理器可以是各种能够协助主机端完成某种或某些处理任务以提高处理速度的处理器、加速器,例如,各种专用芯片,更具体地,例如,时间序列专用加速器或芯片。该主机端与该协处理器连接,能够将待处理数据传输给协处理器进行处理,并获取相应的处理结果。在上述步骤S110中,该并发数据结构可以用于保存相关的数据并能够提供并发访问,可以是基于锁的或者不基于锁的并发数据结构,可以被多个线程并发访问。其中的应用层数据可以包括协处理器处理前后的数据所对应的应用层数据;编译相关数据可以包括协处理器处理前的数据所对应的应用层数据经过编译器编译的数据,还可包括协处理器处理前的数据所对应的应用层数据中待编译器编译的数据;硬件层数据可以包括协处理器处理前后的数据所对应的硬件层数据。保存应用层数据、编译相关数据及硬件层数据可以保存在一个或多个数据表中。在内存中建立并发数据结构,可以便于上述多个线程的快速、并发访问,提高数据读写速度。该待处理数据可以是从硬盘读取得到,或者实时接收得到。硬盘或实时接收的数据可以包含很多属性(例如,名称、标识号、数据大小、地址等)的信息,可以从中选取或新增所需的属性的信息构成该待处理数据所对应的应用层数据。该待处理数据可以以数据流、数据段等形式获取至线程,该数据段可以是由主机端进行分段得到。该待处理数据可以是各种类型、种类或领域的数据,例如,时间序列数据。该待处理数据是指待协处理器处理的数据。在上述步骤S120中,该设定功能分工,例如,可以是将并发数据结构初始化、与编译器进行交互、内存释放、数据编译、与协处理器进行交互、数据的内存地址映射等操作,该些操作可以根据实际情况分配给上述多个线程执行。具体分配方式可根据线程配合简便程度、线程处理流程等确定。不同线程可以同时执行相同或不同的操作,各线程在执行其各自的操作时可以同时访问上述并发数据结构,以读取其所需的数据,或写入其处理后的数据。各线程的操作可以按设定流程执行,例如,实现获取待处理数据所对应的应用层数据,生成所述待处理数据所对应的编译相关数据,并最终生成所述待处理数据所对应的硬件层数据,该硬件层数据能够直接被协处理器处理。在上述步骤S130中,主机端可以由多线程分工操作快速、不断地准备好不同的待处理数据所对应的硬件层数据,并依次发送至该本文档来自技高网...

【技术保护点】
1.一种数据传输方法,其特征在于,包括:在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构,建立多个线程,以及获取待处理数据所对应的应用层数据并保存至所述并发数据结构;利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,以将所述待处理数据所对应的应用层数据转换成所述待处理数据所对应的硬件层数据;将所述待处理数据所对应的硬件层数据发送至协处理器进行处理。

【技术特征摘要】
1.一种数据传输方法,其特征在于,包括:在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构,建立多个线程,以及获取待处理数据所对应的应用层数据并保存至所述并发数据结构;利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,以将所述待处理数据所对应的应用层数据转换成所述待处理数据所对应的硬件层数据;将所述待处理数据所对应的硬件层数据发送至协处理器进行处理。2.如权利要求1所述的数据传输方法,其特征在于,在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的并发数据结构,包括:利用C++的map数据结构在内存中建立用于保存应用层数据、编译相关数据及硬件层数据的至少一个数据表;根据所述至少一个数据表生成并发数据结构。3.如权利要求2所述的数据传输方法,其特征在于,根据所述至少一个数据表生成并发数据结构,包括:利用C++11的并发API根据所述至少一个数据表生成基于锁的并发数据结构。4.如权利要求2所述的数据传输方法,其特征在于,所述至少一个数据表包括:用于保存应用层数据的至少一个表、用于保存编译相关数据的至少一个表及用于保存硬件层数据的至少一个表。5.如权利要求1所述的数据传输方法,其特征在于,利用所述多个线程并发访问所述并发数据结构,并按设定功能分工执行操作,以将所述待处理数据所对应的应用层数据转换成所述待处理数据所对应的硬件层数据,包括:利用主线程调用编译器;利用第一子线程访问所述并发数据结构,获取所述待处理数据所对应的应用层数据,并利用调用的所述编译器对所述待处理数据所对应的应用层数据中的至少部分属性的数据进行编译,生成所述待处理数据所对应的编译结果数据并将其保存至所述并发数据结构;利用第二子线程访问所述并发数据结构,获取所述待处理数据所对应的编译结果数据,并根据所述待处理数据所对应的编译结果数据进行地址映射,生成所述待处理数据所对应的硬件层数据并将其保存至所述并发数据结构;所述多个线程包括所述主线程、所述第一子线程及所述第二子线程。6.如权利要求5所述的数据传输方法,其特征在于,利用第一子线程访问所述并发数据结构,获取所述待处理数据所对应的应用层数据,并利用调用的所述编译器对所述待处理数据所对应的应用层数据中的至少部分属性的数据进行编译,生成所述待处理数据所对应的编译结果数据并将其保存至所述并发数据结构,包括:利用第一子线程访问所述并发数据结构中用于保存所述待处理数据所对应的应用层数据的应用数据表,读取所述待处理数据所对应的应用层数据中的部分属性的...

【专利技术属性】
技术研发人员:龚施俊江树浩鄢贵海
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1