CN102521789A - 一种基于cuda的梯形填充方法 - Google Patents

一种基于cuda的梯形填充方法 Download PDF

Info

Publication number
CN102521789A
CN102521789A CN2011104320645A CN201110432064A CN102521789A CN 102521789 A CN102521789 A CN 102521789A CN 2011104320645 A CN2011104320645 A CN 2011104320645A CN 201110432064 A CN201110432064 A CN 201110432064A CN 102521789 A CN102521789 A CN 102521789A
Authority
CN
China
Prior art keywords
trapezoidal
cuda
method based
data
filling method
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.)
Granted
Application number
CN2011104320645A
Other languages
English (en)
Other versions
CN102521789B (zh
Inventor
赵美云
蒋兴华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongxia Xinji (Shanghai) Technology Co., Ltd.
Original Assignee
HEFEI ADVANTOOLS SEMICONDUCTOR CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46292694&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN102521789(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by HEFEI ADVANTOOLS SEMICONDUCTOR CO Ltd filed Critical HEFEI ADVANTOOLS SEMICONDUCTOR CO Ltd
Priority to CN201110432064.5A priority Critical patent/CN102521789B/zh
Publication of CN102521789A publication Critical patent/CN102521789A/zh
Application granted granted Critical
Publication of CN102521789B publication Critical patent/CN102521789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明公开了一种基于CUDA的梯形填充方法,涉及多线程并行开发、计算机图形学、数据结构开发、数字图像处理等领域,本发明采用CUDA多线程并行填充梯形方法,从而避免了利用GDI填充方法不能对大量图形数据有效处理,且由于CPU串行运行的限制而不能并行处理的问题,因而本发明能够有效地提升填充效率,满足大量图形数据处理的需求。

Description

一种基于CUDA的梯形填充方法
技术领域
    本发明涉及多线程并行开发、计算机图形学、数据结构开发、数字图像处理等领域,具体为一种利用CUDA通用并行计算架构,使GPU(图形处理器)能够解决复杂计算和大量数据处理问题的梯形填充方法。
背景技术
    光刻技术是在衬底表面上印刷具有特征的构图的技术,本发明所涉及的无掩膜光刻技术使用数字微镜系统生成图像,通过光学投影元件,图像以一定的倍率投影到光敏感的衬底上,产生特征的构图。
    在光刻过程中,需要进行大量的、快速的数据处理与发送,而将GDSII文件解析之后,得到的只是一系列的梯形顶点坐标,然后需要利用绘图工具进行填充处理,以得到需要的图像。
    现有填充技术中多采用CUDA进行填充,CUDA是NVIDIA的GPGPU模型,也就是通用计算图形处理器,它使用为大多数编程人员所知晓的C语言编程,编写的程序直接在显示芯片上执行,从而避免学习像汇编这样底层开发语言或指令。
    在CUDA的架构下,一个应用程序被分为两个部分执行,一部分被分配在CPU上执行,也就是所谓的Host端;另一部分被分配在GPU上运行,也就是所谓的Device端,又被称为Kernel。而通常是在Host端准备好数据,然后复制到Device端的全局存储器、常数存储器或纹理存储器中,再由GPU执行Device端程序,执行完的结果,再拷贝到Host端的内存中。
    在CUDA架构下,一个GPU中含有数十个TPC(Texture Processing Clusters),每个TPC中含有多个SM(Streaming Multiprocessor),每个SM中有8个以上的SP(Streaming Processor),而SP就是最基本的处理单元。并且这些SP可以同时进行运算。
在CUDA架构下,显示芯片执行的最小单位是Thread,数个Thread组成一个Block,一个Block中的Thread能存取同一块共享内存,而且可以快速的进行同步动作。执行相同程序的Block,可以组成Grid。
采用传统的图形设备接口GDI+绘图,即使GDI+可以让程序对图形界面的操作和硬件设备隔绝开来,但依然不能构造庞大的GDI+内容,在gdi32.inc文件中函数总量达到300多个,与GDI+相关的数据结构数量也十分庞大,而且CPU即使采用了很好的作业调用算法和中断抢断机制,但其终究是基于时间片,相对于某个时刻来说,也只有一个作业在执行。随着GDSII图像越来越复杂,客户对曝光速度的要求越来越快,采用传统的填充方法已满足不了光刻系统的需求。本发明使用一种通用并行处理架构(CUDA),从而能够快速处理图形图像,以满足光刻机在光刻过程中对图像和速度的要求。
发明内容
本发明的目的是提供一种基于CUDA的梯形填充方法,以解决现有技术中采用GDI绘图不能满足大量图形数据处理,且使用时效率低下,不够便捷的问题。
为达到上述目的,本发明采用的技术方案为:
一种基于CUDA的梯形填充方法,其特征在于包括以下步骤:
①、在Host端准备需要填充的位图图形,设置位深、颜色表,分配并初始化内存单元;
②、在Host端准备好需要的梯形顶点数据,并保存在梯形点集里;
③、把当前处理任务分配给一个Grid,根据位图图形的数量确定Block数量,根据梯形的数量确定Thread数量;
④、通过CUDA提供接口函数,在Device端的Global Memory分别分配位图图形和梯形顶点数据所需的空间;
⑤、将Host端的数据拷贝到Device端的内存中;
⑥、启动CUDA多线程并行填充梯形;
⑦、待处理完之后,将Device端填充之后的数据,拷贝到Host端,即完成填充。
所述的一种基于CUDA的梯形填充方法,其特征在于:在步骤③中也可把任务分配给多个Grid处理。
所述的一种基于CUDA的梯形填充方法,其特征在于:所述Grid由数个执行相同程序的Block组成,所述Block由数个Thread组成。
本发明的有益效果为:
本发明采用CUDA多线程并行填充梯形方法,从而避免了利用GDI填充方法不能对大量图形数据有效处理,且由于CPU串行运行的限制而不能并行处理的问题,因而本发明能够有效地提升填充效率,满足大量图形数据处理的需求。
附图说明
图1为本发明中GPU内部构造与CPU数据交互方式的示意图。
图2为本发明中未填充之前Block内每个Thread分配的梯形及梯形最小外接矩形的范围示意图。
图3为每个Block内梯形完成填充后的状态示意图。
具体实施方式
    如图1、图2、图3所示,本发明包括以下步骤:
    ①、准备位图图形数据:根据需要,可以选择单色、8位、24位或32位等位图,对非单色图,设置其填充的初始灰度值。本实施例选择8位图,填充的灰度值为一固定值。
    ②、准备梯形顶点数据:对于每一张位图图形,其需要填充的梯形可能不同,将这些梯形顶点坐标放在一个梯形顶点的结构体数组里,为不同位图图形的梯形组分配不同大小的内存空间,并保存这些梯形顶点。
    ③、分配Block和Thread数量:因为位图图形之间可以并行填充,这样不会产生冲突,所以把每一个Block分配一个位图图形,然后把这个位图图形需要填充的梯形分配给该Block下的Thread进行处理。
    ④、Device端分配内存:利用CUDA提供的接口函数,对Device端分配内存,其大小为Host端需要分配的内存大小。
    ⑤、将数据拷贝至Device端:利用CUDA提供的接口函数,对步骤①和②分配的数据进行拷贝,使得这些数据复制到GPU的内存里。该内存可以是全局存储器,也可以是常数存储器。对于位图图形数据,一般比较大,放在全局存储区。
    ⑥、启动CUDA核心函数进行填充:先把每一张位图图形所属的梯形顶点集拷贝到共享存储区(即图1中Shared Memory),然后使得每个线程分配一张位图图形(如图2),比如说:Thread0填充bmp0,Thread1填充bmp1,Thread2填充bmp2。准备就绪,使得所有线程都在同一起点,也就是某个Block把其梯形顶点拷贝到其自己的共享存储区最晚结束的时间,然后开始启动填充,每一个Thread都会先计算自己的四条边的斜率,然后得到自己的四条直线。根据四个顶点计算到一个最小外接矩形,然后比较这个外接矩形内的坐标点是否在梯形范围内,如果在,设置其灰度值。
    ⑦、将数据拷贝到Host端:利用CUDA提供的接口函数,拷贝Device填充好的数据至Host端已经分配好的内存区。
    对于步骤①,如果是单色图,或者初始灰度值为0的图形,则不需要将位图图形数据在步骤⑤中拷贝至GPU内存中,直接在GPU分配需要的同等大小的内存即可。
    对于步骤⑥,把梯形顶点放在共享存储区(即图1中Shared Memory),其目的是为了在进行步骤⑥中的点与梯形边比较的频繁使用,而共享存储区的特点是比较小,存储速度快。这样可以提高填充速度。
    其中如果梯形顶点只有三个,也可以填充;包括梯形顶点有可能超出图形外围内(如图2中梯形4),或为负值,或大于位图宽高,亦可以填充。对于相互重叠的梯形或梯形最小外接矩形,在填充时,不需要考虑重叠部分,只需要在其原有灰度的基础上,添加需要设置的灰度即可。
    在CUDA梯形填充处理中,需要考虑位图图形和梯形数据的有效性和合理性,对填充过程,合理化安排每个Block和Thread可使性能提升。

Claims (3)

1.一种基于CUDA的梯形填充方法,涉及光刻技术,其特征在于包括以下步骤:
    ①、在Host端准备需要填充的位图图形,设置位深、颜色表,分配并初始化内存单元;
    ②、在Host端准备好需要的梯形顶点数据,并保存在梯形点集里;
    ③、把当前处理任务分配给一个Grid,根据位图图形的数量确定Block数量,根据梯形的数量确定Thread数量;
    ④、通过CUDA提供接口函数,在Device端的Global Memory分别分配位图图形和梯形顶点数据所需的空间;
    ⑤、将Host端的数据拷贝到Device端的内存中;
    ⑥、启动CUDA多线程并行填充梯形;
    ⑦、待处理完之后,将Device端填充之后的数据,拷贝到Host端,即完成填充。
2.根据权利要求1所述的一种基于CUDA的梯形填充方法,其特征在于:在步骤③中也可把任务分配给多个Grid处理。
3.根据权利要求1所述的一种基于CUDA的梯形填充方法,其特征在于:所述Grid由数个执行相同程序的Block组成,所述Block由数个Thread组成。
CN201110432064.5A 2011-12-21 2011-12-21 一种基于cuda的梯形填充方法 Active CN102521789B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110432064.5A CN102521789B (zh) 2011-12-21 2011-12-21 一种基于cuda的梯形填充方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110432064.5A CN102521789B (zh) 2011-12-21 2011-12-21 一种基于cuda的梯形填充方法

Publications (2)

Publication Number Publication Date
CN102521789A true CN102521789A (zh) 2012-06-27
CN102521789B CN102521789B (zh) 2014-06-25

Family

ID=46292694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110432064.5A Active CN102521789B (zh) 2011-12-21 2011-12-21 一种基于cuda的梯形填充方法

Country Status (1)

Country Link
CN (1) CN102521789B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106340055A (zh) * 2016-08-19 2017-01-18 江苏电力信息技术有限公司 一种基于多线程的OpenGL快速绘制方法
CN107016714A (zh) * 2017-03-14 2017-08-04 佛山科学技术学院 一种闭合曲线图形填充方法
CN107369194A (zh) * 2016-05-11 2017-11-21 龙芯中科技术有限公司 填充图形的方法和装置
CN110335190A (zh) * 2019-06-20 2019-10-15 合肥芯碁微电子装备有限公司 基于cuda的直写式光刻机数据拓展方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143386A (zh) * 2010-01-28 2011-08-03 复旦大学 一种基于图形处理器的的流媒体服务器加速方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143386A (zh) * 2010-01-28 2011-08-03 复旦大学 一种基于图形处理器的的流媒体服务器加速方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄成满: "《基于CUDA并行计算的无人机遥感图像快速拼接》", 15 December 2011 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107369194A (zh) * 2016-05-11 2017-11-21 龙芯中科技术有限公司 填充图形的方法和装置
CN107369194B (zh) * 2016-05-11 2022-04-15 龙芯中科技术股份有限公司 填充图形的方法和装置
CN106340055A (zh) * 2016-08-19 2017-01-18 江苏电力信息技术有限公司 一种基于多线程的OpenGL快速绘制方法
CN107016714A (zh) * 2017-03-14 2017-08-04 佛山科学技术学院 一种闭合曲线图形填充方法
CN107016714B (zh) * 2017-03-14 2020-04-24 佛山科学技术学院 一种闭合曲线图形填充方法
CN110335190A (zh) * 2019-06-20 2019-10-15 合肥芯碁微电子装备有限公司 基于cuda的直写式光刻机数据拓展方法

Also Published As

Publication number Publication date
CN102521789B (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
US11907691B2 (en) Method and system of command buffer between a CPU and GPU
US11847508B2 (en) Convergence among concurrently executing threads
CN102609978B (zh) 基于cuda架构的gpu加速锥束ct图像重建的方法
EP2791910B1 (en) Graphics processing unit with command processor
US9947084B2 (en) Multiresolution consistent rasterization
JP4489806B2 (ja) スケーラブルシェーダアーキテクチャ
US9286119B2 (en) System, method, and computer program product for management of dependency between tasks
CN101859257B (zh) 用于无死锁管线操作的系统及方法
KR101667508B1 (ko) 그래픽 프로세싱 유닛 기반 메모리 전송 동작들을 수행하는 다중모드 메모리 액세스 기법들
CN110032395B (zh) 用于提高资源利用率的统一寄存器文件
US20090303245A1 (en) Technique for performing load balancing for parallel rendering
CN104050704A (zh) 用于可变分辨率渲染的一致性顶点捕捉
CN105321143A (zh) 来自片段着色程序的采样掩膜的控制
CN102521789B (zh) 一种基于cuda的梯形填充方法
US11663767B2 (en) Power efficient attribute handling for tessellation and geometry shaders
EP3742350A1 (en) Parallelization strategies for training a neural network
CN107851004A (zh) 针对通用寄存器(gpr)的寄存器溢出管理
CN110832457A (zh) 用于虚拟化加速处理装置的提前虚拟化上下文切换
WO2018208334A1 (en) Determination of per line buffer unit memory allocation
CN103871019A (zh) 优化三角形拓扑用于路径渲染
US9235512B2 (en) System, method, and computer program product for graphics processing unit (GPU) demand paging
US20150145871A1 (en) System, method, and computer program product to enable the yielding of threads in a graphics processing unit to transfer control to a host processor
CN105183562A (zh) 一种基于cuda技术对栅格化数据进行抽阶的方法
US9477480B2 (en) System and processor for implementing interruptible batches of instructions
US10943323B2 (en) Data processing systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20151124

Granted publication date: 20140625

RINS Preservation of patent right or utility model and its discharge
PD01 Discharge of preservation of patent

Date of cancellation: 20161124

Granted publication date: 20140625

PP01 Preservation of patent right

Effective date of registration: 20161124

Granted publication date: 20140625

RINS Preservation of patent right or utility model and its discharge
PD01 Discharge of preservation of patent

Date of cancellation: 20170524

Granted publication date: 20140625

PP01 Preservation of patent right

Effective date of registration: 20170524

Granted publication date: 20140625

PD01 Discharge of preservation of patent

Date of cancellation: 20180524

Granted publication date: 20140625

PD01 Discharge of preservation of patent
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190916

Address after: Room B30, 3rd floor, 151 Keyuan Road, China (Shanghai) Free Trade Pilot Area, Pudong New Area, Shanghai, 200120

Patentee after: Zhongxia Xinji (Shanghai) Technology Co., Ltd.

Address before: 230601 No. 68 Jinxiu Avenue, Hefei economic and Technological Development Zone, Anhui, China

Patentee before: Hefei AdvanTools Semiconductor Co., Ltd.