CN111091612A - 一种抽象目标码架构的着色语言机器码生成方法及装置 - Google Patents

一种抽象目标码架构的着色语言机器码生成方法及装置 Download PDF

Info

Publication number
CN111091612A
CN111091612A CN201910952296.XA CN201910952296A CN111091612A CN 111091612 A CN111091612 A CN 111091612A CN 201910952296 A CN201910952296 A CN 201910952296A CN 111091612 A CN111091612 A CN 111091612A
Authority
CN
China
Prior art keywords
instruction
abstract
target
code
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.)
Granted
Application number
CN201910952296.XA
Other languages
English (en)
Other versions
CN111091612B (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.)
Wuhan Lingjiu Microelectronics Co ltd
Original Assignee
709th Research Institute of CSIC
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
Application filed by 709th Research Institute of CSIC filed Critical 709th Research Institute of CSIC
Priority to CN201910952296.XA priority Critical patent/CN111091612B/zh
Publication of CN111091612A publication Critical patent/CN111091612A/zh
Application granted granted Critical
Publication of CN111091612B publication Critical patent/CN111091612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开一种抽象目标码架构的着色语言机器码生成方法及装置,所述方法包括:根据GPU着色器的具体类型定义一套通用的着色器抽象目标指令;将着色语言程序的中间表示代码转换成抽象目标指令;根据抽象目标指令与实际GPU目标机器指令的映射关系设计指令映射表;将所述抽象目标指令与所述指令映射表进行模式匹配,将所述抽象目标指令转换成GPU着色器可执行的目标机器指令。本发明所述方法引入的抽象目标代码能够将编译器后端目标代码的生成部分与具体GPU着色器机器代码进行解耦,能够大幅提升着色语言编译器后端程序的模块化水平,降低编译器后端开发的难度。

Description

一种抽象目标码架构的着色语言机器码生成方法及装置
技术领域
本发明属于着色语言编译器技术领域,具体涉及着色语言编译器后端一种抽象目标码架构的机器码生成方法。
背景技术
着色语言编译器通常由3部分组成:编译器前端、机器无关代码优化器、编译器后端,常规的着色语言编译器流程如图1所示。其中编译器后端部分主要包括目标机器代码的生成,着色器硬件资源的分配和管理,机器相关代码的优化等功能。其中目标机器代码生成是着色语言编译器后端设计的一项关键技术,也是编译器后端设计的一个难点,该功能过程复杂,代码量很大。
传统的着色语言编译器后端代码生成模块直接将中间表示代码(IR)生成机器目标代码,代码生成模块与目标机器指令高度耦合,常规代码生成模块如图2所示。然而着色器硬件单元是随着GPU技术的发展不断发展,GPU着色器目标机器指令也在不断变化,这导致了着色语言编译器后端代码生成模块也需要不断更新变化,由于编译器代码生成模块功能庞大复杂,代码开发和维护难度非常大。另外,着色语言编译器后端程序通常需要能够兼容多款型号的着色器硬件版本,不同型号的着色器目标机器指令通常也存在一定的差异,这样也导致编译器后端目标机器码生成模块异常复杂,不利于该模块的设计、开发和维护。
发明内容
本发明提出了一种抽象目标码架构的着色语言机器码生成方法及装置,通过引入抽象目标码架构,来解决着色语言编译器后端开发和维护难度大、代码生成模块庞大复杂等问题。
本发明第一方面,提出一种抽象目标码架构的着色语言机器码生成方法,所述方法包括:
S1、根据GPU着色器的具体类型定义一套通用的着色器抽象目标指令;
S2、通过着色语言编译器后端将着色语言程序的中间表示代码转换成步骤S1中所定义的抽象目标指令;
S3、根据抽象目标指令与实际GPU目标机器指令的映射关系设计指令映射表;
S4、将所述抽象目标指令与所述指令映射表进行模式匹配,将所述抽象目标指令转换成GPU着色器可执行的目标机器指令。
优选的,所述步骤S1中,所述抽象目标指令包括基本的控制、算术运算操作以及着色语言标准定义的函数操作,单条抽象目标指令的操作数数量和类型与实际GPU目标机器指令保持一致。
优选的,所述步骤S2中,所述着色语言程序中间表示代码是指从着色语言编译器前端输出并经过机器无关代码优化后的中间表示形式,所述中间表示代码包括但不限于三地址码表示、基于LLVM的中间表示。
优选的,所述步骤S3中,若同一类型的GPU着色器下包括多个不同型号的GPU着色器,则不同型号的GPU着色器逻辑上对应不同的指令映射表。
优选的,所述指令映射表根据执行性能进行优先级排序;所述指令映射表中的抽象目标指令与实际GPU目标机器指令是多对多的映射关系。
优选的,所述步骤S4的具体过程为:
根据着色器的具体类型匹配出与具体型号的GPU着色器所对应的指令映射表,搜索所对应的指令映射表中的抽象目标指令序列,匹配所述指令映射表的抽象目标指令模式,匹配成功后将所述抽象目标指令序列替换成对应的GPU目标机器指令序列,相应的操作数也对应到目标机器指令的操作数上,最终生成可执行的目标机器指令。
本发明第二方面,提供一种抽象目标码架构的着色语言机器码生成装置,所述装置包括:
抽象目标指令定义模块:用于根据具体类型的着色器指令特征定义一套抽象的着色器目标指令;
抽象目标代码生成模块:用于解析着色语言程序的中间表示代码,将所述中间表示代码转化为抽象目标指令代码,并管理硬件资源的使用;
指令映射表设计模块:用于根据抽象目标指令与实际目标机器指令的映射关系,设计指令映射表结构;
模式匹配替换模块:用于将所述抽象目标指令与所述指令映射表的数据项进行模式匹配,将所述抽象目标指令替换为实际目标机器指令,完成着色语言编译器后端部分目标机器代码的生成。
优选的,所述抽象目标指令定义模块所定义的抽象目标指令包括基本的控制、算术运算操作以及着色语言标准定义的函数操作,单条抽象目标指令的操作数数量和类型与实际GPU目标机器指令保持一致。
优选的,所述抽象目标代码生成模块中,所述着色语言程序中间表示代码是指从着色语言编译器前端输出并经过机器无关代码优化后的中间表示形式,所述中间表示代码包括但不限于三地址码表示、基于LLVM的中间表示。
优选的,所述指令映射表中的抽象目标指令与实际GPU目标机器指令是多对多的映射关系;若同一类型的GPU着色器下包括多个不同型号的GPU着色器,则不同型号的GPU着色器逻辑上对应不同的指令映射表。
本发明的有益效果是:
本发明将优化后的着色语言程序中间表示表示代码(IR)转换成一种抽象目标代码,再通过模式匹配抽象目标代码与具体着色器机器码的映射关系表,最终转化成GPU可执行的目标机器码。该方法引入的抽象目标代码能够将编译器后端目标代码的生成部分与具体GPU着色器机器代码进行解耦,能够大幅提升着色语言编译器后端程序的模块化水平,降低编译器后端开发的难度。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为传统的着色语言编译器流程示意图;
图2为传统的着色语言编译器后端代码生成模块示意图;
图3为本发明提供的抽象目标码架构的着色语言机器码生成方法流程示意图;
图4为本发明提供的抽象目标码架构原理示意图。
具体实施方式
本发明定义了一种针对OpenGL着色语言特征的抽象目标代码,将着色语言程序中间表示代码生成一种抽象目标代码,再通过模式匹配抽象目标代码与具体着色器机器码的映射关系表,转化成最终GPU可执行的目标机器码。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图3,本发明提供的一种抽象目标码架构的着色语言机器码生成方法流程示意图,所述方法包括:
S1、定义一套抽象目标指令
针对标准OpenGL着色语言的具体功能,结合具体类型的着色器指令特点,定义一种针对OpenGL着色语言特征的抽象目标指令(抽象目标码),该抽象目标码主要是从着色语言具体功能的角度定义的“理想”GPU着色器目标代码,同时又充分考虑具体着色器的指令架构特点,可看作是某类型着色器下不同型号的着色器的一种“通用”着色器伪机器码,同时与GPU着色器的真实目标机器码较接近。部分抽象目标指令类型参考如下:
SL_NOP,SL_MOV,SL_SAT,SL_ABS,SL_JMP,SL_ADD,SL_MUL,SL_SUB,SL_POW,SL_RSQ,SL_LOG,SL_FRAC,SL_SIN,SL_COS,SL_TAN,SL_TEXLDPROJ,SL_TEXBIAS,SL_TEXLOD等等。
进一步的,这些抽象目标指令包括基本的控制和算术运算操作,也包括着色语言标准定义的函数操作,单条指令的操作数数量和类型与GPU实际目标机器指令码需要保持一致。
S2、将着色语言程序的中间表示代码转换成抽象目标指令
进一步的,所述着色语言程序中间表示代码是指从着色语言编译器前端输出并经过机器无关代码优化后的中间表示形式,所述中间表示代码包括但不限于三地址码表示、基于LLVM的中间表示等形式。着色语言编译器后端先解析中间表示代码,将中间表示代码转化为抽象目标指令代码,并管理硬件资源的使用,如寄存器资源和统一常量单元的管理使用,转化出来的抽象目标指令已包含寄存器和统一常量的编号信息,也即抽象目标指令已经实现与硬件资源的具体对接。
S3、设计指令映射表
根据抽象目标指令与实际GPU目标机器指令的映射关系设计指令映射表,指令映射表列举了所有可能的抽象目标指令与真实GPU目标机器指令的映射关系,指令映射表需要保证所有的抽象目标指令都能替换为GPU目标机器指令,根据执行性能进行优先级排序,确保高效率的目标指令序列能够被优先被匹配成功。由于抽象目标指令与目标机器指令非常接近,指令映射表映射关系简单,指令映射表的结构相对比较简单。表1为某型号GPU指令映射关系示例及其说明。
表1某型号GPU指令映射关系示例
Figure BDA0002226140620000061
注:指令中数字表示操作数代号,代号跟随的“.w”表示向量的w分量,t1表示临时寄存器代号。
指令映射表中的抽象目标码与GPU实际目标机器指令是多对多的关系,可能存在多条抽象目标指令只对应单条GPU实际目标机器码的情况,也可能存在单条抽象目标指令对应多条GPU实际目标机器码的情况,如某些GPU型号无法支持部分OpenGL标准超越函数,这种情况下单个抽象指令需要有多条GPU机器指令组合实现。
具体实现时,可采用结构体数据来保存指令映射表,即某一型号的GPU着色器对应一个指令映射表结构体。一般同一类型的GPU着色器下包括多个不同型号的GPU着色器,则不同型号的GPU着色器逻辑上对应不同的指令映射表,用于适应GPU着色器目标指令的具体差异。同一类型下不同型号的GPU着色器对应的不同的指令映射表也可以组成一个总的指令映射表结构体,该指令映射表结构体可根据GPU的不同特征选择差异化的映射分支,从而将GPU目标指令或GPU着色器型号的变化局限在指令映射表数据结构体中,实现对不同型号GPU目标指令的解耦,有利于具备复杂功能和设计难度的目标代码生成模块的开发和维护。
S4、将所述抽象目标指令与所述指令映射表进行模式匹配,将所述抽象目标指令转换成GPU着色器可执行的目标机器指令
根据着色器的具体类型匹配出与具体型号的GPU着色器所对应的指令映射表,搜索所对应的指令映射表中的抽象目标指令序列,匹配所述指令映射表的抽象目标指令模式,匹配成功后将所述抽象目标指令序列替换成对应的GPU目标机器指令序列,相应的操作数也对应到目标机器指令的操作数上,最终生成可执行的目标机器指令(着色语言机器码)。
图4为本发明提供的抽象目标码架构的原理示意图,本发明所述方法通过引入抽象目标码架构,实际上是将传统着色语言编译器后端的目标机器代码生成部分分解成两个独立模块:抽象目标代码生成模块和模式匹配替换模块。
抽象目标代码生成模块承担了大部分代码生成功能,用于将着色语言程序中间表示指令生成抽象目标代码,由于所定义的抽象目标指令是一种“理想”的目标机器指令,可在目标机器指令特征相近的不同GPU着色器之间通用,因此抽象层抽象目标代码通常很稳定,着色语言标准也相对稳定,不需要随GPU机器指令的变化而改变,因而具有复杂功能的抽象目标代码生成模块功能将比较稳定,可以实现对不同型号GPU目标指令的解耦,有利于具备复杂功能和设计难度的目标代码生成模块的开发和维护。
模式匹配替换模块实现将抽象目标指令与指令映射表数据进行块模式匹配,找出抽象目标指令对应的真实GPU目标机器指令,并替换成目标机器指令。该模式匹配替换模块功能也稳定,与具体型号的GPU目标指令没有耦合关系。指令映射表数据反映抽象目标指令与真实GPU机器指令的映射关系,与多种型号的GPU机器指令高度耦合。通过这种设计架构,实现将GPU机器指令的变化局限在一个指令映射表数据体中,对于着色器机器指令的变化,指令映射表可以根据硬件特征标识进行区分,满足当前硬件特征的映射模式才会参与匹配,这样通过维护指令映射表数据实现对GPU目标机器指令的优化。由于维护和更新一段指令映射表数据比一段复杂代码容易得多,从而大幅降低了编译器后端开发和维护的复杂度。
本发明还提供一种抽象目标码架构的着色语言机器码生成装置,所述装置包括:
抽象目标指令定义模块:用于根据标准OpenGL着色语言的具体功能以及具体类型的着色器指令特点定义一套抽象的着色器目标指令;进一步的,所述抽象目标指令定义模块所定义的抽象目标指令包括基本的控制、算术运算操作以及着色语言标准定义的函数操作,单条抽象目标指令的操作数数量和类型与实际GPU目标机器指令保持一致。
抽象目标代码生成模块:用于解析着色语言程序的中间表示代码,将所述中间表示代码转化为抽象目标指令代码,并管理硬件资源的使用;进一步的,所述抽象目标代码生成模块中,所述着色语言程序中间表示代码是指从着色语言编译器前端输出并经过机器无关代码优化后的中间表示形式,所述中间表示代码包括但不限于三地址码表示、基于LLVM的中间表示。
指令映射表设计模块:用于根据抽象目标指令与实际目标机器指令的映射关系,设计指令映射表;进一步的,所述指令映射表中的抽象目标指令与实际GPU目标机器指令是多对多的映射关系;若同一类型的GPU着色器下包括多个不同型号的GPU着色器,则不同型号的GPU着色器逻辑上对应不同的指令映射表。本装置采用指令映射表结构体数据定义了抽象目标指令与具体GPU机器指令的对照映射关系,将GPU硬件指令的差异隔离在该结构体数据中,实现其他模块对GPU硬件指令的去藕,有利于软件的开发和维护。
模式匹配替换模块:用于将所述抽象目标指令与所述指令映射表进行模式匹配,将所述抽象目标指令替换为实际目标机器指令,完成着色语言编译器后端部分目标机器代码的生成。
本发明提出了一种抽象目标码架构的着色语言机器码生成方法及装置,所述方法属于着色语言编译器后端目标机器码生成的一种方法,该方法将优化后的着色语言程序中间表示代码生成一种抽象目标代码,再通过模式匹配抽象目标代码与具体着色器机器码的映射关系表,转化成最终GPU可执行的目标机器码。该方法引入的抽象目标代码能够将编译器后端目标代码的生成部分与具体GPU着色器机器代码进行解耦,能够大幅提升着色语言编译器后端程序的模块化水平,降低编译器后端开发的难度。
以上装置实施例与方法实施例是一一对应的,装置实施例简略之处,参见方法实施例即可。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述,在此不再赘述。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的模块、单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种抽象目标码架构的着色语言机器码生成方法,其特征在于,所述方法包括如下步骤:
S1、根据GPU着色器的具体类型定义一套通用的着色器抽象目标指令;
S2、将着色语言程序的中间表示代码转换成步骤S1所定义的抽象目标指令;
S3、根据抽象目标指令与实际GPU目标机器指令的映射关系设计指令映射表;
S4、将所述抽象目标指令与所述指令映射表进行模式匹配,将所述抽象目标指令转换成GPU着色器可执行的目标机器指令。
2.根据权利要求1所述抽象目标码架构的着色语言机器码生成方法,其特征在于,所述步骤S1中,所述抽象目标指令包括基本的控制、算术运算操作以及着色语言标准定义的函数操作,单条抽象目标指令的操作数数量和类型与实际GPU目标机器指令保持一致。
3.根据权利要求1所述抽象目标码架构的着色语言机器码生成方法,其特征在于,所述步骤S2中,所述着色语言程序中间表示代码是指从着色语言编译器前端输出并经过机器无关代码优化后的中间表示形式,所述中间表示代码包括但不限于三地址码表示、基于LLVM的中间表示。
4.根据权利要求1所述抽象目标码架构的着色语言机器码生成方法,其特征在于,所述步骤S3中,若同一类型的GPU着色器下包括多个不同型号的GPU着色器,则不同型号的GPU着色器逻辑上对应不同的指令映射表。
5.根据权利要求1所述抽象目标码架构的着色语言机器码生成方法,其特征在于,所述指令映射表中的抽象目标指令与实际GPU目标机器指令是多对多的映射关系。
6.根据权利要求4所述抽象目标码架构的着色语言机器码生成方法,其特征在于,所述步骤S4的具体过程为:
根据着色器的具体类型匹配出与具体型号的GPU着色器所对应的指令映射表,搜索所对应的指令映射表中的抽象目标指令序列,匹配所述指令映射表的抽象目标指令模式,匹配成功后将所述抽象目标指令序列替换成对应的GPU目标机器指令序列,相应的操作数也对应到目标机器指令的操作数上,最终生成可执行的目标机器指令。
7.一种抽象目标码架构的着色语言机器码生成装置,其特征在于,所述装置包括:
抽象目标指令定义模块:用于根据具体类型的GPU着色器指令特征定义一套抽象的着色器目标指令;
抽象目标代码生成模块:用于解析着色语言程序中间表示代码,将所述中间表示代码转化为抽象目标指令代码,并管理硬件资源的使用;
指令映射表设计模块:用于根据抽象目标指令与实际GPU目标机器指令的映射关系,设计指令映射表;
模式匹配替换模块:用于将所述抽象目标指令与所述指令映射表进行模式匹配,将所述抽象目标指令替换为实际GPU目标机器指令,完成着色语言编译器后端部分目标机器代码的生成。
8.根据权利要求6所述抽象目标码架构的着色语言机器码生成装置,其特征在于,所述抽象目标指令定义模块所定义的抽象目标指令包括基本的控制、算术运算操作以及着色语言标准定义的函数操作,单条抽象目标指令的操作数数量和类型与实际GPU目标机器指令保持一致。
9.根据权利要求6所述抽象目标码架构的着色语言机器码生成装置,其特征在于,所述抽象目标代码生成模块中,所述着色语言程序中间表示代码是指从着色语言编译器前端输出并经过机器无关代码优化后的中间表示形式,所述中间表示代码包括但不限于三地址码表示、基于LLVM的中间表示。
10.根据权利要求6所述抽象目标码架构的着色语言机器码生成装置,其特征在于,所述指令映射表中的抽象目标指令与实际GPU目标机器指令是多对多的映射关系;若同一类型的GPU着色器下包括多个不同型号的GPU着色器,则不同型号的GPU着色器逻辑上对应不同的指令映射表。
CN201910952296.XA 2019-10-09 2019-10-09 一种抽象目标码架构的着色语言机器码生成方法及装置 Active CN111091612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910952296.XA CN111091612B (zh) 2019-10-09 2019-10-09 一种抽象目标码架构的着色语言机器码生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910952296.XA CN111091612B (zh) 2019-10-09 2019-10-09 一种抽象目标码架构的着色语言机器码生成方法及装置

Publications (2)

Publication Number Publication Date
CN111091612A true CN111091612A (zh) 2020-05-01
CN111091612B CN111091612B (zh) 2023-06-02

Family

ID=70393019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910952296.XA Active CN111091612B (zh) 2019-10-09 2019-10-09 一种抽象目标码架构的着色语言机器码生成方法及装置

Country Status (1)

Country Link
CN (1) CN111091612B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021253641A1 (zh) * 2020-06-15 2021-12-23 完美世界(北京)软件科技发展有限公司 着色语言翻译方法
CN117270962A (zh) * 2023-11-22 2023-12-22 北京渲光科技有限公司 一种处理着色语言的方法、装置、存储介质及电子设备

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586323A (en) * 1991-04-23 1996-12-17 Hitachi, Ltd. Compilier system using an intermediate abstract form and machine-specific installers
US20040237074A1 (en) * 2003-05-23 2004-11-25 Microsoft Corporation Optimizing compiler transforms for a high level shader language
US7313773B1 (en) * 2004-05-26 2007-12-25 Coware, Inc. Method and device for simulator generation based on semantic to behavioral translation
US20090064113A1 (en) * 2007-08-30 2009-03-05 International Business Machines Corporation Method and system for dynamic loop transfer by populating split variables
US20100088666A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Common intermediate representation for data scripting language
US20120159444A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Fusing debug information from different compiler stages
CN104239115A (zh) * 2014-07-24 2014-12-24 汕头大学 一种plc编程语言的编译方法
CN104823161A (zh) * 2012-11-07 2015-08-05 皇家飞利浦有限公司 生成无运算符代码的编译器
US20150347107A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Unified Intermediate Representation
US9280326B1 (en) * 2004-05-26 2016-03-08 Synopsys, Inc. Compiler retargeting based on instruction semantic models
CN106126312A (zh) * 2016-06-22 2016-11-16 华东师范大学 一种基于代数演算的中间代码优化系统
US20160364216A1 (en) * 2015-06-15 2016-12-15 Qualcomm Incorporated Generating object code from intermediate code that includes hierarchical sub-routine information
CN106371887A (zh) * 2016-11-08 2017-02-01 西安电子科技大学 一种msvl语言的编译系统及方法
US20170206068A1 (en) * 2016-01-19 2017-07-20 Cray Inc. Program optimization based on directives for intermediate code
CN107111503A (zh) * 2014-12-22 2017-08-29 华为技术有限公司 用于将呈第一编程语言的源代码编译为呈第二编程语言的程序代码的方法
US20170358129A1 (en) * 2014-12-08 2017-12-14 Intel Corporation Graphic rendering quality improvements through automated data type precision control
US9928637B1 (en) * 2016-03-08 2018-03-27 Amazon Technologies, Inc. Managing rendering targets for graphics processing units
US20190042217A1 (en) * 2017-12-27 2019-02-07 Intel Corporation Methods and apparatus to compile code to generate data flow code
CN110119275A (zh) * 2019-05-13 2019-08-13 电子科技大学 一种分布式内存列式数据库编译执行器架构
CN110149800A (zh) * 2015-04-07 2019-08-20 华为技术有限公司 一种用于处理与源程序的源代码相关联的抽象语法树的装置

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586323A (en) * 1991-04-23 1996-12-17 Hitachi, Ltd. Compilier system using an intermediate abstract form and machine-specific installers
US20040237074A1 (en) * 2003-05-23 2004-11-25 Microsoft Corporation Optimizing compiler transforms for a high level shader language
US7313773B1 (en) * 2004-05-26 2007-12-25 Coware, Inc. Method and device for simulator generation based on semantic to behavioral translation
US9280326B1 (en) * 2004-05-26 2016-03-08 Synopsys, Inc. Compiler retargeting based on instruction semantic models
US20090064113A1 (en) * 2007-08-30 2009-03-05 International Business Machines Corporation Method and system for dynamic loop transfer by populating split variables
US20100088666A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Common intermediate representation for data scripting language
US20120159444A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Fusing debug information from different compiler stages
CN104823161A (zh) * 2012-11-07 2015-08-05 皇家飞利浦有限公司 生成无运算符代码的编译器
US20150347107A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Unified Intermediate Representation
CN104239115A (zh) * 2014-07-24 2014-12-24 汕头大学 一种plc编程语言的编译方法
US20170358129A1 (en) * 2014-12-08 2017-12-14 Intel Corporation Graphic rendering quality improvements through automated data type precision control
CN107111503A (zh) * 2014-12-22 2017-08-29 华为技术有限公司 用于将呈第一编程语言的源代码编译为呈第二编程语言的程序代码的方法
CN110149800A (zh) * 2015-04-07 2019-08-20 华为技术有限公司 一种用于处理与源程序的源代码相关联的抽象语法树的装置
US20160364216A1 (en) * 2015-06-15 2016-12-15 Qualcomm Incorporated Generating object code from intermediate code that includes hierarchical sub-routine information
US20170206068A1 (en) * 2016-01-19 2017-07-20 Cray Inc. Program optimization based on directives for intermediate code
US9928637B1 (en) * 2016-03-08 2018-03-27 Amazon Technologies, Inc. Managing rendering targets for graphics processing units
CN106126312A (zh) * 2016-06-22 2016-11-16 华东师范大学 一种基于代数演算的中间代码优化系统
CN106371887A (zh) * 2016-11-08 2017-02-01 西安电子科技大学 一种msvl语言的编译系统及方法
US20190042217A1 (en) * 2017-12-27 2019-02-07 Intel Corporation Methods and apparatus to compile code to generate data flow code
CN110119275A (zh) * 2019-05-13 2019-08-13 电子科技大学 一种分布式内存列式数据库编译执行器架构

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
NIRANJAN HASABNIS 等: "Lifting Assembly to Intermediate Representation: A Novel Approach Leveraging Compilers" *
RIKI_TREE: "实时渲染(第四版)_第3章|GPU并行架构及着色器(下)" *
张仕仁: "基于可重用代码生成器设计与实现" *
王力生;王田;: "计算机综合实验C语言编译器设计探讨――基于LLVM架构的MIPS后端移植分析", 计算机教育 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021253641A1 (zh) * 2020-06-15 2021-12-23 完美世界(北京)软件科技发展有限公司 着色语言翻译方法
CN117270962A (zh) * 2023-11-22 2023-12-22 北京渲光科技有限公司 一种处理着色语言的方法、装置、存储介质及电子设备
CN117270962B (zh) * 2023-11-22 2024-02-09 北京渲光科技有限公司 一种处理着色语言的方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN111091612B (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
US20230057419A1 (en) System and method for compiling high-level language code into a script executable on a blockchain platform
US7571427B2 (en) Methods for comparing versions of a program
US10102015B1 (en) Just in time GPU executed program cross compilation
CN106415492A (zh) 用于图形处理器单元上的图形和非图形计算的语言、函数库和编译器
US20120066668A1 (en) C/c++ language extensions for general-purpose graphics processing unit
CN106415496A (zh) 统一中间表示
US10241766B2 (en) Application binary interface cross compilation
CN111091612B (zh) 一种抽象目标码架构的着色语言机器码生成方法及装置
CN113626324A (zh) 一种面向Move语言虚拟机的模糊测试方法
Weber et al. MATOG: array layout auto-tuning for CUDA
C. Penha et al. ADD: Accelerator Design and Deploy‐A tool for FPGA high‐performance dataflow computing
US10606843B2 (en) Irreducible modules
Cattaneo et al. TAFFO: The compiler-based precision tuner
Higuchi et al. ClPy: a NumPy-compatible library accelerated with OpenCL
Parker et al. RTSL: a ray tracing shading language
Pasik A methodology for programming production systems and its implications on parallelism
CN115167868A (zh) 代码编译方法、装置、设备及计算机存储介质
CN113885877A (zh) 编译的方法、装置、设备及介质
Lotze et al. Many-core accelerated libor swaption portfolio pricing
Werner et al. Automatic compiler optimization on embedded software through k-means clustering
Bartoletti et al. Secure compilation of rich smart contracts on poor UTXO blockchains
US20230385477A1 (en) Rack-based design verification and management
Jongen et al. Optimization through recomputation in the polyhedral model
Rapanotti On the synthesis of integral and dynamic recurrences
Aragón-Jurado et al. Automatic Software Tailoring for Optimal Performance

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
CB02 Change of applicant information

Address after: No.1, zanlong North Road, Fenghuang Industrial Park, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Applicant after: No. 709 Research Institute of China Shipbuilding Corp.

Address before: 430205 No.1, Canglong North Road, Fenghuang Industrial Park, Jiangxia District, Wuhan City, Hubei Province

Applicant before: NO.709 RESEARCH INSTITUTE OF CHINA SHIPBUILDING INDUSTRY Corp.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20220815

Address after: 430000 No. 1 Baihe Road, Guandong Industrial Park, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Applicant after: Wuhan lingjiu Microelectronics Co.,Ltd.

Address before: No.1, zanlong North Road, Fenghuang Industrial Park, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Applicant before: No. 709 Research Institute of China Shipbuilding Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant