基于GPU的高速打印方法、装置、设备及存储介质与流程

未命名 09-22 阅读:128 评论:0

基于gpu的高速打印方法、装置、设备及存储介质
技术领域
1.本发明涉及喷墨打印技术领域,尤其涉及一种基于gpu的高速打印方法、装置、设备及存储介质。


背景技术:

2.随着喷印技术发展,打印设备所使用的喷头越来越多,单位时间内需要处理数据量越来越来大,现有的打印设备中多使用单台计算机(主机)进行数据处理,但是随着数据量的增大,单主机算力难以负担。提高算力的一种方法是使用分布式系统,让多台主机协同运算来提升算力,但是主机之间的传输带宽往往不会太高,因此传输的带宽往往成为算力提升的瓶颈。
3.随着gpu算力的不断提升,gpu在通用计算领域使用地越来越多,异构计算被广泛用于科学计算、高性能图像处理等多种场合。gpu和cpu之间的数据传输使用高性能的pci-e 3.0、pci-e 4.0,甚至随着技术的发展将使用更高性能的传输方式,其速度远超多主机之间的数据传输。而且一块gpu的成本要比一台计算机的成本低很多,此外,同等成本的gpu在并行计算方面的性能要超出cpu 8倍以上。如何使用gpu完成超大打印数据的处理从而支持多喷头的高速打印在目前的打印技术领域显得尤为重要。


技术实现要素:

4.有鉴于此,本发明实施例提供了基于gpu的高速打印方法、装置、设备及存储介质,用以解决现有技术中在多喷头高速打印应用中cpu算力不足导致打印效率低下的问题。
5.第一方面,本发明实施例提供了一种基于gpu的高速打印方法,在打印设备的主机中集成n个gpu,所述方法包括:
6.将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据;
7.将每个gpu对应的第一数据进一步拆分为k份第二数据;
8.启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据;
9.将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印;
10.其中,n、k为大于等于1的自然数。
11.优选地,所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:
12.启动cpu将所述待处理数据划分为n份所述第一数据;
13.启动n个cpu线程,分别将n份所述第一数据发送至对应的gpu;
14.响应于数据接收指令,gpu接收所述第一数据并存储于其ddr中。
15.优选地,在所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据之前还包括:
16.获取待处理数据的数据量;
17.根据所述数据量确定拆分份数p,其中p为小于等于n的自然数;
18.所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:
19.所述将待处理数据拆分为p份第一数据,分别传输至p个gpu中,每一个gpu对应一份所述第一数据。
20.优选地,当向所述主机输入m个打印任务,m为大于等于2的自然数,每个打印任务对应一待处理数据,在所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据之前还包括:
21.按m个所述打印任务的优先级将其对应的m个待处理数据分为若干份待处理数据包并标记所述若干份待处理数据包的优先级,记为第一优先级;
22.所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:
23.根据所述第一优先级依次将若干所述待处理数据包拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据。
24.优选地,所述方法还包括:
25.当接收到优先级比当前打印任务高的第一打印任务时,获取所述第一打印任务的待处理数据;
26.当当前空闲的gpu数量为k时,根据当前空闲的gpu数量确定所述第一打印任务的待处理数据的拆分份数k,其中k为大于等于1的自然数;
27.启动cpu将所述第一打印任务的待处理数据拆分为k份第四数据;
28.启动k个cpu线程,分别将k份所述第四数据发送至对应的gpu;
29.当前空闲的gpu数量为0时,将所述第一打印任务的待处理数据拆分为n份,并将所述n个cpu线程优先用于将所述第四数据发送至对应的gpu。
30.优选地,所述启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据包括:
31.根据gpu的核心数m启动k个线程,其中,k大于等于m,m为大于等于1的自然数;
32.控制k个线程分别从相应的ddr中读取所述第二数据;
33.对所述第二数据进行数据处理得到所述第三数据。
34.优选地,所述方法还包括:
35.将第五数据传输至指定gpu的缓存中;
36.所述对第二数据进行数据处理得到所述第三数据包括:利用所述第五数据进行所述第二数据的数据处理得到所述第三数据。
37.优选地,所述第五数据为数据查找表、数据索引、数据拆分表、羽化模板中的任一种、两种或多种。
38.优选地,所述数据处理包括加网处理、羽化处理、镜像处理、拆分处理、抽点处理中的任一种、两种或多种。
39.优选地,在启动n个cpu线程,分别将n份所述第一数据发送至对应的gpu之后,所述方法还包括:
40.利用n个所述cpu线程完成指定任务。
41.第二方面,本发明实施例提供了一种基于gpu的高速打印装置,所述装置包括:
42.第一拆分模块,用于将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据;
43.第二拆分模块,用于将每个gpu对应的第一数据进一步拆分为k份第二数据;
44.数据处理模块,用于启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据;
45.回传模块,用于将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印;
46.其中,n、k为大于等于1的自然数。
47.第三方面,本发明实施例提供了一种打印设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
48.第四方面,本发明实施例提供了一种存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
49.综上所述,本发明的有益效果如下:
50.本发明实施例提供的基于gpu的高速打印方法、装置、设备及存储介质,通过在打印设备的主机中集成n个gpu,并将待处理数据划分为n份第一数据,分别传输至n个gpu中,每个gpu进一步将第一数据划分为k份第二数据,然后启动gpu的k个线程对k份所述第二数据进行数据处理得到第三数据;然后将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印。本发明通过借助gpu算力完成超大数据量处理,提升数据处理效率、提升打印速度和打印效率,可支持多喷头的高速打印。
附图说明
51.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。
52.图1为本发明实施例一中的基于gpu的高速打印方法的流程示意图。
53.图2为本发明实施例一种的打印设备的示意图。
54.图3为图1中步骤s1的具体流程示意图。
55.图4为图1中步骤s3的具体流程示意图。
56.图5为本发明实施例二的基于gpu的高速打印装置的结构示意图。
57.图6是本发明实施例三的打印设备的结构示意图。
具体实施方式
58.下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
59.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
60.实施例一
61.本发明实施例提供了一种基于gpu的高速打印方法,该方法适用于多喷头高速打印设备。在多喷头高速打印设备中,往往驱动数十个喷头同时工作,因此需要处理的数据量非常大,如果单纯依赖与打印设备中的主机的cpu(pc机,也称上位机)去完成数据处理工作,那么主机cpu将不堪重负,从而导致打印速度下降,影响打印效率。随着gpu算力的不断提升(gpu在并行计算方面的性能要超出cpu 8倍以上),可借助gpu算力完成超大数据处理从而支持多喷头的高速打印,从而提升数据处理效率、提升打印速度和打印效率。
62.请参见图1,所述基于gpu的高速打印方法具体包括以下步骤:
63.s1:将待处理数据划分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据;
64.s2:将每个gpu对应的第一数据进一步划分为k份第二数据;
65.s3:启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据;
66.s4:将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印。
67.其中,n、k为大于等于1的自然数。
68.如图2所示,打印设备包括了主机(上位机)和下位机,主机(pc机)主要用于进行数据处理,如将待打印图像进行rip处理,生成图像点阵数据(打印数据),对图像点阵数据按喷头或者通道进行拆分、羽化、镜像、抽点等数据处理。下位机包括了主控制板(主板)、喷车板和喷头驱动板,一个主控制板可驱动若干个喷车板,而一个喷车板可控制多个喷头驱动板,喷头驱动板连接喷头,打印主板将接收到的打印数据分发到相应驱动板中,控制喷头出墨打印图像。在本实施例中,在打印设备的主机中集成若干个gpu,gpu于主机cpu之间通过pci-e 3.0或pci-e 4.0标准实现数据传输和通信。
69.优选地,请参见图3,所述将待处理数据划分为n份第一数据,分别传输至n个gpu中包括:
70.s11:启动cpu将所述待处理数据划分为n份所述第一数据;
71.s12:启动n个cpu线程,分别将n份所述第一数据发送至对应的gpu;
72.s13:响应于数据接收指令,gpu接收所述第一数据并存储于其ddr中。
73.具体的,首先启动主机中的cpu将待处理数据根据gpu的个数划分为若干份,集成gpu的个数可以根据实际应用情况以及cpu性能而定,在此不做限制。设集成了n个gpu(n为大于等于1的自然数),相应的,将待处理数据分为n份。这里的待处理数据可以是没有经过加网处理的图像(像素)数据,也可以是经过加网处理后的图像点阵数据。cpu将待处理数据划分为n份后(记划分后的每一份数据为第一数据),开启n个线程,每个线程将一份第一数据通过pci-e 3.0或pci-e 4.0接口传输到一个gpu中,响应于数据接收指令,每个cpu线程
对应的gpu开始接收从cpu传输过来的数据,并将第一数据存储在gpu的大容量ddr中。
74.gpu接收到第一数据后会进一步第一数据进行进一步的拆分,拆分的数量可以接近或等于或大于其gpu的核心数(一块gpu的核心数往往数以千计或者更高),设gpu将第一数据拆分为了k个第二数据(k为大于等于1的自然数)后,将启动k个线程来处理k份第二数据,每一个线程对应一份第二数据的处理。
75.在一些实施例中,在所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据之前还包括:
76.获取待处理数据的数据量;
77.根据所述数据量确定拆分份数p,其中p为小于等于n的自然数;
78.所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:
79.所述将待处理数据拆分为p份第一数据,分别传输至p个gpu中,每一个gpu对应一份所述第一数据。
80.在对待处理数据根据gpu的数量进行拆分之前,还可以根据待处理数据的具体数据量的大小确定拆分的份数p,p为小于等于n的自然数,从而相应的只需使用p个gpu进行数据处理,达到节省算力和能耗的问题。示例性的,若一些打印任务对应的待处理数据的数据量比较小,可能一两个gpu就能在非常短时间内完成对该待处理数据的处理,无需调用所有的gpu进行待处理数据的处理,此时,可以根据待处理数据的数据量大小,进一步的,还可以根据每个gpu的核心数一起确定需要拆分的个数p,从而满足待处理数据能快速处理完成的同时节省算力和能耗。
81.在一些实施例中,当向所述主机输入s个打印任务,m为大于等于2的自然数,每个打印任务对应一待处理数据,在所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据之前还包括:
82.按m个所述打印任务的优先级将其对应的s个待处理数据分为若干份待处理数据包并标记所述若干份待处理数据包的优先级,记为第一优先级;
83.所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:
84.根据所述第一优先级依次将若干所述待处理数据包拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据。
85.在实际打印中,有可能给打印机同时输入多个打印任务,每个打印任务对应一份待处理数据,每个打印任务有相应的优先级,在一些实施例中,可以按每个任务的优先级依次将各待处理数据拆分为n份并分别发送到n个gpu中处理,在另一些实施例中,还可以根据各打印任务的优先级以及各打印任务的待处理数据的数据量将这些多个打印任务的待处理数据分为若干个待处理数据包,一个待处理数据包中可以包括一个或多个打印任务的待处理数据,同时为每个待处理数据包设置相应的优先级,将待处理数据包设置的优先级记为第一优先级,根据第一优先级依次将若干个待处理数据包分别拆分为n份第一数据,并将传输到n个gpu中处理。示例性的,输入到打印机主机中打印任务有4个,分别记为打印任务1,2,3,4,其优先级分别为1,2,3,4。其中,打印任务1,2,3的待处理数据量都较小,而打印任务4的待处理数据量比较大。在一些实施例中,可以按打印任务1,2,3,4的优先级,先将打印
任务1的待处理数据分为n份,发送到n个gpu处理;当处理完成后,在将打印任务2的待处理数据分为n份,发送到n个gpu处理,直到处理完成此四个打印任务。在另一些实施例中,可以将打印任务1,2,3的待处理数据打包为一份待处理数据包1,将打印任务4的待处理数据作为另一个份待处理数据包2,由于打印任务1,2,3的优先级都比打印任务4的优先级高,那么可以先待处理数据包1分为n份并发送到n个gpu处理,处理完成后,再将打印任务4的待处理数据分为n份并发送到n个gpu处理,从而达到兼顾打印任务优先级处理顺序的同时提高数据处理速度。
86.在一些实施例中,主机将当前打印任务的待处理数据已经拆分为n份进行处理,此时,又接收到一个优先级比当前打印任务更高的打印任务(记为第一打印任务)时,主机将挂起当前cpu启动的n个线程,如果当前打印任务的数据没有开始传输,那么将第一打印任务的待处理数据拆分为n份第四数据,并优先的将n份第四数据分发到相应的gpu去处理后,才处理当前打印任务的待处理数据。而如果已经处理了部分当前打印任务的对应的拆分后的第一数据,但没有处理完,因为已经处理的数据将储存在gpu的ddr中,那么将没有处理的第一数据相应的存储在其他ddr存储空间中,而未传输的第一数据也相应的存储在cpu的存储空间中,并优选将n个cpu线程用于传输第一打印任务对应的n个第四数据,同样gpu也优选将第一打印任务的第四数据进行处理,处理完成后重新处理中断的当前任务的第一数据,从而确保优先级最高的打印任务优先得到处理。
87.优选地,请参见图4,所述启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据包括:
88.s31:根据gpu的核心数m启动k个线程,其中,k大于等于m,m为大于等于1的自然数;
89.s32:控制k个线程分别从相应的ddr中读取所述第二数据;
90.s33:对所述第二数据进行数据处理得到所述第三数据。
91.具体的,可以使用gpu线程进行的数据处理包括rip处理、羽化处理、镜像处理、拆分处理、抽点处理(从数据中抽取指定的数据)等等,gpu线程进行的数据处理取决于给gpu加载的函数。示例性的,如果需要gpu进行图像的加网处理,相应的,cpu把待打印图像(位图)的图像数据发送到gpu中,gpu线程调用加网处理函数对图像数据进行加网处理,生成图像点阵数据。进一步的,如果还需要gpu对加网处理后的图像点阵数据按喷头数进行拆分,然后对部分图像点阵数据进行羽化处理,相应,gpu启动线程对图像点阵数据进行拆分、羽化处理。
92.在一些实施例中,除了有数据量大的图像数据等外,还包括有一些数据查找表、数据索引、数据拆分表等数据量比较小的数据,这些数据在数据处理或运算过程中会经常使用到,此时,从cpu传输过来的这类数据量较小的数据可以存储在gpu的缓存中,而不是存在大容量的ddr中,因为gpu核心对其缓存的访问速度是访问ddr的10倍以上,将这些常用的少量数据存储在gpu的缓存中,利用这些查找表、数据索引、数据拆分表等对第二数据进行数据处理,可以进一步提高数据的处理速度。例如利用数据拆分表对第二数据进行数据拆分,可以很快得到每个喷头对应的打印数据。在另一个示例中,在进行了数据拆分后,可能需要对某些拆分后的数据进行羽化处理,需要第i个gpu中的第二数据进行羽化处理,此时,可以将羽化模板数据发送值第i个gpu的缓存中,利用缓存中的羽化模板数据对该gpu中的id第二数据进行羽化处理。
93.在一些实施例中,cpu启动n个线程将数据传输给gpu后,在等待gpu进行数据处理和运算的时候,cpu还可以去处理其他算力消耗不大的计算,如向打印主板发送打印参数、打印指令或者是其他的逻辑运算等不太耗性能和算力的任务。
94.为了更好的理解本实施例的基于gpu的高速打印方法,以下举例说明如何借助于gpu算力将待处理数据的处理。
95.示例性的,设在主机中安装了4个gpu,而每个gpu内部有1000个处理核心,主控制板驱动两块喷车板,每个喷车板有驱动10个喷头驱动板,每个喷头驱动板连接一个喷头进行喷墨打印。在实际打印中,首先需要将待打印图像经过rip软件进行加网处理等生成下位机能够识别的打印数据,rip处理后的数据以prn格式存储,需要将这些打印数据按照喷头数进行拆分处理,将拆分好的打印数据发送到主控制板中然后在分发到相应的喷头驱动板中驱动喷头进行喷墨打印。
96.在本示例中,待处理的数据为经过rip处理后的待进行拆分的打印数据。cpu将待处理数据按照gpu的个数拆分为4份数据(记为第一数据),相应的启动4个线程分别将这4份第一数据传输到gpu中,每个gpu都接收到一份第一数据,并将第一数据存储在ddr中,此外,用于表达如何进行数据拆分处理的数据拆分表也一同传给gpu,此数据拆分表不存储于gpu的ddr中,而是存储在gpu的缓冲中。
97.每个gpu接收到第一数据后,启动1000个以上的处理线程,每个处理线程根据各自的线程id对应到ddr中获取各自对应第一数据进行处理。设每块gpu需要处理的数据有10万行,每块gpu启动了2000个处理线程,此时每个处理线程需要处理50行数据,每个线程根据自己的线程id去处理相应的数据,示例性的,如线程0需要处理0~49行数据、线程1则是处理50~99行数据、线程3处理100~149行数据
……
gpu的每个线程将自己需要处理的数据从ddr中取出,按照喷头数进行拆分(例如线程0将0,2,4,8
……
行数据拆分给喷头0打印,将1,3,5,7
……
行数据拆分给喷头1打印),为了提升数据拆分速度,可使用数据拆分法,由于该表存放在gpu的芯片缓存中,访问非常快,由此可以极大提升数据拆分的速度。完成数据处理任务后之后,gpu的每个线程将处理完的数据存放在gpu中ddr的另一块地址(该地址初始时已指定,且不同与存储未处理数据的地址)中。此外,cpu的4个线程完成启动gpu任务后,不必等待gpu处理数据,而同时处理一些不耗性能的任务,比如向打印板发送一些参数、指令。cpu的各个线程在处理完自己的工作后,等待对应的gpu完成数据处理,当gpu完成数据处理后,会将处理好的已经拆分好的打印数据传输回cpu所使用的ddr中,最后当所有的数据处理完并传输回cpu使用的ddr后,cpu将这些拆分好的打印数据发送到主控制板中,主控制板相应的发送到每个喷车板和喷头驱动板进行喷墨打印。
98.综上所述,本发明实施例提供的基于gpu的高速打印方法,通过在打印设备的主机中集成n个gpu,并将待处理数据划分为n份第一数据,分别传输至n个gpu中,每个gpu进一步将第一数据划分为k份第二数据,然后启动gpu的k个线程对k份所述第二数据进行数据处理得到第三数据;然后将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印。本发明通过借助gpu算力完成超大数据量处理,提升数据处理效率、提升打印速度和打印效率,可支持多喷头的高速打印。
99.实施例二
100.请参阅图5,本发明实施例提供了一种基于gpu的高速打印装置200,所述装置应用
与打印设备,其中,打印设备的主机中集成n个gpu,所述装置200包括:
101.第一拆分模块201,用于将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据;
102.第二拆分模块202,用于将每个gpu对应的第一数据进一步拆分为k份第二数据;
103.数据处理模块203,用于启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据;
104.回传模块204,用于将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印;其中,n、k为大于等于1的自然数。
105.进一步的,所述第一拆分模块201包括:
106.第一拆分单元,用于启动cpu将所述待处理数据划分为n份所述第一数据;
107.cpu线程启动单元,用于启动n个cpu线程,分别将n份所述第一数据发送至对应的gpu;
108.接收单元,用于响应于数据接收指令,gpu接收所述第一数据并存储于其ddr中。
109.优选地,所述数据处理模块203包括:
110.gpu线程启动单元,用于根据gpu的核心数m启动k个线程,其中,k大于等于m,m为大于等于1的自然数;
111.读取单元,用于控制k个线程分别从相应的ddr中读取所述第二数据;
112.第一处理单元,用于对所述第二数据进行数据处理得到所述第三数据。
113.优选地,所述装置200还包括:
114.传输模块,用于将第五数据传输至指定gpu的缓存中;
115.所述数据处理模块203包括:第二处理单元,用于利用所述第五数据进行所述第二数据的数据处理得到所述第三数据。
116.优选地,在所述传输模块中,所述第五数据为数据查找表、数据索引、数据拆分表、羽化模板中的任一种、两种或多种。
117.优选地,在所述第一处理单元和/或所述第二处理单元中,数据处理包括加网处理、羽化处理、镜像处理、拆分处理、抽点处理中的任一种、两种或多种。
118.优选地,所述装置还包括:
119.并行任务模块,用于利用n个所述cpu线程完成指定任务。
120.综上所述,本发明实施例提供的基于gpu的高速打印装置,通过在打印设备的主机中集成n个gpu,并将待处理数据划分为n份第一数据,分别传输至n个gpu中,每个gpu进一步将第一数据划分为k份第二数据,然后启动gpu的k个线程对k份所述第二数据进行数据处理得到第三数据;然后将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印。本发明通过借助gpu算力完成超大数据量处理,提升数据处理效率、提升打印速度和打印效率,可支持多喷头的高速打印。
121.实施例三
122.另外,本发明实施例的基于gpu的高速打印方法可以由打印设备来实现。图6示出了本发明实施例提供的打印设备中主机的硬件结构示意图。
123.打印设备可以包括处理器301以及存储有计算机程序指令的存储器302以及图像处理器304。
124.具体地,上述处理器301可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。上述处理器301还可以包括若干个gpu。
125.存储器302可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器302可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器302可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器302可在数据处理装置的内部或外部。在特定实施例中,存储器302是非易失性固态存储器。在特定实施例中,存储器302包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
126.处理器301通过读取并执行存储器302中存储的计算机程序指令,以实现上述实施例中的任意一种基于gpu的高速打印方法。
127.在一个示例中,打印设备还可包括通信接口303和总线310。其中,如图6所示,处理器301、存储器302、通信接口303通过总线310连接并完成相互间的通信。
128.通信接口303,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
129.总线310包括硬件、软件或两者,将打印设备的部件彼此耦接在一起。举例来说而非限制,总线310可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线310可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
130.实施例四
131.另外,结合上述实施例中的基于gpu的高速打印方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器301执行时实现上述实施例中的任意一种基于gpu的高速打印方法。
132.综上所述,本发明实施例提供的基于gpu的高速打印方法、装置、设备及存储介质,通过在打印设备的主机中集成n个gpu,并将待处理数据划分为n份第一数据,分别传输至n个gpu中,每个gpu进一步将第一数据划分为k份第二数据,然后启动gpu的k个线程对k份所述第二数据进行数据处理得到第三数据;然后将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印。本发明通过借助gpu算力完成超大数据量处理,提升数据处理效率、提升打印速度和打印效率,可支持多喷头的高速打印。
133.需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
134.以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
135.还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
136.以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

技术特征:
1.一种基于gpu的高速打印方法,其特征在于,在打印设备的主机中集成n个gpu,所述方法包括:将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据;将每个gpu对应的第一数据进一步拆分为k份第二数据;启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据;将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印;其中,n、k为大于等于1的自然数。2.根据权利要求1所述的基于gpu的高速打印方法,其特征在于,所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:启动cpu将所述待处理数据拆分为n份所述第一数据;启动n个cpu线程,分别将n份所述第一数据发送至对应的gpu;响应于数据接收指令,gpu接收所述第一数据并存储于其ddr中。3.根据权利要求1所述的基于gpu的高速打印方法,其特征在于,在所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据之前还包括:获取待处理数据的数据量;根据所述数据量确定拆分份数p,其中p为小于等于n的自然数;所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:将所述待处理数据拆分为p份第一数据,分别传输至p个gpu中,每一个gpu对应一份所述第一数据。4.根据权利要求1所述的基于gpu的高速打印方法,其特征在于,当向所述主机输入s个打印任务,s为大于等于2的自然数,每个打印任务对应一待处理数据,在所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据之前还包括:按m个所述打印任务的优先级将其对应的s个待处理数据分为若干份待处理数据包并标记所述若干份待处理数据包的优先级,记为第一优先级;所述将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据包括:根据所述第一优先级依次将若干所述待处理数据包拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据。5.根据权利要求4所述的基于gpu的高速打印方法,其特征在于,所述方法还包括:当接收到优先级比当前打印任务高的第一打印任务时,获取所述第一打印任务的待处理数据;将所述第一打印任务的待处理数据拆分为n份第四数据,并将所述n个cpu线程优先用于将所述第四数据发送至对应的gpu。6.根据权利要求1所述的基于gpu的高速打印方法,其特征在于,所述启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据包括:根据gpu的核心数m启动k个线程,其中,k大于等于m,m为大于等于1的自然数;控制k个线程分别从相应的ddr中读取所述第二数据;对所述第二数据进行数据处理得到所述第三数据。
7.根据权利要求6所述的基于gpu的高速打印方法,其特征在于,所述方法还包括:将第五数据传输至指定gpu的缓存中;所述对所述第二数据进行数据处理得到所述第三数据包括:利用所述第五数据进行所述第二数据的数据处理得到所述第三数据。8.根据权利要求2所述的基于gpu的高速打印方法,其特征在于,在启动n个cpu线程,分别将n份所述第一数据发送至对应的gpu之后,所述方法还包括:利用n个所述cpu线程完成指定任务。9.一种基于gpu的高速打印装置,所述装置应用于打印设备,其特征在于,在所述打印设备的主机中集成n个gpu,所述装置包括:第一拆分模块,用于将待处理数据拆分为n份第一数据,分别传输至n个gpu中,每一个gpu对应一份所述第一数据;第二拆分模块,用于将每个gpu对应的第一数据进一步拆分为k份第二数据;数据处理模块,用于启动gpu中的k个线程对k份所述第二数据进行数据处理得到第三数据;回传模块,用于将所述第三数据传输至cpu中并分发到所述打印设备的下位机进行打印;其中,n、k为大于等于1的自然数。10.一种打印设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-8中任一项所述的方法。

技术总结
本发明公开了一种基于GPU的高速打印方法、装置、设备及存储介质,涉及喷墨打印技术领域。所述方法通过在打印设备的主机中集成N个GPU,并将待处理数据划分为N份第一数据,分别传输至N个GPU中,每个GPU进一步将第一数据划分为K份第二数据,然后启动GPU的K个线程对K份所述第二数据进行数据处理得到第三数据;然后将所述第三数据传输至CPU中并分发到所述打印设备的下位机进行打印。本发明通过借助GPU算力完成超大数据量处理,提升数据处理效率、提升打印速度和打印效率,可支持多喷头的高速打印。印。印。


技术研发人员:刘衍科 冯凌伟 陈艳 黄中琨
受保护的技术使用者:深圳市汉森软件有限公司
技术研发日:2022.03.07
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐