一种基于cuda技术的直写式光刻机图像数据按位压缩方法

文档序号:10653280阅读:415来源:国知局
一种基于cuda技术的直写式光刻机图像数据按位压缩方法
【专利摘要】本发明涉及一种基于CUDA技术的直写式光刻机图像数据按位压缩方法,与现有技术相比解决了CPU的像素压缩技术无法适用于光刻领域特征图像的缺陷。本发明包括以下步骤:数据预处理和初始化;GPU预处理;分配内存;数据复制;启动通用并行计算处理;压缩结果的合并;将压缩之后的数据拷贝至CPU的Host端。本发明通过GPU利用CUDA技术进行并行化处理,提高了计算效率,增加了直写式光刻机的产能,同时降低了数据规模,GPU压缩处理后再将压缩数据传给CPU,减少了对CPU计算能力及传输带宽的依赖。
【专利说明】一种基于CUDA技术的直写式光刻机图像数据按位压缩方法
[0001]
技术领域
[0002]本发明涉及直写光刻机技术领域,具体来说是一种基于CUDA技术的直写式光刻机图像数据按位压缩方法。
[0003]
【背景技术】
[0004]⑶DA是NVIDIA公司2007年提出的支持GPU进行通用计算的编程模型和开发环境,CUDA编程的思想是用海量的线程来开发程序中的并行性,海量线程以层次化的方式组织,单个的线程被映射到标量核SP上执行,一组线程被组织成一个线程块Block被映射到一个SM上执行,最后由线程块组成的线程栅格Gr id映射到一个GPGPU上执行。由于GPU具有远超CPU的计算核心数以及海量的并行计算资源,适合进行计算密集型、高度并行化的计算任务。同时,由于GPU的价格远远低于同等性能的并行计算系统,由CPU和GPGPU组成的异构系统已经越来越广的应用到生物医学、流体力学等诸多工程应用领域。
[0005]直写式光刻技术是在感光材料(多为胶或者膜)的表面印刷具有特征的构图的技术,无掩膜光刻技术使用数字微镜系统生成构图,通过光学投影元件,图像以一定得倍率投影到光敏感的衬底上,产生特征的构图。
[0006]现有的压缩技术中多采用CPU(中央处理器)按像素压缩,其压缩的效率较低,另外对光刻领域的特征图形的压缩比相对较低。随着IC封装载板、半导体掩膜光刻的特征线宽越来要求要高,图形数据量越来越大,如何提高压缩比,对原始数据进行不失真的压缩,将越来越多的限制着光刻设备的产能。因此,如何利用CUDA技术来实现并行高效压缩已经成为急需解决的技术问题。
[0007]

【发明内容】

[0008]本发明的目的是为了解决现有技术中CPU的像素压缩技术无法适用于光刻领域特征图像的缺陷,提供一种基于CUDA技术的直写式光刻机图像数据按位压缩方法来解决上述问题。
[0009]为了实现上述目的,本发明的技术方案如下:
一种基于CUDA技术的直写式光刻机图像数据按位压缩方法,包括以下步骤:
数据预处理和初始化,在CPU的Host端申请存放未压缩前图形数据的任务,获取位图图形数据,其宽度为Width,高度为Height,在GPU的Device端申请按位压缩后的压缩数据的任务;
GPU预处理,在GPU的Device端,根据图形数据的宽、高分配块Block和线程Thread的数量,其中,块BI ock的数量为图形数据的高;
分配内存,在GPU的Device端利用CUDA接口函数(311(^]\&110(3()分配内存; 数据复制,在GPU的Device端利用QJDA接口函数cudaMemcpy()将CPU Host端的Memory中未压缩的图形数据拷贝至GPU的Global Memory中;
启动通用并行计算处理,CUDA启动多线程并行压缩方法,对图形数据进行压缩处理;
压缩结果的合并,将每个线程Thread处理的结果进行合并,获得有效连续数据;
将压缩之后的数据拷贝至CPU的Host端,利用CUDA提供的接口函数cudaMemcpyO,拷贝GPU的Device端填充好的数据至CPU的Host端的内存区。
[0010]所述的启动通用并行计算处理包括以下步骤:
将图形数据的每行数据拷贝至每个块Block的共享存储区Share Momory中;
每个块Block中的线程Thread根据所在块Block的数据分配指定的像素数据;
待所有块Block和其中的线程Thread均分配完毕后,启用Block线程同步函数syncthreads(),开始并行压缩处理;
并行压缩处理,每个线程Thread处理自己负责的像素点,按像素压缩规则将像素压缩的结果保存在一个字节中。
[0011]所述的像素压缩规则为:在8位字节中,字节的第I位为标志位,其值为O或I,代表该字节为O或I的展示;字节的第2位至第8位为数量位,表示字节标志位中O或I的重复数量。
[0012]
有益效果
本发明的一种基于CUDA技术的直写式光刻机图像数据按位压缩方法,与现有技术相比通过GPU利用CUDA技术进行并行化处理,提高了计算效率,增加了直写式光刻机的产能,同时降低了数据规模,GPU压缩处理后再将压缩数据传给CPU,减少了对CPU计算能力及传输带宽的依赖,降低了成本。本发明采用CUDA多线程并行计算,避免了使用CPU对数据进行二维扫描处理时单线程处理的滞后,从而提高效率。由于光刻领域的图像数据多为较小间隔的线宽线距,使用按像素压缩,出现压缩比很低的情况,而本发明中使用按位压缩,可以针对此类领域的特征图形提高压缩比。
[0013]
【附图说明】
图1为本发明的方法顺序图;
图2为GPU与CPU数据交互示意图;
图3为本发明中块Block、线程Thread与图像数据的分配关系与处理示意图;
图4为本发明中线程Thread完成压缩后示意图。
[0014]
【具体实施方式】
[0015]为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图2所示,在CUDA架构下,一个应用程序被分为两个部分执行,一部分被分配在CPU上执行,也就是Host端;另一部分被分配在GPU上执行,也就是Device端,又被称为Kernel。而通常是在Host端准备好数据,然后复制到Device端的全局内存、共享内存、纹理存储器中,再由GPU执行Device端程序,执行完的结果,再拷贝至Hsot端的内存中。
[0016]如图1所示,本发明所述的一种基于CUDA技术的直写式光刻机图像数据按位压缩方法,包括以下步骤:
第一步,数据预处理和初始化。在CPU的Host端申请存放未压缩前图形数据的任务,获取位图图形数据,其宽度为Width,高度为Height,在GPU的Device端申请按位压缩后的压缩数据的任务。在此,根据需要,可以选择2位、4位、8位、24位和32位等图形数据,这些图形数据的特点为属于由不同像素点的黑点、白点组成的图形,而像素点上的黑点的灰度值为0,像素点上的白点的灰度值为I,通过多个不同的像素点I或O的组合,实现图形的表达。
[0017]第二步,GPU预处理。在GPU的Device端,根据图形数据的宽、高分配块Block和线程Thread的数量,其中,块Block的数量为图形数据的高。由于位图数据的像素之间可以并行压缩且不会发生冲突,因此可以设置位图图像的一行像素给一个块Block,因此位图图形数据的高则为块Block所需要设置的数量。而多个块Block又共同组成栅格Grid的设计,因此针对于多个位图图形的压缩,可以设成多个栅格Grid执行,即栅格Grid由数个执行相同程序的块Block组成,块Block由数个线程Thread组成。针对于位图图形大批量的压缩处理其效率更高。
[0018]而针对于线程Thread而言,其为块Block下的处理,因此可以将位图图像的一行像素分配给块Block下的线程Thread进行处理。而具体要求线程Thread的大小则根据图形数据的宽度来定,若图形数据的宽度较大则可以分多个线程Thread,若图形数据的宽度较小则可以直接放在一个线程Thread,即将一行图形数据(一个块Block中的数据)均分或者按某个值分配到Block下的Thread进行处理。
[0019]第三步,分配内存。在GPU的Device端利用⑶DA接口函数cudaMalloc()分配内存,利用CUDA提供的接口函数对Device端分配内存,其大小可以为Host端需要分配的大小。
[0020]第四步,数据复制。在GPU的Device端利用CUDA接口函数cudaMemcpyO将CPU Host端的Memory中未压缩的图形数据拷贝至GPU的Global Memory中,GPU的Global Memory为全局存储器,一般存放比较大的图形数据。将图形数据拷贝至Global Memory,其目的是为了后续压缩时,多线程并行处理时,频繁访问未压缩的图形数据,而Global Memory的特点是存储速度快,可提高压缩速度。
[0021]第五步,启动通用并行计算处理,CUDA启动多线程并行压缩方法,对图形数据进行压缩处理。将GPU的GlobaI Memory图像数据细化到每个线程Thread,并使用Share Memory加速,每个线程Thread压缩的结果保存在一个字节中。其具体步骤如下:
(I)如图3所示,将图形数据的每行数据拷贝至每个块Block的共享存储区ShareMomory中,等待进行将每个线程Thread分配到指定的像素数据。
[0022](2)每个块Block中的线程Thread根据所在块Block的数据分配指定的像素数据。
[0023]例如,针对一个位图图像数据而言,其BlockO压缩第一行数据,Blockl压缩第二行数据,Block2压缩第三行数据,依此类推,直至达到图像数据的高度。然后BlockO中的ThreadO处理第一行的0~9像素,Threadl处理第一行的10?19像素,Thread2处理第一行的20?29像素,同理,将第一行的数据均处理完,直至达到图像数据的宽度。
[0024](3)待所有块Block和其中的线程Thread均分配完毕后,启用Block线程同步函数syncthreads(),开始并行压缩处理。
[0025](4)并行压缩处理。每个线程Thread处理自己负责的像素点,按像素压缩规则将像素压缩的结果保存在一个字节中。为了提高压缩比,压缩的结果保存在一个字节内,即像素压缩规则,其表示在8位字节中,字节的第I位为标志位,其值为O或I,代表该字节为O或I的展示,即该字节中均为I或均为O。字节的第2位至第8位为数量位,表示字节标志位中O或I的重复数量,即该字节中O或I的数量。例如:当需表示像素位图为00000时,其按像素压缩规则的字节则表示为00000101。
[0026]第六步,压缩结果的合并。如图4所示,将每个线程Thread处理的结果进行合并,获得有效连续数据,形成由若干个字节所顺序展示的字节数据集,完成在GPU的Device端进行数据压缩工作。在压缩时,针对于图形数据非等分在每个Block中,则会有一个线程Thread压缩的图像数据较少,可以采用将其补O或人为的其他操作进行标注即可。
[0027]第七步,将压缩之后的数据拷贝至CPU的Host端。利用CUDA提供的接口函数cudaMemcpy (),拷贝GPU的Device端填充好的数据至CPU的Host端的内存区。
[0028]以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
【主权项】
1.一种基于CUDA技术的直写式光刻机图像数据按位压缩方法,其特征在于,包括以下步骤: 11)数据预处理和初始化,在CPU的Host端申请存放未压缩前图形数据的任务,获取位图图形数据,其宽度为Width,高度为Height,在GPU的Device端申请按位压缩后的压缩数据的任务; 12)GPU预处理,在GPU的Device端,根据图形数据的宽、高分配块Block和线程Thread的数量,其中,块Block的数量为图形数据的高; 13)分配内存,在GRJ的DeVice端利用CUDA接口函数cudaMaIlocO分配内存; 14)数据复制,在GI3U的Device端利用⑶DA接口函数cudaMemcpy()将CPU Host端的Memory中未压缩的图形数据拷贝至GPU的Global Memory中; 15)启动通用并行计算处理,CUDA启动多线程并行压缩方法,对图形数据进行压缩处理; 16)压缩结果的合并,将每个线程Thread处理的结果进行合并,获得有效连续数据; 17 )将压缩之后的数据拷贝至CPU的Host端,利用⑶DA提供的接口函数cudaMemcpy (),拷贝GPU的Device端填充好的数据至CPU的Host端的内存区。2.根据权利要求1所述的一种基于CUDA技术的直写式光刻机图像数据按位压缩方法,其特征在于,所述的启动通用并行计算处理包括以下步骤: 21)将图形数据的每行数据拷贝至每个块Block的共享存储区ShareMomory中; 22)每个块Block中的线程Thread根据所在块Block的数据分配指定的像素数据; 23)待所有块Block和其中的线程Thread均分配完毕后,启用Block线程同步函数syncthreads(),开始并行压缩处理; 24)并行压缩处理,每个线程Thread处理自己负责的像素点,按像素压缩规则将像素压缩的结果保存在一个字节中。3.根据权利要求2所述的一种基于CUDA技术的直写式光刻机图像数据按位压缩方法,其特征在于: 所述的像素压缩规则为:在8位字节中,字节的第I位为标志位,其值为O或I,代表该字节为O或I的展示;字节的第2位至第8位为数量位,表示字节标志位中O或I的重复数量。
【文档编号】G03F7/20GK106019858SQ201610586053
【公开日】2016年10月12日
【申请日】2016年7月22日
【发明人】赵美云
【申请人】合肥芯碁微电子装备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1