您好,欢迎来到聚文网。 登录 免费注册
TVM编译器原理与实践

TVM编译器原理与实践

  • 字数: 497
  • 出版社: 机械工业
  • 作者: 吴建明 吴一昊
  • 商品条码: 9787111739128
  • 版次: 1
  • 开本: 16开
  • 页数: 305
  • 出版年份: 2024
  • 印次: 1
定价:¥119 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
TVM(Tensor Virtual Machine, 张量虚拟机)是一种开源的模型编译框架,旨在将机器学习模型自动编译成可供下层硬件执行的机器语言,从而利用多种类型的算力。其工作原理是,先将深度学习模型进行优化推理、内存管理与线程调度,再借用LLVM框架将模型部署在CPU、GPU、FPGA、ARM等硬件设备上。 本书全面解析TVM的主要功能,帮助读者理解TVM工作原理,以及使用 TVM对深度学习与机器学习进行优化与部署。 本书结合作者多年的工作与学习经验,力求将TVM基础理论与案例实践融合在一起进行详细讲解。全书共9章,包括TVM基本知识,使用TVM开发,算子融合与图优化,TVM量化技术,TVM 优化调度,Relay IR,代码生成,后端部署与OpenCL(Open Computing Language,开放运算语言),自动调度、自动搜索与成本模型。各章除了包含重要的知识点和实践技能外,还配备了精心挑选的典型案例。 本书适合从事AI算法、软件、编译器开发以及硬件开发等专业的工程技术人员、科研工作人员、技术管理人员阅读,也可以作为编译器相关专业高校师生的参考用书。
作者简介
吴建明,上海交通大学模式识别与智能系统专业博士毕业。长期从事人工智能芯片设计,尤其擅长TVM/LLVM编译器、AI框架、自动驾驶、芯片制造,嵌入式系统等领域的理论研究与技术创新。长期在一线工作,包括产品设计与代码实现等,主持和参与过30多项产品的研发。还参与过国家自然科学基金、上海市科委项目,并在核心期刊公开发表过8篇论文,其中6篇是第一作者。
目录
第1章 TVM基本知识/ 1.1TVM基本原理/ 1.1.1TVM概述/ 1.1.2TVM 模型优化部署概述/ 1.2TVM编译过程/ 1.2.1编译流程/ 1.2.2TVM编译数据结构/ 1.2.3TVM编译数据处理/ 1.2.4TVM的Pass过程/ 1.3TVM开源工程逻辑架构/ 1.3.1代码库代码结构/ 1.3.2代码自动内核/ 1.4TVM应用支持/ 1.4.1TVM的工作流程/ 1.4.2支持多语言与多平台/ 1.4.3TVM应用场景/ 1.4.4TVM优化模型推理/ 1.4.5TVM编译器与运行时组件/ 1.4.6TVM运行时主要模块/ 1.4.7TVM简单代码生成编译示例/ 1.4.8TVM各模块之间的关系/ 1.5TVM特色与挑战/ 1.5.1TVM特色/ 1.5.2支持多种后端设备/ 1.5.3TVM应对的挑战/ 第2章 使用TVM开发/ 2.1配置TVM环境/ 2.1.1apache TVM源码下载/ 2.1.2配置TVM的开发环境/ 2.1.3TVM conda环境使用方法/ 2.1.4编译实现/ 2.1.5导入模型方法/ 2.2在conda环境编译优化TVM yolov3示例/ 2.3Python与C++的调用关系/ 2.3.1TVM中底层C++数据结构/ 2.3.2进行函数注册/ 2.3.3上层Python调用/ 2.4TVM自定义代码示例/ 2.4.1TVM如何添加代码/ 2.4.2TVM代码生成实现示例/ 2.5用TVM实现算法全流程/ 2.5.1配置张量与创建调度/ 2.5.2进行降级算子优化/ 2.5.3构建host目标程序/ 2.5.4实现后端代码生成/ 第3章 算子融合与图优化/ 3.1算子概述/ 3.1.1TVM融合组件示例/ 3.1.2优化计算图/ 3.2图GCN融合/ 3.2.1图的概念/ 3.2.2深度学习新特征/ 3.3图融合GCN示例/ 3.3.1GCN的PyTorch实现/ 3.3.2融合BN与Conv层/ 3.4TVM图优化与算子融合/ 3.4.1图与算子优化/ 3.4.2自定义算子/ 3.4.3算子融合步骤/ 3.4.4向Relay中添加operator/ 3.5端到端优化/ 3.5.1 AI框架概述/ 3.5.2计算图优化层/ 3.5.3TVM算子融合的4种方法/ 3.5.4数据布局转换/ 3.5.5张量表达式语言/ 3.5.6调度空间分析/ 3.6 TVM图优化与算子融合方案分析/ 3.6.1图优化框架分析/ 3.6.2TVM优化基础分析/ 3.6.3TVM优化参数/ 3.6.4算子优化图示/ 3.6.5自定义图级优化/ 3.7支配树技术/ 3.7.1支配树概述/ 3.7.2算子融合方案及示例/ 3.8控制流与优化器/ 3.8.1控制流/ 3.8.2优化器/ 3.9TVM存储与调度/ 3.9.1TVM编译器优化/ 3.9.2图结构基本优化/ 3.9.3张量计算/ 3.10多功能张量加速器VTA/ 3.10.1VTA-TVM 硬件-软件堆栈/ 3.10.2VTA主要功能/ 3.10.3VTA示例/ 3.10.4VTA计算模块/ 3.10.5VTA控制/ 3.10.6microTVM模型/ 3.11TVM代码库结构与示例/ 3.11.1代码库结构/ 3.11.2张量添加示例/ 3.12主机驱动的执行/ 3.12.1 firmware二进制文件/ 3.12.2计算声明/ 3.12.3数据平铺/ 3.12.4卷积运算/ 3.12.5空间填充/ 第4章 TVM量化技术/ 4.1TVM量化概述/ 4.1.1TVM量化现状/ 4.1.2TVM量化原理/ 4.2int8量化与TVM执行/ 4.2.1两种主要量化方案/ 4.2.2int8量化原理分析/ 4.2.3KL散度计算/ 4.2.4实现int8量化/ 4.3低精度训练与推理/ 4.4NN量化/ 4.4.1神经网络量化概述/ 4.4.2优化数据与网络/ 4.4.3前向推理与反向传播/ 4.5熵校准示例/ 4.6TVM量化流程/ 4.6.1Relay的两种并行量化/ 4.6.2Relay优化Pass方法/ 4.6.3量化处理硬件说明/ 4.6.4阈值估计方案/ 4.6.5模拟量化误差/ 4.6.6尺度计算/ 4.6.7数据类型分配/ 4.6.8数据类型分配日志/ 4.6.9神经网络低精度量化/ 4.7TVM量化程序分析/ 第5章 TVM优化调度/ 5.1TVM 运行时系统/ 5.1.1TVM 运行时系统框架/ 5.1.2PackedFunc编译与部署/ 5.1.3构建 PackedFunc模块/ 5.1.4远程部署方法/ 5.1.5TVM 对象与编译器分析/ 5.2自动微分静态图与动态图/ 5.2.1计算图分类/ 5.2.2动态图实现示例/ 5.3机器学习自动微分/ 5.3.1微分方法/ 5.3.2手动微分/ 5.3.3数值微分/ 5.3.4符号微分/ 5.3.5自动微分/ 5.3.6自动微分实现示例/ 5.4稀疏矩阵分析/ 5.4.1稀疏矩阵概念/ 5.4.2稀疏矩阵优化/ 5.4.3特定矩阵压缩存储/ 5.4.4稀疏矩阵实现示例/ 5.5TVM张量计算分析/ 5.5.1生成张量运算/ 5.5.2嵌套并行与协作/ 5.5.3张量化计算/ 5.5.4显式内存延迟隐藏/ 第6章 Relay IR/ 6.1TVM数据介绍/ 6.1.1TVM模块框架介绍/ 6.1.2Relay IR原理简介/ 6.1.3构建计算图/ 6.1.4let绑定与作用域/ 6.2IR代码生成/ 6.2.1前端优化/ 6.2.2节点优化/ 6.2.3代数优化/ 6.2.4数据流级别的优化/ 6.3在Relay中注册算子/ 6.3.1添加节点,定义编译参数/ 6.3.2运算类型关系分析/ 6.3.3在C++中进行RELAY_REGISTER_OP宏注册/ 6.3.4算子注册与调度/ 6.3.5注册函数API分析/ 6.3.6将Python API打包/ 6.3.7单元测试分析/ 6.4TVM中IR示例/ 6.4.1IRModule技术分析/ 6.4.2TVM Runtime(运行时)分析/ 6.4.3预测部署实现/ 6.4.4动态图实现/ 6.5TVM支持CUDA架构分析/ 6.5.1CUDA架构基础理论/ 6.5.2CUDA编程模型基础理论/ 6.5.3实现向量加法实例/ 6.5.4实现矩阵乘法实例/ 第7章 代码生成/ 7.1CodeGen基本原理/ 7.1.1TVM代码生成CodeGen/ 7.1.2CodeGen框架流程/ 7.1.3代码生成接口函数/ 7.1.4CodeGen的target.build接口函数/ 7.2CodeGen统一编程/ 7.2.1统一编程基础/ 7.2.2进行CodeGen分析/ 7.2.3实现 CodeGen C举例/ 7.3算子的CodeGen原理与示例/ 7.3.1声明生成函数/ 7.3.2调用生成函数/ 7.3.3生成输出缓冲区/ 7.3.4更新输出缓冲区/ 7.3.5小结/ 7.4如何集成部署CodeGen/ 7.4.1将ASIC加速器部署到TVM/ 7.4.2图注释/ 7.4.3图变换/ 7.4.4运行时机制分析/ 7.5在TVM上集成部署CodeGen示例分析/ 7.6代码生成应用实践/ 7.6.1表达式编译/ 7.6.2编译IRModule方案/ 7.6.3CodeGen 原理:以 CodeGenC为例/ 7.7CodeGen调用关系项目示例分析/ 7.7.1项目代码分析/ 7.7.2内存分配分析/ 第8章 后端部署与OpenCL/ 8.1OpenCL概述与开发示例/ 8.1.1异构并行编程/ 8.1.2OpenCL编程模型/ 8.2OpenCL程序启动与适配/ 8.2.1在FPGA上实现OpenCL标准的优势/ 8.2.2OpenCL与Host流程图/ 8.2.3TVM适配CUDA/ 8.3OpenCL构建编程示例分析/ 8.3.1选择OpenCL平台并创建上下文/ 8.3.2选择设备并创建命令队列/ 8.3.3构建内核程序/ 8.3.4创建内核内存对象/ 8.3.5设置内核数据并执行队列/ 8.3.6读取结果并释放OpenCL资源/ 8.4OpenCL平台编程配置与示例分析/ 8.4.1配置目标平台/ 8.4.2构建运行时流程/ 8.4.3平台编程示例/ 8.5TVM Python中的relay.build示例/ 8.5.1TVM优化model/ 8.5.2构建relay.build调用机制/ 8.6缓存、内存、线程调度/ 8.6.1并行处理/ 8.6.2参数平均模型数据并行化/ 8.6.3TVM性能评估分析/ 8.6.4远程部署感性分析/ 第9章 自动调度、自动搜索与成本模型/ 9.1CPU Auto-scheduling/ 9.1.1 AutoTVM 与Auto-scheduling/ 9.1.2编译器自动优化/ 9.1.3AutoKernel原理分析/ 9.1.4自动调度示例/ 9.2AutoTVM用成本模型自动搜索/ 9.2.1成本模型原理/ 9.2.2AutoTVM自动搜索/ 9.3AutoTVM自动搜索示例/ 9.3.1安装依赖项并导入包/ 9.3.2定义搜索空间/ 9.3.3用成本模型进行搜索处理/ 参考文献/

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网