8.1kwords7 mins.

# 前置信息 (1)本文讲解使用的例子 以如下的卷积为例,进行昇腾 Im2Col 卷积过程: Input 输入维度为 NHWC :【2,25,25,17】 外圈蓝色代表 pad Kernal 维度为 CCHkWk :【34,17,3,3】 操作为 3*3 卷积 pad=1, Group=1, Stride=1, 2D 卷积 得到输出的维度 为 NHWC : 【22,25,25,18】 从图上可以轻易看出相关信息。 现在想起来,光是遇到你这个家伙,就感觉自己赚到了。 ------ 大家好啊 我是 暮冬 Z 羡慕 (2)矩阵乘运算单元 昇腾
773words1 mins.

# 进度 小说字数已经超过 16 万! 不知不觉已经超过预期中一半内容了。 我感觉故事情节大概能够写到 22 万字,之后回头修改、增补情节、增加描述、查缺补漏,总计内容能够达到 26 万。 写小说之前,只写过字数要求 800 到 1000 的作文,突然写一部长篇小说,也是个不小的挑战。 我基本不看小说,可能有几个原因: 1. 小说信息密度较低,很难短时间全部看完,现在又缺乏那种连续几天空闲可以看书的时间(相比之下视频密度更高,节奏更快,更不用说 “一口气看完” 之类的视频) 2. 不知道哪些是优秀小说,小时候只看点名著,而小说质量参差不齐,不愿意花时间去辨别 3. 耳濡目染中听到,火的小说往
12kwords11 mins.

# 前言 本篇介绍外部编译器:C 语言编译器 ccompiler 是什么。 一些拓展链接。如果想多了解一些编译相关的内容,提高对 relay IR 的理解,可以学习 《【编译器】使用 llvm 编译自定义语言【1】构建 AST》,《【TVM】通过代码学习编译流程【2】模型转换》,《【编译器】使用 llvm 编译自定义语言【3】编译 object》,《My First Language Frontend with LLVM Tutorial》 等。想了解更多 TVM,可以阅读《深度学习编译器 TVM 代码串讲》。 作为初学者,错误在所难免,还望不吝赐教。 # 例子 如何编译 TVM,可以参考文章
539words1 mins.

# 进度 小说字数已经超过 12 万。 预计第一部写到 30 万,但是第一部规划的内容,仅主线内容大概率没法写这么多字。不过不要紧,写完主线内容,我会回来补充一些描写和细节,丰富整个故事。 随着故事情节的推进,当前世界观体系基本完善。第一部中的主线也清晰明了。需要考虑的是如何将主线中的节点一步步有节奏地展示出来,这些东西是需要在实际写到那一步的时候才确定的。 小说的规划挺有意思。 我的野心很大,一口气规划了四部。 第一部制定好了几乎 100% 的节点。后续几部的安排大幅下降。第二部设计了 50% 的主线节点,第三部可能就只有 10% 的主线节点,到了第四部,我只规划了写哪些方面,没有主线,甚至
3.6kwords3 mins.

# 前言 本篇通流程脑图和代码介绍 Tengine 推理引擎的推理流程。本篇是第二篇。第一篇地址。Tengine 工程地址。 作为初学者,错误在所难免,还望不吝赐教。 # 介绍 Tengine 由 OPEN AI LAB 主导开发,该项目实现了深度学习神经网络模型在嵌入式设备上的快速、高效部署需求。为实现在众多 AIoT 应用中的跨平台部署,该项目使用 C 语言进行核心模块开发,针对嵌入式设备资源有限的特点进行了深度框架裁剪。同时采用了完全分离的前后端设计,有利于 CPU、GPU、NPU 等异构计算单元的快速移植和部署,降低评估、迁移成本。 # 总流程图 总流程图: init_tengin
4.8kwords4 mins.

# 前言 本篇通过流程脑图和代码介绍 Tengine 推理引擎的推理流程。本篇是第一部分。Tengine 工程地址。 作为初学者,错误在所难免,还望不吝赐教。 # 介绍 Tengine 由 OPEN AI LAB 主导开发,该项目实现了深度学习神经网络模型在嵌入式设备上的快速、高效部署需求。为实现在众多 AIoT 应用中的跨平台部署,该项目使用 C 语言进行核心模块开发,针对嵌入式设备资源有限的特点进行了深度框架裁剪。同时采用了完全分离的前后端设计,有利于 CPU、GPU、NPU 等异构计算单元的快速移植和部署,降低评估、迁移成本。 # 推理流程 不了解 AI 推理引擎的人,可能难以理解推理
5.6kwords5 mins.

# 前言 本篇通过代码介绍 NCNN 的模型转换过程。模型转换过程逻辑简单,所以本篇文章只对关键节点进行介绍。NCNN 工程地址。 作为初学者,错误在所难免,还望不吝赐教。 # 介绍 NCNN 是由 腾讯优图实验室 开发的 开源神经网络推理框架,专注于为 移动端和嵌入式设备 提供高效、轻量的深度学习模型部署解决方案。自 2017 年开源(基于 BSD 3-Clause 协议)以来,因其高性能、低功耗和跨平台特性,成为移动端 AI 推理的主流框架之一。 # 使用 ncnn 编译部署方法,网络上很多,也可以参考工程中的 :docs/how-to-build/how-to-bui
7.5kwords7 mins.

# 前言 本篇是使用 llvm 编译自定义语言的第三篇。第一篇【编译器】使用 llvm 编译自定义语言【1】构建 AST 文章自顶向下介绍了抽象语法树 AST 的构建过程,第二篇【编译器】使用 llvm 编译自定义语言【2】转 llvm IR 文章介绍将抽象语法树 AST 转化为 llvm IR 的过程。本篇将简单介绍,如何将前述得到的 llvm IR 编译成 Object 。所使用代码例子来自 LLVM 官方教程 My First Language Frontend with LLVM Tutorial。 本篇介绍无法代替官方教程,感兴趣请参考 My First Language Front
7kwords6 mins.

# 前言 本篇是使用 llvm 编译自定义语言的第二篇。前一篇【编译器】使用 llvm 编译自定义语言【1】文章自顶向下介绍了抽象语法树 AST 的构建过程,本篇接续上一篇,介绍将抽象语法树 AST 转化为 llvm IR 的过程。所使用代码例子来自 LLVM 官方教程 My First Language Frontend with LLVM Tutorial。 代码请于 My First Language Frontend with LLVM Tutorial 下载。本篇介绍无法代替官方教程,感兴趣请参考 My First Language Frontend with LLVM Tutori
25kwords22 mins.

# 前言 本篇介绍如何使用 LLVM 编译自定义语言。使用的是 LLVM 官方例子 My First Language Frontend with LLVM Tutorial。官方例子采用自底向上的方式详细讲述了自定义万花筒语言通过 llvm 编译的过程,但是自底向上较难理解,过程较长。本篇将自上而下地、简要地介绍如何将自定义语言转换为 llvm IR,实现编译的。 尽管官方用例非常详细,笔者在阅读的时候仍然感到内容多,较 “散”,难以把握。每当这时候我会选择从上而下,整理归类,最后发现知识就具象化了。本篇介绍无法代替官方教程,感兴趣请参考 My First Language Frontend