- 博客(11)
- 收藏
- 关注
原创 MLIR官方Tutorial学习笔记(三)
这章主要讲解了表达式的匹配重写(pattern match rewrite),有两种方式:通过DRR在td文件中重写,或直接用C++写匹配重写函数。我们这里主要使用第二种方式。因为首先匹配的是selfaddoneOp,所以记得在selfaddoneOp的定义里把“let hasCanonicalizer = 1”加上哦。这样就实现了transpose嵌套的一个匹配重写优化。其中的逻辑我相信聪明的你一眼就懂了。ok了,测试一下:很完美。你问我为什么要这么干?
2024-07-16 20:50:39
477
原创 MLIR官方Tutorials学习笔记(二)
图里说的很明白,三步:定义自己的Dialect,创建自己Dialect Operation的基类,在自己的Dialect里创建各种Operations。之后我们可以使用mlir-tblgen工具搭配-gen-op-decls查看生成的operations C++声明。使用mlir-tblgen工具搭配-gen-op-defs查看生成的operations C++定义。本章主要讲解了如何创建一个自己的Dialect并创建其中的Operations。
2024-07-16 17:28:21
536
原创 MLIR官方Tutorials学习笔记(四)
个人感觉很像C++里的多态性,不同子类通过重写父类函数来实现调用时的不同行为,而这个是不同operations通过在自己的定义里重写interface的方法,来实现使用operations时的不同行为。此时我们的Dialect中有了这个接口,但是还没有应用pass来调用这个接口,我们在toyc.cpp中的passmanager添加MLIR自带的createInlinerPass(),这样pass就可以检查整个dialect中有没有可以应用我们已定义的inline接口的地方并应用。
2024-07-16 15:34:01
989
原创 MLIR官方Tutorials学习笔记(六)
以上代码定义toy中的Print Operation Lowing到LLVM的类,其中包括匹配重写函数,匹配toy的printOp并生成对LLVM的printf函数的调用,从而实现printOp的lowing。在第五章Partial Lowing的基础上,现在进行Full Lowing,即将目前的Multi-dialect(Affine Dialect和Standard Dialect,以及遗留的Toy。当然对于LLVM IR的mlir表达式,我们也可以选择直接JIT运行得到结果。
2024-07-15 16:35:43
343
原创 在远程容器上使用ssh来clone github上的代码
(linux下)生成后默认的私钥存储在/root/.ssh/id_rsa中,默认公钥存储在/root/.ssh/id_rsa.pub中。原因是在这个容器上进行了代理的配置,但通过代理访问github时要验证身份,所以返回了http码407:身份未验证。Title自己随便取,Key要复制公钥,也就是存储在id_rsa.pub中的那个。1.我们首先要在容器上生成一个身份验证密钥。-t: 选择密钥的类型 rsa: 密钥的一种类型。于是换一种方式,使用ssh来clone代码。ssh-keygen: 生成密钥。
2024-06-11 14:52:56
714
原创 vscode远程连接服务器上的docker容器
4.这样我们就进入了容器中,如果没有进入,可以通过命令 docker exec -it <container_name> /bin/bash 来进入。/home/hjc/code:/code 这将主机的 /home/hjc/code 目录挂载到容器的/code目录,为了。最后一个括号中的內容是镜像的名字,我们通过一个镜像来产生一个新的容器,镜像相当于类,容器相当于实例。6.我们设置root密码,使用命令 passwd,设置两遍相同的密码,以后会用到。9.这样,我们的容器内的ssh服务就全部配好了。
2024-06-07 13:16:35
2847
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1