自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (9)
  • 收藏
  • 关注

原创 深度学习模型的推理并行性

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言将数据、管道和基于张量切片的并行性来个大杂烩。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport ma

2021-10-19 15:54:21 2776 1

原创 MLIR感触

文章目录前言一、MLIR的江湖地位二、IR的完备性三、MLIR结构的一些看法前言最近读了mackler的2篇文章,专用架构与AI软件栈,深有同感。借此机会也小结一下目前自己对MLIR的体会。一、MLIR的江湖地位MLIR从诞生开始就争议不断,但争议归争议,使用者和关注度逐渐上升。为什么呢?能解决问题的工具就是好工具。虽说有可能在某些人眼中,使用MLIR耗费了更多的时间和人力。但MLIR能走多远,和mackler文中所提到的问题有关:MLIR本身更接近一个库的定位而非生态? 两者最大的差别就在.

2021-10-12 17:33:48 364

原创 从Centos 7.9 降级到 Centos 7.5

记录:一不小心,yum update 更新至7.9, 但是需要在7.5上开发。需要降级至 7.5。使用下列命令选择所对应的linux kernel版本。sudo grubby --info=ALLsudo grubby --set-default-index=XX下载 Centos 7.5 的rpm包wget https://www.repo.cloudlinux.com/cloudlinux/migrate/release-files/centos/7/x86_64/centos-rel

2021-05-18 16:51:44 3522 3

原创 在Centos 7.5上使能intel UHD 630显卡(Coffee Lake)

记录:除了要安装Xorg相关的驱动外,还需linux kernel使能相关驱动。即在kernel的启动参数中需要添加 i915.alpha 选项。打开文件 /etc/default/grub, 在 cmdline中添加参数i915.alpha_support=1GRUB_CMDLINE_LINUX=“rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet i915.alpha_support=1”然后更新grubsudo update-grub

2021-05-18 16:45:42 3192 3

原创 TensorFlow RunTime(TFRT) 小试

文章目录前言一、编译流程二、验证流程1.编译工具2.测试验证4.25号更新前言最近几天试了试 TensorFlow RunTime(TFRT),优劣就不讲了,官方文档说得很详细了。TFRT本质上还是遍历DAG,依次检查operation并找到对应的算子,在目标机器上执行。小试TFRT,是想知道如下2个问题的答案:TFRT是怎么和MLIR结合的?TFRT是怎么产生机器码的?一、编译流程TFRT从某种程度看,是为MLIR定制的runtime,其本身也是以一系列dialect的形式存在。但.

2021-04-08 17:15:05 829

原创 Sparsity & Quantization 之自我理解

Sparsity & Quantization 之自我理解DNN的最初的动力是以precise为中心,但随着DNN在Edge的推广,Latency和Throuput则成了inference过程中关心的问题;为了后者,即使损失些精度,都是可以接受的。Inference的时间消耗主要分两部分: Computing 和 Data move。如何在这两部分节约时间,则就各显神通。如果就Ineference本身而言,目前常用的方法也就是Sparsity和Quantization。其中Sparsity

2021-02-09 14:43:26 358

原创 Deep Learning Compiler 之自我理解

Deep Learning Compiler 之自我理解前序编译器狂想DL编译器什么是DL编译器DL编译器的融合DL编译器的优化方法前序接触DL算起来也有几年了,但是一直在外围,未真正深入。因工作关系,主要接触的是DL的inference架构以及ASIC的Soc部分,零散又琐碎。后将DL compiler作为个人的兴趣方向,认为DL编译器在整个DL的业务流程中,处于承上启下的地位。读了些论文以及代码,但依然缺少系统性。近一年前接触MLIR,当时只是粗略了解,以及在nGraph上玩了玩MLIR,仅此而

2021-01-28 16:53:35 1946 3

原创 SparcV8 stack

SparcV8 栈永远不要忘了配置异常向量表,否则都不知道怎么死的。1/ 当触发栈上溢出异常后,需要将CWP-1的register context保存到对应的栈帧中。由于约定%i6当作%fp使用,%o6当作%sp寄存器使用,在保存时根据%o6找到栈地址,然后将寄存器值写入到memory中。最后修改WIM用于指示各个windows可用。从而可以使用CWP-1的windows作为新函数的reg...

2018-12-17 14:27:33 453

原创 Meltdown attack and Spectre attack的区别

Meltdown attack and Spectre attack的区别Meltdown和Spectre常一并提起,两者有相同之处,但差异也是很明显的。记录下来做个笔记吧。两者都运用了speculation execution技术,但是Meltdown偏向于Out of order(OOO),而Spectre偏向于 Branch prediction。《Spectre Attac

2018-01-09 12:26:48 2293

原创 Magenta - 内存管理概述

内存管理是个比较大的话题,本文只做个简单的介绍。建议先Magenta自带的文档memory,会对内存管理有个直观的认识。vmas表示处理器层面的地址空间,和具体的cpu的arch有关。一般分为2大类:kernel space和process space。在Magneta下输入命令“k vmm asp

2017-07-17 09:22:28 1121

原创 Magenta: devmgr进程的线程分布

devmgr和devhost的关系我们以后再说,今天先看看devmgr的线程有哪些功能。

2017-07-11 17:43:09 929

原创 Arm Trust-Zone和Intel SGX

接触Arm的Trust-Zone技术比较长的时间了,从monitor模式到后来的EL3,从总线的安全到device的安全。还曾有幸参加过Arm公司的Trust-zone培训。再到后期的security OS项目实际操练,算是对Trust-Zone有点了解。后来Intel推出了类似的cpu安全技术Software guard extension(SGX),其在设计理念上和Trust-Zone有着明显区

2017-07-10 11:58:51 2619

原创 Linux - signal处理的一些补充

signal是一类比较特殊的存在,需要kernel和userspace通力合作才能将signal处理流程走通。Android 平台 Native 代码的崩溃捕获机制及实现对signal的描述比较完整,建议读读。signal处理流程简单的流程描述如下:userspace:利用系统调用sigaction(…)或signal(…)设置感兴趣的signal的属性,包括处理函数、flags等。 已经不鼓励

2017-07-07 13:45:24 2713

原创 Syscall - restart或retry的处理

在user利用syscall指令(x86)或svc指令(Arm)发起系统调用后,如果kernel在处理系统调用的过程中被异常打断(如果有信号量pending或被异常唤醒等),此时是retry还是返回?由于是在user的进程上下文中,根据机制和策略分离的原则,kernel一般不会在系统调用处理函数中做retry动作,而是返回user space后再次发起系统调用。

2017-07-06 11:21:38 1516

原创 Linux: Intel-Virtualization Technology(VT)下的中断

这也是以前的一篇手记,由于涉及到公司的一些资料,摘录并整理。只是一个简单的流程说明,详细的知识点还请参考相关手册。先来张图热个身。在VT环境下,当中断产生时,有两种场景:在host上下文和guest上下文。 host收到中断后,可以自己处理,也可以将此中断重新路由给Guest;Guest上下文的中断,可以配置为直接路由给Guest,或配置为路由给host。所以需要host和guest间有统一的中断配

2017-07-03 15:56:50 1167

原创 Android - Dalvik分析

这是n年前的笔记。当时网上还没有什么关于Dalvik的文章,只找到一篇如何单跑dalvik的说明文档,如获至宝。为满足自己的一时兴趣,在没有Java的基础上,自己决定单啃Dalvik代码。但不得不先读了java语言规范,java虚拟机规范等,否则寸步难行。 此笔记写得比较乱,应该已无多大参考价值,只为纪念当年那段苦闷但还有激情的岁月。Android - Dalvik分析VM介于平台和JAVA之间,是

2017-07-03 12:17:41 1278

原创 Android - Capability的实现

Linux Capability的简单介绍和Android Capability的实现

2017-06-30 13:43:08 3475

原创 Android - Namespace

Android namespace的实现

2017-06-30 12:09:47 2465

原创 Linux-execve时的文件加载流程

这是n年前写的笔记,是以Arm Android环境为背景所写。今天看vDso时有些关联,就又翻出来瞧了瞧。Elf文件的编译在用户空间,用户代码可以编译为executable、static library,shared library、dynamic binaries。Executable:根据编译脚本executable.mk,会自动将crtbegin_static.S和crtend.S链接进el

2017-06-22 17:56:08 1356

原创 Intel deep-learning SDK 安装记

在网上闲逛时,看到Intel的DL SDK,想瞧瞧怎么样。以下是安装过程中遇到的点点滴滴。从 https://software.intel.com/en-us/deep-learning-training-tool 可以进入下载页面,可看到有3个下载选项 : for Windows, for MacOS, for Linux。先试试Windows版本吧,下载后安装提示,将SDK安装到我自己

2017-06-22 11:24:03 832

原创 Magenta - 文件系统概述

Magenta - 文件系统概述文件系统最初用于管理存储设备上的文件,后期随着虚拟文件系统的出现,也使用文件系统的方式来管理设备、提供kernel配置接口等等。文件访问流程Magneta是以微内核的方式实现,所以其文件系统是以client/server的方式实现的。server利用Port监听Channel,以获取用户的请求事件;用户发起的文件操作请求并不是由kernel实现的,请求经过Channe

2017-06-15 12:25:55 2585

原创 Magenta - Namespace

Magenta的Namespace当前比较简单,只实现了类似于Linux的Mount-space,其他的space隔离暂未看到。Namespace的实现和其文件系统密切相关,后续有机会详细描述,现在只大概说明。Magenta是以Client/Service的方式实现了文件系统。在devmgr进程中,除了做设备管理之外(device add,device remo

2017-06-09 14:29:32 397

原创 Magenta- 支持虚拟化

Magneta实现了类似于Kvm+Qemu一套东西,但要简单得多,当前只支持在物理magenta上虚拟运行另一个magenta实例。

2017-06-08 16:46:02 771

原创 Magenta - BP启动AP(x86篇)

Magenta支持SMP,所以需要Bootstrap CPU(BP)启动Application CPU(AP)的功能。这部分和体系架构密切相关,就以x86结构为例说明。AP的启动,在各个系统上的流程大同小异,大概都分为2大部分:

2017-06-07 15:30:25 1295

原创 Kvm-Qemu

以前看代码,常常为看代码而代码,不常从用户的角度尝试代码所在模块的功能和用途,所以常深陷其中。Kvm很久前就看过代码,但没有认真的看过相关的文档,从而似懂非懂。也曾好奇Kvm和Qemu的关系,但一直不得其解。因为缺少whole picture,所以看代码时只知其然,不知其所以然。

2017-06-02 12:20:58 446

原创 CGroup-Namespace-Container

当初接触到Linux的CGroup,觉得很有用,可以做资源的隔离;接触到Namespace,觉得很有用,可以做安全隔离。后来出现了container,觉得很有用,既安全,又可虚拟化。印象中三星的KNOX安全技术就使用了Container技术。只看CGroup和Namespace方的实现源码,但如果不清楚他们的实现目的以及应用场景,很容易陷在code中而忘了初衷。网上描述这三者的文章挺多,以下几

2017-06-02 12:06:12 614

原创 Magenta - Userboot

Magenta-Userboot在kernel初始化完毕后,需要跳转至user space并初始化user的init进程(devmgr),此也是user的第一个进程。为了可以顺利的启动user进程,magenta在 编译,初始化和启动 阶段分别做了特殊处理。userboot就是专为此而实现的模块。包括:kernel userboot:运行在kernel空间,为进入user空间做准备user us

2017-05-31 11:17:42 755

原创 Security Linux & Android

当Android默认使能了Selinux后,常遇到一些安全权限问题,所以就有了这篇PPT。其中一部分图片来自于老罗的blog,在此表示感谢。

2017-05-27 11:52:42 543

原创 TEE: OP-TEE

OP-TEE是Linaro开发的Security OS。n年前,最终选定OP-TEE作为我们的移植目标,并最终实现。基于当年的OP-TEE版本,除增加了支持多核的功能,还基于Power state coordination interface(PSCI)协议实现了CPU的电源管理。此文档其实是自己当年的学习记录。ARM后期期望走类似于Intel的路,抛弃Linux中的一些底层设备操作,将相关功能集

2017-05-26 16:24:23 2429 3

原创 Support vector Machines(SVM)

去年写的一篇PPT,资料多来自网上。半路出家,似懂非懂。SVM

2017-05-26 16:05:58 617

原创 Magenta - 概述

Magenta是按照微内核的思路打造的,但不同于学院派的微内核,看上去没那么美,走的是一条实用化的道路。 本想自己写点东西,但magenta自带的文档已经挺完善,以下的内容的一部分来自对文档的引用。Magenta-概述基于微内核的特性,Magenta只负责管理如下资源: 1/ scheduler,继承自LK并增强; 2/ 中断,处理(一部分,另一部分可在user spa

2017-05-25 16:07:19 14524 2

原创 SMP分析

n年前多核刚刚兴起,说要讲讲SMP,于是就乱诌了一通。

2017-05-23 15:42:50 1241

原创 Multi-Core Power-management

n年前写的一篇PPT,现在看看,还是挺有内容的, 哈。

2017-05-23 11:38:31 421

原创 TEE - TLK需求分析

TLK(trust light kernel)是基于LK开发的security OS。印象中是nvdia的安全小组开发的。

2017-05-23 11:03:53 1556 1

原创 TEE-Fiasco实现需求分析

Fiasco是micro kernel,基于其上,一般使用L4作为用户开发环境。n年前,曾想将Fiasco移植为Security OS,着他TA可以使用L4丰富的环境。此篇手稿就是当时的实现需求分析。TEE-Fiasco实现需求分析前提:在尽可能复用Op-Tee的client API和Linux Driver的前提下,对L4提的实现需求。1. 多核模型 TEE:UP REE:SMP2种发起

2017-05-23 10:34:09 602

原创 REE和TEE的schedule

n年前,基于ARM的trust-zone技术,需要实现Security OS。当年Lianro的OP-TEE还不成熟,所以评估了当时可见的一些OS,确认是否适合做为Security OS。此篇文档是当年基于Trust-zone知识,拍脑袋写出来的REE和TEE的关系。现在回过头来看,好稚嫩

2017-05-22 16:19:49 9540

原创 Magenta - 前言

从知道有fuchsia/magenta这回事到接触,也有段时间了。中间断断续续的读了读源码,但由于magenta更新得很频繁,且不时有大的结构调整,导致不得不回头再读,顿觉无趣。本想待magenta稍稳定后再细读,但又怕一段时间后,没了这个趣味,也怕人就这么懒掉了,所以还是先做个简单的小结吧。

2017-05-11 12:10:13 498

原创 Magenta- Qemu + bootloader

Magenta的code下载、配置、编译等等就不说了,就从其从Qemu中运行开始说起。如下是Qemu启动Magenta的命令:qemu-system-x86_64  -m 2048 -serialstdio -vga std -net none -smp 4 -machine q35-kernel /home/kevin/workshop/room/source/fuchs

2017-05-11 11:22:02 1401

linux tick timer clock笔记

linux tick timer clock. just backup

2017-06-30

linux scheduler类笔记文件打包

Linux scheduler 笔记。 just backup。

2017-06-30

CPU电源管理类文件打包

cpu pm

2017-06-30

linux page笔记

自己的笔记。 just backup

2017-06-30

Arm V8 摘要

当年学习v8时的摘要。 just backup.

2017-06-30

android-os

只是将Android的一些执行提类比了一下。 just backup.

2017-06-30

Android-startup_shutdown

自己写的笔记。just backup.

2017-06-30

dalvik分析

自己n年前写的比价,现应该已无参考价值。上传只是backup。

2017-06-30

selinux初始化流程

selinux初始化流程

2017-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除