CN111930359B - 一种异构嵌入式系统上进行算法开发的系统及方法 - Google Patents

一种异构嵌入式系统上进行算法开发的系统及方法 Download PDF

Info

Publication number
CN111930359B
CN111930359B CN202010612877.1A CN202010612877A CN111930359B CN 111930359 B CN111930359 B CN 111930359B CN 202010612877 A CN202010612877 A CN 202010612877A CN 111930359 B CN111930359 B CN 111930359B
Authority
CN
China
Prior art keywords
algorithm
module
file
compiling
executor
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.)
Active
Application number
CN202010612877.1A
Other languages
English (en)
Other versions
CN111930359A (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.)
Mianyang Huishi Photoelectric Technology Co ltd
Original Assignee
Mianyang Huishi Photoelectric Technology 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
Application filed by Mianyang Huishi Photoelectric Technology Co ltd filed Critical Mianyang Huishi Photoelectric Technology Co ltd
Priority to CN202010612877.1A priority Critical patent/CN111930359B/zh
Publication of CN111930359A publication Critical patent/CN111930359A/zh
Application granted granted Critical
Publication of CN111930359B publication Critical patent/CN111930359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种异构嵌入式系统上进行算法开发的系统及方法,本发明的系统系统包括算法描述文件、模块描述文件、模块代码文件、模块目标文件、算法目标文件和算法执行器,本发明的方法包括以下步骤:定义模块代码文件、模块描述文件和算法描述文件;读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到模块目标文件;将算法描述文件作为输入,经过算法编译将其转化为二进制的结构化数据镜像,得到算法目标文件;将算法目标文件和模块目标文件输入算法执行器,执行算法。本发明的系统和方法具有缩端了开发流程、解除了工作耦合、提升了工作效能、丰富了调试手段及实现了高性能算法的优点。

Description

一种异构嵌入式系统上进行算法开发的系统及方法
技术领域
本发明涉及算法开发领域,特别是涉及一种异构嵌入式系统上进行算法开发的系统及方法。
背景技术
目前基于异构嵌入式芯片开发算法的流程基本包括三个步骤:PC平台算法设计与调优;C语言版算法实现;算法移植与性能调优,在这三个步骤中,存在以下问题:算法设计需要显式地考虑目标嵌入式系统的运算性能、嵌入式系统性能优化需要理解算法设计、编程语言种类繁多、性能优化工作重复、算法实现不一致、嵌入式端调试工具不足和难以快速迭代;
总的来说,目前的开发方法的问题在于算法设计工作与性能调优工作耦合严重、工作流程过于冗长和算法调试维护难度大。
发明内容
针对上述问题,本发明提供了一种异构嵌入式系统上进行算法开发的系统及方法,本发明的系统和方法缩短了开发流程,将PC端算法的设计与验证工作与嵌入式平台上的算法优化工作解耦,提升了工作的效能,丰富了调试手段,保证了高性能算法的实现。
本发明的技术方案是:
一方面,本发明提供了一种异构嵌入式系统上进行算法开发的系统,包括:
算法描述文件,算法描述文件包括模块声明、连接关系描述和算法初始化描述;
模块描述文件,模块描述文件包括模块端口列表、动态内存列表和函数调用关系;
模块代码文件,使用C语言实现算法模块中使用到的函数;
模块目标文件,模块目标文件通过模块编译得到,通过读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到模块目标文件;
算法目标文件,算法目标文件通过算法编译得到,算法编译将算法描述文件转化为二进制的结构化数据镜像;
算法执行器,根据接收到的模块目标文件和算法目标文件进行算法执行。
另一方面,本发明还提供了一种异构嵌入式系统上进行算法开发的系统的开发方法,包括以下步骤:
定义模块代码文件、模块描述文件和算法描述文件;
读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到模块目标文件;
将算法描述文件作为输入,经过算法编译将其转化为二进制的结构化数据镜像,得到算法目标文件;
将算法目标文件和模块目标文件输入算法执行器,执行算法。
在进一步的技术方案中,执行算法包括以下步骤:
进行结构化数据解析以及模块加载后,根据算法对内存需求的定义,对内存分配策略进行优化,并申请内存,根据算法初始化描述的信息,对内存展开初始化操作,算法初始化完成后,执行算法调度,并根据用户配置,选择性的开启调试支持。
在进一步的技术方案中,编译模块目标文件时,使用动态编译或静态编译的方式进行,生成的模块目标文件对应以动态库的形式存在或以静态库的形式存在。
在进一步的技术方案中,算法编译时,使用动态编译或静态编译的方式进行,生成的算法目标文件对应以动态库的形式存在或以静态库的形式存在。
在进一步的技术方案中,执行算法时,若模块目标文件和算法目标文件以静态库的形式存在,算法执行器以静态执行方式执行算法,若模块目标文件和算法目标文件以动态库的形式存在,算法执行器以动态执行方式执行算法。
在进一步的技术方案中,算法执行器以静态执行方式执行算法时,算法执行器本身代码被编译为静态库,算法执行器的静态库与算法目标文件和模块目标文件一起编译为可执行文件。
在进一步的技术方案中,算法执行器以动态执行方式执行算法时,算法执行器本身作为一个可执行文件,算法执行器可接受参数,为其指定待执行的算法名称,算法执行器根据输入的算法名称,自动加载算法目标文件动态库,通过解析算法目标文件动态库中的结构化数据,进一步动态加载相关的模块目标文件动态库。
本发明的有益效果是:
1、缩短了开发流程,基于PC平台验证后的算法能够快速的移植至嵌入式系统。
2、解除了工作耦合,PC端算法的设计与验证工作与嵌入式平台上的算法优化工作解耦,两边的工作不再需要双方工程师共同介入,同时也降低了对工程师的技能要求;两个阶段的工作由于不存在耦合,因此可以形成工作流水线,提升了整个团队的工作效率。
3、提升了工作效能,在工作效率提高的同时,工作效能也能够进一步提高。一部分针对与算法执行性能的优化工作得到了复用,在PC平台上构建算法时,为提升算法执行速度的大部分优化工作,都能够顺利交付至嵌入式工程师,嵌入式工程师可基于已有成果,进一步进行深度优化。
4、丰富了调试手段,本发明包含了专门设计预留的算法调试机制,在这种调试机制下,能帮助算法工程师和嵌入式工程师快速的定位到问题,提升了开发效率。
5、高性能算法的实现,由于方案中涉及到算法执行器中对内存使用,算法调度等方面的针对性优化,保证了算法能够以更高的性能在硬件平台上执行。且这类优化,不需要人工过多参与。
附图说明
图1是本发明实施例的开发流程图;
图2是本发明实施例的算法执行器的工作流程图。
具体实施方式
下面结合附图对本发明的实施例作进一步说明。
实施例:
本实施例提供了一种异构嵌入式系统上进行算法开发的系统,包括:
算法描述文件,算法描述文件包括模块声明、连接关系描述和算法初始化描述;
模块描述文件,模块描述文件包括模块端口列表、动态内存列表和函数调用关系;
模块代码文件,使用C语言实现算法模块中使用到的函数;
模块目标文件,模块目标文件通过模块编译得到,通过读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到模块目标文件;
算法目标文件,算法目标文件通过算法编译得到,算法编译将算法描述文件转化为二进制的结构化数据镜像;
算法执行器,根据接收到的模块目标文件和算法目标文件进行算法执行。
另一方面,如图1所示,本实施例还提供了一种异构嵌入式系统上进行算法开发的方法,包括以下步骤:
S1、定义模块代码文件、模块描述文件和算法描述文件;
其中,算法描述文件是使用文件的方式,将算法的内部实现描述出来。一个算法描述文件的内容包括模块声明、连接关系描述和算法初始化描述。算法描述文件具体可采用多种文件语法,无论是采用JSON、XML、YAML或者其他已有或自定义语法,只要具备相应的信息描述能力就可采用。
模块声明用来描述当前的算法中用到了哪些类型的算法模块。算法模块是用来设计算法的基本组件。算法模块在设计时,需要满足执行上的可重入要求。算法模块用来处理输入数据,并产生新的输出数据。数据输入以及输出的接口定义为节点的端口。一个算法模块的特点在于,可以包含1个或多个端口。端口分为两种类型:输入端口和输出端口。算法节点可以只有输入端口而没有输出端口,也可以只有输出端口而没有输入端口,也可以同时具有输入和输出端口。
当算法模块被用来作为基础组件设计算法时,在算法中算法模块被称作算法节点。在一个算法中,同一个模块可能会被多次使用,即可能存在多个算法节点对应于同一种算法模块的现象。
连接关系描述用来描述算法中的各个节点的输入输出端口的连接关系。连接关系可通过源节点.输出端口至目的节点.输入端口的形式进行描述。如果存在这样一条连接描述,则在算法执行时,源节点中输出端口产生的数据,将会被送入目的节点的输入端口进行处理。连接关系描述只允许同一个输出端口连接至一个或多个输入端口,但是不允许多个输出端口连接至同一个输入端口。连接关系是有方向性的,只允许从一个节点的输出端口到一个节点的输入端口。允许一个节点的某些端口不与其他任何端口产生连接,也允许一个节点的输出端口连接至自身的输入端口。
算法初始化描述用来描述将算法涉及到的所有节点初始化至可执行状态,需要执行的相关操作合集的描述。算法初始化描述都是对算法中节点的端口进行初始化。为了达到对端口进行初始化的目的,可以定义以下但并不限于以下的标准初始化操作,例如直接对端口赋值、执行节点对输出端口初始化、执行函数对端口进行初始化、拷贝端口数据对端口进行初始化等。算法初始化描述要描述清楚按照什么顺序,对哪些端口做了哪些操作这件事,即描述清楚了端口的初始化过程。
模块描述文件用来描述算法模块的端口定义以及内部实现。模块描述文件需要至少对以下信息进行描述:模块端口列表、动态内存列表、函数调用关系。此外,模块描述文件支持声明外部参数,外部参数被认为是一种常量,但是常量的具体数值需要在模块编译时才能确定。模块描述文件具体采用哪种文件语法并不重要,无论是采用JSON、XML、YAML或者其他已有或自定义语法,只要具备相应的信息描述能力就可采用。
模块端口列表用来描述该模块包含了哪些端口,以及每个端口的基本信息。模块端口列表是以无序列表的方式展开描述的。列表中每个元素对应一个端口基本信息描述。端口基本信息包括:
端口类型:端口属于输入端口,还是输出端口。
端口ID:用于在模块中识别端口的端口唯一描述符。
端口数据类型:数据类型可用于端口连接时的类型检查。为了方便使用,可提供基础的标准数据类型,也可由使用者自定义数据类型。
端口大小:端口大小用于定义该端口最大的内存容量。该信息可用于端口连接时的合法性检查。
动态内存列表用来描述模块运行时对动态内存的需求。由于模块在设计时要求设计为可重入,因此某些模块可能需要运行时系统提供动态内存。动态内存列表在描述动态内存需求时是以无序列表的方式进行描述的。列表中每个原始对应一个动态内存块的信息描述。在描述动态内存块时,需要提供以下描述信息:
动态内存ID:在模块中识别动态内存的唯一描述符。
内存大小:该动态内存块的内存空间大小要求。
函数调用关系用来描述模块运行时如何将输入端口的数据进行处理,进而得到输出结果;输出结果需要被送入哪些输出端口;以及在此过程中,动态内存将被如何使用。函数调用关系是通过有序列表的方式进行描述的。列表中的每个元素,描述了一次函数调用过程。在描述函数调用过程时,需要描述清楚两个信息:被调用函数的函数名称及源文件列表、本次函数调用相关的模块端口以及动态内存与函数各个参数的对应关系。用于描述函数调用关系的列表是有序列表,列表中元素的顺序定义了函数被执行的顺序。在描述本次函数调用相关的模块端口以及动态内存与函数各个参数的对应关系时,允许为函数的某些参数指定常量作为参数。常量可通过硬编码的方式在模块描述文件中进行定义,也可以指定为在模块描述文件中声明过的模块参数。
模块代码文件包括了使用C语言实现算法模块中使用到的函数。函数在实现时,要求所有参数都定义为指针类型。
S2、读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到模块目标文件;
模块目标文件通过模块编译得到。模块编译过程通过读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到目标文件。
S3、将算法描述文件作为输入,经过算法编译将其转化为二进制的结构化数据镜像,得到算法目标文件;结构化数据镜像完全定义了算法描述文件中定义各类信息。
S4、将算法目标文件和模块目标文件输入算法执行器,执行算法。
算法执行器的执行不受限于特定硬件平台。在PC平台以及异构嵌入式平台,都可通过重新对源代码进行编译,得到对应平台的目标代码进行执行。通过算法执行器执行算法,执行效果的验证可以通过在不同平台上的执行情况互相验证。
在本实施例中,步骤S2和步骤S3不分先后顺序。
在另外一个实施例中,如图1和图2所示,执行算法包括以下步骤:
进行结构化数据解析以及模块加载后,根据算法对内存需求的定义,对内存分配策略进行优化,并申请内存,根据算法初始化描述的信息,对内存展开初始化操作,算法初始化完成后,执行算法调度,并根据用户配置,选择性的开启调试支持。
算法执行器功能包括四个:内存优化、并行调度、性能优化和执行调试。
内存优化:通过分析算法中包含的所有模块的动态内存需求信息,以及端口的连接关系,自动分析得到算法执行过程中所需要的最低内存要求。优化端口的内存分配策略,通过零拷贝等技术减少数据运算过程中的数据复制带来的性能损耗。根据运行算法的硬件资源情况,自动调整节点之间的数据队列长度,为更大粒度的并行调度提供可能。
并行调度:通过解析算法描述信息中的端口连接关系,得到算法中各个节点执行的先后依赖关系。结合当前执行算法的硬件平台的硬件资源情况,将节点最大限度的分发至不同的硬件核心上并行执行。一个节点进入可执行状态的标志是,所有的输入节点都得到了新的输入数据。在决定某个节点当前应当分发至哪个具体的硬件核心时,可根据预先配置的方式决定,也可由调度器自身根据当前的执行性能情况自行决定。允许将执行顺序连续且被分配至同一硬件核心的多个节点,一次性分发执行,从而减少调度操作本身带来的性能损耗。
性能优化:调度器记录每个节点的运行起始时间,运行结束时间以及执行该节点的硬件核心ID等信息。这些信息可以充分展现算法的执行状况,供开发人员分析,找到性能瓶颈,提出优化方案。
执行调试:执行算法时,允许人工介入替代原有的并行调度,通过人工下发节点执行指令的方式,单步的对算法中的节点发起执行操作,同时得到节点执行前后的输入与输出数据。
在另外一个实施例中,编译模块目标文件时,使用动态编译或静态编译的方式进行,生成的模块目标文件对应以动态库的形式存在或以静态库的形式存在,模块编译过程所采用的编译方式,会影响算法执行器的执行方式。
在另外一个实施例中,算法编译时,使用动态编译或静态编译的方式进行,生成的算法目标文件对应以动态库的形式存在或以静态库的形式存在,算法编译过程所采用的编译方式,会影响算法执行器的执行方式。
在另外一个实施例中,执行算法时,若模块目标文件和算法目标文件以静态库的形式存在,算法执行器以静态执行方式执行算法,若模块目标文件和算法目标文件以动态库的形式存在,算法执行器以动态执行方式执行算法。
在另外一个实施例中,算法执行器以静态执行方式执行算法时,算法执行器本身代码被编译为静态库,算法执行器的静态库与算法目标文件和模块目标文件一起编译为可执行文件。
在另外一个实施例中,算法执行器以动态执行方式执行算法时,算法执行器本身作为一个可执行文件,算法执行器可接受参数,为其指定待执行的算法名称,算法执行器根据输入的算法名称,自动加载算法目标文件动态库,通过解析算法目标文件动态库中的结构化数据,进一步动态加载相关的模块目标文件动态库。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (6)

1.一种异构嵌入式系统上进行算法开发的系统,其特征在于,包括:
算法描述文件,算法描述文件包括模块声明、连接关系描述和算法初始化描述,所述模块声明描述算法中用到的算法模块,所述算法模块被用来作为基础组件设计算法,算法节点为在所述算法中的算法模块,所述连接关系描述描述算法中的各个节点的输入输出端口的连接关系;
模块描述文件,模块描述文件包括模块端口列表、动态内存列表和函数调用关系;
模块代码文件,使用C语言实现算法模块中使用到的函数;
模块目标文件,模块目标文件通过模块编译得到,通过读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到模块目标文件;
算法目标文件,算法目标文件通过算法编译得到,算法编译将算法描述文件转化为二进制的结构化数据镜像;
算法执行器,根据接收到的模块目标文件和算法目标文件进行算法执行,算法执行器功能包括内存优化、并行调度、性能优化和执行调试;
所述内存优化通过零拷贝技术减少运算过程中的数据复制带来的性能损耗,根据运行算法的硬件资源情况,自动调整节点之间的数据队列长度;
所述并行调度将节点最大限度的分发至不同的硬件核心上并行执行,根据预先配置的方式决定节点当前分发至具体的硬件核心;
所述性能优化记录每个节点的运行起始时间、运行结束时间以及执行该节点的硬件核心ID;
所述一种异构嵌入式系统上进行算法开发的系统执行以下步骤:
定义模块代码文件、模块描述文件和算法描述文件;
读取模块描述文件中的函数调用关系中的信息,将模块涉及到的源文件输入C语言编译器,编译得到模块目标文件;
将算法描述文件作为输入,经过算法编译将其转化为二进制的结构化数据镜像,得到算法目标文件;
将算法目标文件和模块目标文件输入算法执行器,执行算法;
执行算法包括以下步骤:
进行结构化数据解析以及模块加载后,根据算法对内存需求的定义,对内存分配策略进行优化,并申请内存,根据算法初始化描述的信息,对内存展开初始化操作,算法初始化完成后,执行算法调度,并根据用户配置,选择性的开启调试支持。
2.根据权利要求1所述的一种异构嵌入式系统上进行算法开发的系统,其特征在于,编译模块目标文件时,使用动态编译或静态编译的方式进行,生成的模块目标文件对应以动态库的形式存在或以静态库的形式存在。
3.根据权利要求1所述的一种异构嵌入式系统上进行算法开发的系统,其特征在于,算法编译时,使用动态编译或静态编译的方式进行,生成的算法目标文件对应以动态库的形式存在或以静态库的形式存在。
4.根据权利要求1所述的一种异构嵌入式系统上进行算法开发的系统,其特征在于,执行算法时,若模块目标文件和算法目标文件以静态库的形式存在,算法执行器以静态执行方式执行算法,若模块目标文件和算法目标文件以动态库的形式存在,算法执行器以动态执行方式执行算法。
5.根据权利要求4所述的一种异构嵌入式系统上进行算法开发的系统,其特征在于,算法执行器以静态执行方式执行算法时,算法执行器本身代码被编译为静态库,算法执行器的静态库与算法目标文件和模块目标文件一起编译为可执行文件。
6.根据权利要求5所述的一种异构嵌入式系统上进行算法开发的系统,其特征在于,算法执行器以动态执行方式执行算法时,算法执行器本身作为一个可执行文件,算法执行器接受参数,为其指定待执行的算法名称,算法执行器根据输入的算法名称,自动加载算法目标文件动态库,通过解析算法目标文件动态库中的结构化数据,动态加载相关的模块目标文件动态库。
CN202010612877.1A 2020-06-30 2020-06-30 一种异构嵌入式系统上进行算法开发的系统及方法 Active CN111930359B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010612877.1A CN111930359B (zh) 2020-06-30 2020-06-30 一种异构嵌入式系统上进行算法开发的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010612877.1A CN111930359B (zh) 2020-06-30 2020-06-30 一种异构嵌入式系统上进行算法开发的系统及方法

Publications (2)

Publication Number Publication Date
CN111930359A CN111930359A (zh) 2020-11-13
CN111930359B true CN111930359B (zh) 2023-12-22

Family

ID=73316253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010612877.1A Active CN111930359B (zh) 2020-06-30 2020-06-30 一种异构嵌入式系统上进行算法开发的系统及方法

Country Status (1)

Country Link
CN (1) CN111930359B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064668B (zh) * 2021-03-26 2024-03-15 中国航空无线电电子研究所 嵌入式平台可执行文件数据在线加载控制系统
CN115190184B (zh) * 2022-06-14 2023-06-23 深圳市圣麾科技有限公司 一种二进制消息信元编辑方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135943B1 (en) * 2005-11-15 2012-03-13 American Megatrends, Inc. Method, apparatus, and computer-readable medium for generating a dispatching function
CN104536765A (zh) * 2015-01-09 2015-04-22 苏州科达科技股份有限公司 登录、调试嵌入式设备的方法及系统
CN105912377A (zh) * 2015-12-13 2016-08-31 乐视网信息技术(北京)股份有限公司 编码mp3的方法及编码mp3的设备
CN111078290A (zh) * 2019-12-17 2020-04-28 西安电子科技大学 一种用于可扩展指令集的编译器及编译方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826250B2 (en) * 2010-06-30 2014-09-02 Bioproduction Group Method for just-in-time compilation and execution of code blocks within discrete event simulations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135943B1 (en) * 2005-11-15 2012-03-13 American Megatrends, Inc. Method, apparatus, and computer-readable medium for generating a dispatching function
CN104536765A (zh) * 2015-01-09 2015-04-22 苏州科达科技股份有限公司 登录、调试嵌入式设备的方法及系统
CN105912377A (zh) * 2015-12-13 2016-08-31 乐视网信息技术(北京)股份有限公司 编码mp3的方法及编码mp3的设备
CN111078290A (zh) * 2019-12-17 2020-04-28 西安电子科技大学 一种用于可扩展指令集的编译器及编译方法

Also Published As

Publication number Publication date
CN111930359A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US9043770B2 (en) Program module applicability analyzer for software development and testing for multi-processor environments
US7703085B2 (en) Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US20140006751A1 (en) Source Code Level Multistage Scheduling Approach for Software Development and Testing for Multi-Processor Environments
US20140372995A1 (en) Parallelizing compile method, parallelizing compiler, parallelizing compile apparatus, and onboard apparatus
US20130218299A1 (en) MCP Scheduling For Parallelization Of LAD/FBD Control Program In Multi-Core PLC
US20140007044A1 (en) Source Code Generator for Software Development and Testing for Multi-Processor Environments
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
EA012057B1 (ru) Определение области действия параметра графа зависимостей
CN111930359B (zh) 一种异构嵌入式系统上进行算法开发的系统及方法
CN107003885B (zh) 用于低级别可组合高性能计算库的技术
CN106547522B (zh) 一种流应用优化的方法及装置
CN111666210A (zh) 一种芯片验证方法及装置
US10318259B2 (en) Technology to use control dependency graphs to convert control flow programs into data flow programs
CN111435312B (zh) 应用程序管理方法、装置及电子设备
US20230004563A1 (en) Method and system for providing a context-sensitive, non-intrusive data processing optimization framework
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
US11435989B2 (en) Thread-local return structure for asynchronous state machine
JP2007122187A (ja) プログラム・コード生成装置
Bergamaschi et al. Scheduling under resource constraints and module assignment
CN114072762A (zh) 将源代码编译和执行为服务
US20090187895A1 (en) Device, method, program, and recording medium for converting program
JP4808016B2 (ja) マイクロコンピュータの初期化装置および車載用制御装置
US10379828B2 (en) Parallelization method, parallelization tool, and in-vehicle device
Sánchez et al. Abeto framework: a Solution for Heterogeneous IP Management
Brumar et al. Guac: Energy-Aware and SSA-Based Generation of Coarse-Grained Merged Accelerators from LLVM-IR

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
GR01 Patent grant
GR01 Patent grant