摘要: 自主数据类型:在TVM中启用自定义数据类型探索 介绍 在设计加速器时,一个重要的决定是如何在硬件中近似地表示实数。这个问题有一个长期的行业标准解决方案:IEEE 754浮点标准.1。然而,当试图通过构建高度专业化的设计来最大限度地利用硬件时,使用通用IEEE 754浮点有意义吗?如果知道工作负载的数 阅读全文
posted @ 2020-12-15 15:39 吴建明wujianming 阅读(127) 评论(0) 推荐(0) 编辑
摘要: TinyML-TVM是如何驯服Tiny的(下) Lazy Execution实际上,随着通信开销开始占主导地位,一旦用户请求,就执行算子的开销变得非常昂贵。可以通过延迟评估直到用户需要调用的结果来提高系统的吞吐量。 从实现的角度来看,现在需要在主机端积累函数调用元数据,然后再将其刷新到设备,而不是急 阅读全文
posted @ 2020-12-15 14:59 吴建明wujianming 阅读(128) 评论(0) 推荐(0) 编辑
摘要: TinyML-TVM是如何驯服Tiny的(上) 低成本、人工智能驱动的消费类设备的激增,导致了ML研究人员和从业者对“裸智能”(低功耗,通常没有操作系统)设备的广泛兴趣。虽然专家已经可以在一些裸机设备上运行某些模型,但是为不同设备集优化模型是一个挑战,通常需要手动优化特定于设备的库。对于那些没有Li 阅读全文
posted @ 2020-12-15 14:53 吴建明wujianming 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 如何在TVM上集成Codegen(下) Bring DNNL to TVM: JSON Codegen/Runtime 现在实现将Relay,序列化为JSON表示的DNNL codegen,然后实现DNNL JSON runtime,反序列化和执行。尝试实现codegen,生成C兼容的程序。 要使T 阅读全文
posted @ 2020-12-15 11:47 吴建明wujianming 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 如何在TVM上集成Codegen(上) 许多常用的深度学习内核,或者提供DNNL或TensorRT等框架和图形引擎,让用户以某种方式描述模型,从而获得高性能。此外,新兴的深度学习加速器也有自己的编译器、内核库或runtime框架。 当用户试图在一个新的内核库或设备上工作时,必须学习一个新的编程接口。 阅读全文
posted @ 2020-12-15 11:37 吴建明wujianming 阅读(610) 评论(0) 推荐(0) 编辑
摘要: CodeGen准备存储库 CodeGen几乎总是与提供用于生成源文件的元数据的存储库结构一起使用,并且许多令牌需要使用存储库结构。 基本要求是有一个结构定义,并且该结构定义包含一个或多个字段定义。有些标记还要求定义键,有些则需要具有结构赋值的文件定义。 如果还没有存储库,则可以通过将现有的记录布局文 阅读全文
posted @ 2020-12-15 09:04 吴建明wujianming 阅读(102) 评论(0) 推荐(0) 编辑
摘要: CodeGen按钮循环 按钮循环是一个模板文件构造,它允许您迭代CodeGen拥有的按钮信息集合。 在按钮循环中处理的按钮的定义可以来自两个位置之一。 如果基于UI工具箱输入窗口定义进行处理,则默认情况下,按钮集合由该输入窗口定义中的按钮确定。否则,按钮集合由名为默认按钮.xml,您将在安装Code 阅读全文
posted @ 2020-12-15 08:44 吴建明wujianming 阅读(71) 评论(0) 推荐(0) 编辑
摘要: CodeGen标记循环 标记循环是一个模板文件构造,它允许您迭代CodeGen拥有的标记信息的集合。为了使用标记循环,必须基于至少定义了一个字段标记的存储库结构生成代码。 标记循环由一对匹配的<Tag_LOOP>和</Tag_LOOP>标记分隔,它们围绕着要为每个标记插入的模板代码。对于结构中的每个 阅读全文
posted @ 2020-12-15 08:29 吴建明wujianming 阅读(147) 评论(0) 推荐(0) 编辑
摘要: CodeGen结构循环回路 structure循环是一个模板文件构造,它允许您迭代CodeGen拥有的有关结构的集合。为了使用结构循环,必须同时基于多个存储库结构生成代码。 CodeGen可以通过以下两种方式之一处理多个结构: •可以在命令行上,在-s命令行选项之后指定多个结构,-ms命令行选项可用 阅读全文
posted @ 2020-12-15 08:21 吴建明wujianming 阅读(74) 评论(0) 推荐(0) 编辑
摘要: CodeGen处理Synergy方法目录 如果Synergy应用程序开发环境包括使用Synergy/DE xfServerPlus,则可以基于Synergy方法目录中包含的元数据生成代码。要启用此功能,必须将方法目录导出到XML文件,然后使用-smc和-interface命令行选项(可选)。 处理单 阅读全文
posted @ 2020-12-15 08:13 吴建明wujianming 阅读(66) 评论(0) 推荐(0) 编辑
摘要: CodeGen用户定义的扩展令牌 用户定义的扩展令牌是一种特殊的令牌,开发人员可以确定令牌的名称以及在代码生成过程中遇到令牌时要插入的值。 CodeGen支持多种机制,允许通过以下方式实现用户定义的令牌: •Environment variables. •Include files. •Comman 阅读全文
posted @ 2020-12-15 07:50 吴建明wujianming 阅读(72) 评论(0) 推荐(0) 编辑
摘要: CodeGen编写自定义表达式标记 CodeGen支持开发人员通过编写plug-in modules插件模块来定义自定义表达式标记的能力,以提供与这些标记相关联的逻辑。这种plug-in modules插件机制的实现方式不需要开发人员编辑核心CodeGen源文件。这一点很重要,因为这意味着它不会妨碍 阅读全文
posted @ 2020-12-15 07:35 吴建明wujianming 阅读(107) 评论(0) 推荐(0) 编辑
摘要: CodeGen CreateFile实用程序 CreateFile实用程序允许根据存储库文件或结构定义创建ISAM文件。 CreateFile实用程序的命令行选项如下: CreateFile -f <fname> | -s <sname> [-out filespec] [-r] [-h] -f < 阅读全文
posted @ 2020-12-15 07:15 吴建明wujianming 阅读(63) 评论(0) 推荐(0) 编辑
摘要: CodeGen融合核心关系循环扩展 Expansion Tokens <HARMONYCORE_RELATION_NAME> 插入当前关系的名称。关系名称将自动生成,但可以由Harmony Core自定义文件中CustomRelationNames属性中的条目覆盖。 替代形式:无 <HARMONYC 阅读全文
posted @ 2020-12-15 07:04 吴建明wujianming 阅读(72) 评论(0) 推荐(0) 编辑
摘要: CodeGen融合核心扩展定制文件 融合核心定制文件 Harmony核心环境的各个方面都可以通过创建一个定制文件来定制,该文件是一个名为Harm的JSON文件onyCoreCustomization.json。必须将此文件与正在使用的CodeGen模板放在同一位置。 自定义文件必须至少包含一个空JS 阅读全文
posted @ 2020-12-15 06:56 吴建明wujianming 阅读(66) 评论(0) 推荐(0) 编辑
摘要: CodeGen API分析 作为使用命令行界面的替代方法,开发人员可以使用核心CodeGen环境编写自定义工具或实用程序来生成代码,从而将CodeGen更紧密地集成到开发环境中。 为了实现这一点,CodeGen提供了一个.NET API,开发人员可以直接对其进行编码以生成代码。CodeGen API 阅读全文
posted @ 2020-12-15 06:36 吴建明wujianming 阅读(100) 评论(0) 推荐(0) 编辑
摘要: CodeGen字段循环Field Loop 字段循环是一个模板文件构造,它允许迭代CodeGen拥有的有关字段的集合。这些字段定义可以来自以下两个位置之一: •如果基于从存储库结构中获取的信息生成代码,则字段集合将基于存储库结构中定义的字段。 •如果根据UI Toolkit输入窗口(在窗口脚本文件中 阅读全文
posted @ 2020-12-15 06:26 吴建明wujianming 阅读(110) 评论(0) 推荐(0) 编辑
摘要: CodeGen概述 CodeGen是在协同开发环境中工作的软件开发人员可以用来生成源代码的工具。该代码可能是Synergy DBL代码,也可能是其他语言的源代码。CodeGen并不局限于为任何特定的开发环境或编程语言生成代码。 当然,你不能仅仅使用CodeGen生成任何你能想象得到的源代码。在生成代 阅读全文
posted @ 2020-12-15 06:06 吴建明wujianming 阅读(2432) 评论(0) 推荐(1) 编辑