10 2022 档案

摘要:本节将继续学习逻辑指令(and、or、xor)和移位指令(sll、srl、sra) 逻辑指令 从CPU芯片电路角度来看,其实CPU更擅长指令逻辑操作,如与、或、异或 RISC-V指令集中包含了三种逻辑指令,这些指令又分为立即数版本和寄存器版本,分别是andi、and、ori、or、xori、xor这 阅读全文
posted @ 2022-10-05 23:28 牛犁heart 阅读(7739) 评论(0) 推荐(0) 编辑
摘要:以 C++ 为底层基础,Python 作为上层建筑,共同搭建起高性能、易维护、可扩展的混合系统。 Python 本身就有 C 接口,可以用 C 语言编写扩展模块,把一些低效耗时的功能改用 C 实现,有的时候,会把整体性能提升几倍甚至几十倍。 使用 C++ 来开发 Python 扩展。认为其中最好的一 阅读全文
posted @ 2022-10-05 20:26 牛犁heart 阅读(1913) 评论(0) 推荐(0) 编辑
摘要:schedule与计算逻辑分离是自动代码生成技术的核心概念,由MIT CASIL组的[Jonathan Ragan-Kelley](http://people.csail.mit.edu/jrk/)在2012年发表在SIGGRAPH上的文章率先提出,然后在2013年发表在PLDI上的文章给出了sch 阅读全文
posted @ 2022-10-05 17:55 牛犁heart 阅读(1150) 评论(0) 推荐(0) 编辑
摘要:TVM源码中涉及到表达式遍历的地方,一般是适用VisitExpr接口进行,这个接口设计TVM的visitor模式,具体分析可参考:TVM:visitor设计模式 基类tvm::relay::ExprFunctor 适用visitor遍历的起点是调用VisitExpr接口,看下基类tvm::relay 阅读全文
posted @ 2022-10-04 22:49 牛犁heart 阅读(496) 评论(0) 推荐(1) 编辑
摘要:visitor模式,因为它在编译器的框架中应用的广泛,在TVM中也是无处不在。 visitor模式介绍 Visitor(访问者)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式 阅读全文
posted @ 2022-10-04 22:00 牛犁heart 阅读(486) 评论(0) 推荐(1) 编辑
摘要:访问者模式诞生的思维过程 访问者模式难理解、难实现,应用它会导致代码的可读性、可维护性变差,所以,访问者模式在实际的软件开发中很少被用到,在没有特别必要的情况下,建议你不要使用访问者模式。 带你"发明"访问者模式 假设我们从网站上爬取了很多资源文件,它们的格式有三种:PDF、PPT、Word。我们现 阅读全文
posted @ 2022-10-04 19:07 牛犁heart 阅读(122) 评论(0) 推荐(0) 编辑
摘要:Object.h概述 命名空间: TVM::runtime 文件中包含的结构: 1.结构体TypeIndex 2.类Object 3.类ObjectPtr 4.类ObjectRef 5.结构体ObjectPtrHash 6.结构体ObjectPtrEqual 7.宏 结构体TypeIndex 该结构 阅读全文
posted @ 2022-10-04 16:33 牛犁heart 阅读(288) 评论(0) 推荐(0) 编辑
摘要:本节来看下**RV32I(32位整数指令集)**的算数指令,先学习下加减指令(add、sub),接着了解下数值比较指令(slt),这些指令都有两个版本:一个是立即数版本,一个是寄存器版本 RISCV-V指令格式 RISC-V 机器指令是一种三操作数指令,其对应的汇编语句格式如下: 指令助记符 目标寄 阅读全文
posted @ 2022-10-03 23:05 牛犁heart 阅读(9096) 评论(2) 推荐(0) 编辑
摘要:CPU中包含了控制部件和运算部件,即中央处理器。1971 年,Intel 将运算器和控制器集成在一个芯片上,称为 4004 微处理器,这标志着 CPU 的诞生。到了 1978 年,开发的 8086 处理器奠定了 X86 指令集架构。此后,8086 系列处理器被广泛应用于个人计算机以及高性能服务器中。 阅读全文
posted @ 2022-10-03 22:21 牛犁heart 阅读(1395) 评论(0) 推荐(0) 编辑
摘要:C变量 C 语言是如何把各种类型的变量转换成对应的汇编语言呢? 高级语言更容易被工程师理解,而汇编语言这样的低级语言,则更容易被机器解读。这是因为汇编语言里的大部分内容都跟机器语言一一对应,你可以这样理解,汇编语言就是把机器语言符号化。 汇编器会将汇编源代码生成二进制程序文件。在程序二进制文件里有很 阅读全文
posted @ 2022-10-03 11:37 牛犁heart 阅读(1095) 评论(0) 推荐(0) 编辑
摘要:平时我们做编程的时候,底层 CPU 如何执行指令已经被封装好了,因此你很少会想到把底层和语言编译联系在一起。但从我自己学习各种编程语言的经历看,从这样一个全新视角重新剖析 C 语言,有助于加深你对它的理解。 本节首先要了解 CPU 执行指令的过程,然后再来分析 C 语言的编译过程,掌握 C 语言的重 阅读全文
posted @ 2022-10-02 12:19 牛犁heart 阅读(381) 评论(0) 推荐(1) 编辑
摘要:进程之间是独立的、隔离的,使得应用程序之间绝对不可以互相"侵犯"各自的领地。 但,应用程序之间有时是需要互相通信,相互写作,才能完成相关的功能,这就不得不由操作系统介入,实现一种通信机制。在这种通信机制的监管下,让应用程序之间实现通信。 Linux实现了诸如管道、信号、消息队列、共享内存,这就是Li 阅读全文
posted @ 2022-10-01 15:03 牛犁heart 阅读(435) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示