自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

田海立@CSDN

行在路上...

  • 博客(142)
  • 收藏
  • 关注

原创 LLVM for TVM

本文简明列举LLVM作为target,如何集成到TVM里的。{cmake/modules/LLVM.cmake}

2023-06-01 15:34:29 726

原创 从TVMConf 2020看TVM的生态环境

TVM在每年12月初举办TVM Conference,今年的会议由于疫情于太平洋时间12/3~4在网上进行,不过由于时差并不利于亚太地区,估计国内在线观看者并不多,现在视频已经在官网(https://tvmconf.org/)公开。本文不具体介绍内容,仅从参与的厂商有TVM的朋友圈看TVM的生态。

2020-12-13 23:49:30 1593 5

原创 图解NCHW与NHWC数据格式

流行深度学习框架中有不同的数据格式,典型的有NCHW和NHWC格式。本文从逻辑表达和物理存储角度用图的方式来理解这两种数据格式,最后以RGB图像为例来加深NHWC和NCHW数据存储格式的理解。

2020-10-12 22:47:16 18498 18

原创 骁龙888在AI-Benchmark榜单上发布,引领下一轮AI算力的军备竞赛?

高通的骁龙888在苏黎世联邦理工学院(ETH)的AI-Benchmark榜单上发布,并刷新了榜首位置。不过数据来自Dev Platform,采用888芯片的XiaoMI 11的分数并不那么亮眼。麒麟990 5G通过系统升级,排行也进入前三,并且头两名是后发布的芯片。

2021-01-20 23:47:11 894 1

原创 TensorFlow Lite 8bit量化Spec

田海立@CSDN 2021-01-03TensorFlow Lite量化spec随时间会微调,这里记录一下目前量化采用的数据类型、范围,以及对历史模型兼容等情况。上面的TFLite int8量化归纳起来要点如下:由量化值计算浮点值的公式:real_value = (q - zero_point) x scale; per-channel或per-tensor的权重用int8表示。范围[-127, 127],zeor-point为0; activation/input用int8表示。范围[

2021-01-03 22:17:35 1185

原创 编译iOS的TensorFlow Lite Benchmark应用

TensorFlow Lite可以运行在Android/iOS/Linux等系统上,也可以通过各自系统上支持的TFLite Delegate(NNAPI / CoreML / GPU / xnnpack / Hexagon)利用AI硬件加速器进行计算。TFLite有其Benchmark工具,过去笔者关注重点在Android/Linux系统上,遇到iOS都是直接略过,今天在MacBook 上编译了一下iOS的Benchmark,本文记录之。

2020-12-26 23:59:51 752 3

原创 Android C++ STL最佳实践

《Android源码中的C++ STL》与《Android源码中C++ STL的namespace》以及《Android NDK中的C++ STL》分别介绍了Android源码中以及NDK环境下有哪些STL有些什么区别,本文主要讲述怎么选择STL,静态库/动态库如何选,有哪些注意点。本文虽针对Android讲解,其中观点亦适用于其他场景。

2020-12-12 11:49:38 3176 4

原创 [news]Github年度报告《The 2020 State of the Octoverse》

Github发布了2020年度运行报告《The 2020 State of the Octoverse》。披露了2020数据增长(开发者增长了56M+)、用户分布(北美最多,亚洲次之)、使用语言(JavaScript第一,Python由第三上升为第二,Java由第二下降为第三),以及其他报告。

2020-12-06 20:53:02 622 2

原创 Android NDK中的c++ STL

Android NDK(Native Development Kit)提供了一套基于c/c++开发Android应用的工具。基于c/c++开发需要STL (StandardTemplateLibrary/标准模版库),本文描述Android NDK中提供的STL。Android NDK开发是基于Android的,但是不绑定具体某一个Android版本,一个NDK发布版可以支持多个Android版本。NDK开发无论静态库还是动态库,libc++都是用NDK里的发布版本打包在应用里。

2020-11-26 00:00:48 7653 7

原创 Android源码中c++ STL的namespace

《Android源码中的c++ STL》中讲到Android Source中有内置的LLVM c++ STL和NDK的c++ STL,使用到这两个stl的时候如何区分呢?c++是用namespace隔离的,stl也是这样隔离的。本文逐步分析stl中如何用namespace隔离这两个stl,这也同时可以解惑stl使用者使用时找不到stl中的标号的问题的原因。

2020-11-22 10:13:44 4312 8

原创 TensorFlow2.4可以在MacBook Pro/Mac Pro上利用GPU做机器学习训练了

之前MacBook上TensorFlow只能利用CPU做训练,TF2.4开始可以利用GPU做训练了,并且不管是M1的MacBook Pro,还是Intel架构的MacBook Pro还是Mac Pro都是支持的。Apple披露这一信息,并且po出性能对比数据。

2020-11-22 00:33:38 6452 6

原创 Android源码中的c++ STL

Android源码中有内置的LLVM c++ STL和libstdc++标准库,为了支持内置的应用,也会选取NDK的标准库内置其中,本文介绍这些STL以及Android Source模块如何来指定其所要使用的标准库。

2020-11-20 22:20:00 4435 5

原创 图解TensorFlow op:tf.slice

与tf.strided_slice比,tf.slice相对更简单些,在各维度上切分指定起始点和尺寸的数据。本文用图文的方式来解释TensorFlow中slice算子运算的方式。

2020-11-15 12:00:41 1290

原创 图解TensorFlow op:tf.strided_slice

本文用图文的方式来解释TensorFlow中strided_slice算子运算的方式。

2020-11-14 19:50:46 1858

原创 PyTorch Mobile在端侧可堪大用?能否与TensorFlow Lite一较高下

PyTorch在1.3发布Pytorch Mobile,其支持情况如何,能否与TensorFlow Lite一较上下呢?本文试分析之。PyTorch Mobile的宣传显得要么诚意不足要么对行业领悟不够。目前只能说是有Mobile这个路在而已,与TFLite比不可同日而语,至少目前的实现是。相对于Google移动端的即有Android生态布局,Facebook有其苦衷,要坚守其生态底线又要放弃次要考量去适配NNAPI才是其捷径。

2020-11-07 21:57:34 6056 8

原创 机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

机器学习框架之争由来已久,如果是两年(2018)前你让推荐或比较机器学习框架,那可能会有好多种,2019年已经有些明晰就是PyTorch和TensorFlow之争了,今年形势更加明朗了。本文从研究领域各大顶级会议上被引用的次数数据看这两大框架的发展趋势。两种框架被用来实现论文中的算法的次数数据,更直接反应了框架的实际地位。

2020-11-07 11:47:23 1378 2

原创 多apk发布的Android程序的adb安装——adb install-multiple

多apk发布之所以然:多架构、多语言、多Layout;Google Play应用程序与手机匹配策略;adb install-multiple

2020-10-29 07:52:27 7675 5

原创 卷积的权重(Weight/Kernel/Filter)数据格式采用HWIO/OHWI,还是其他……

卷积的权重(Weight/Kernel/Filter)的数据格式一般不同于Tensor或Activation数据,有其特定的排布方式。但是这深入到平台(训练和/或推理)内部的机制了,一般大众的使用者不会关心,所以这部分信息很少。本文给出一些指引,实际用到时可以利用《图解NCHW与NHWC数据格式》里的分析方法再去具体理解。

2020-10-26 23:14:27 5081 5

原创 NCHW与NHWC数据格式之外之nChw8c

《图解NCHW与NHWC数据格式》从逻辑表达和物理存储角度用图的方式来理解常用的NCHW和NHWC这两种数据格式,其实这两种之外还有别的数据格式。本文就介绍Intel MKL-DNN里所采用的nChw8c数据格式,这种格式或其变种会在AI加速器(NPU等xPU)里采用,你不一定要记住这种格式,而要学习分析的方法,这样就能应对你所要处理的特定的数据格式了。

2020-10-25 22:07:32 1313 1

原创 为什么麒麟9000是AI-Benchmark榜单的王者?——具体指标分析及当前Android生态AI态势

田海立@CSDN 2020-10-24随着华为Mate40 pro及其搭载的海思麒麟9000处理器的发布,其手机和移动soc的AI性能也双双登上了AI-Benchmark的榜首位置。其具体指标如何呢,为什么能登上榜首?本文从CPU性能、NNAP-INT8量化性能、NNAPI-FP16浮点性能、NNAPI-INT8精度和NNAPI-FP16精度等诸多指标因素来分析,借此分析当前Android生态各家移动soc AI性能态势也就明朗了。

2020-10-24 23:59:35 3408 17

原创 AI Benchmark v4榜首风云:海思麒麟9000登上榜首

田海立@CSDN 2020-10-23随着Mate 40 Pro手机及其所采用的麒麟9000芯片的发布,麒麟9000也登上了AI Benchmark的榜首。在《AI Benchmark v4榜首风云:天玑1000+ vs 麒麟990 5G》一文中看到了麒麟990 5G在做优化改进,不过现在看不是990 5G也是新的麒麟9000,当时可能只是名字没改,导致流露了以为是990 5G的中间的一些数据谍报。最近一直在看AI-Benchmark榜单,果然是配合Mate 40 Pro手机及其所采用的麒麟9.

2020-10-23 08:18:40 1846 5

原创 图解TensorFlow op:tf.nn.space_to_depth

田海立@CSDN 2020-10-20TensorFlow算子space_to_depth是depth_to_space的逆操作。本文用图文的方式来解释该算子运算的方式。一、space_to_depth原型space_to_depth是把space数据(width和height维)移到depth(Channel)维上,与depth_to_space刚好是反向的操作。对应到ML该操作是把width和height维上各取block_size都分给depth上。所以,对应有一个参数block_s.

2020-10-20 21:57:41 4886

原创 图解TensorFlow op:tf.nn.depth_to_space

田海立@CSDN 2020-10-20TensorFlow算子depth_to_space的官方说明文档写得很简单,从中获取不到真正的执行方式,对于复杂的情况也就无从得知运算结果。本文用图文的方式来解释该算子运算的方式。零、前提阅读本文,你需要知道下列基本知识,可以从笔者之前的博文中了解:《数据的NCHW/NHWC排布方式》 用到数据的NHWC摆放顺序《Tensor Reshape操作》 用到Reshape操作,以及Reshape操作不改变数据的摆放原则。...

2020-10-20 04:06:25 6521 7

原创 图解TensorFlow中Tensor的shape概念与tf op: tf.reshape

《图解NCHW与NHWC数据格式》中从逻辑表达和物理存储角度用图的方式讲述了NHWC与NCHW两种数据格式,数据shape是可以改变的,本文介绍TensorFlow里Tensor的Shape概念,并用图示和程序阐述了reshape运算。

2020-10-18 00:20:21 3163 3

原创 TensorFlow ops:tf.round为“Bankers Rounding”,不是什么“四舍五入”

TensorFlow里的算子round不是什么四舍五入,而是Bankers Rounding——四舍六入五取偶。用搜索工具搜索,如果不是链接到官方网站的话,特别是到链接到中文描述,看起来还很官方的样子的地方,会把round就直接翻译成“四舍五入”,希望你再搜索的时候,看到的是本文的描述。

2020-10-11 23:49:35 1578 3

原创 UML类图精炼及其最佳实践

UML(Unified Modeling Language)的各种图中类图(Class Diagram)是基础,描述一个系统可以从不同视角去看,这些不同视角的图聚合在一起,才能比较完整地阐述系统。本文描述类图的基本概念——各种类元和它们之间的关系,并结合实际工作经验探讨了描述类图时的最佳实践。

2020-10-08 14:15:16 871 2

原创 AI Benchmark v4 Device选择:Google Pixel 4/XL简析

《AI Benchmark v4测试项更新以及榜单数据解读》知道了AI Benchmark执行的时候可以选择NNAPI,也可以直接用TFLite里的Delegate。Google Pixel 4/XL里用的芯片是高通骁龙855+Google TPU Edge,设备如何选择,选择的是否合理,这里简要分析之。

2020-10-07 12:00:54 749 1

原创 AI Benchmark v4榜首风云:天玑1000+ vs 麒麟990 5G

《AI Benchmark v4测试项更新以及榜单数据解读》只是解释了AI性能数据获取的机制以及简单数据概览,仔细看一下榜单,发现另有玄机,也许下一刻榜首位置就会变化。本文简要分析一下,这也许就是未来几个月的榜单趋势。

2020-10-06 18:40:36 2565 7

原创 AI Benchmark测试原理、v4测试项变化以及榜单数据解读

AI Benchmark这里特指ETHZ(苏黎世联邦理工学院)的AI性能评测工具。最新其发布了v4版本以及基于这个版本的soc和手机AI性能数据。本文分析了AI Benchmark测试的原理,v4版本的变化,以及榜单头部海思麒麟990 5G与MTK天玑1000+的对比。据此也就能解读AI-Benchmark榜单​​​​​​​上各个数据的含义了。

2020-10-03 17:09:08 6471 6

原创 CSDN博客上的早期时光

我与CSDN2020-10-1 thl789@csdn前不久看一同事在看一文章,他说你看这人很牛的,在CSDN总排名前几千名呢。我说这算啥,搜搜我的,虽然7年了账号处于僵尸状态都没怎么登陆过,再不济几千名也还是有的(今天打个TAG ,总排名2513)。假期有空,简单回顾一下职业前面几年与CSDN的渊源。初入职场时,搜索技术文章,总是有这样的事发生,要么搜不到什么有价值的文章,要么有篇有问题的文章还被人翻着花样的转载,当时就想还不如自己的理解呢,自己记录下来也就能正确的扩枝散叶了。这还真是我的初衷

2020-10-01 19:58:04 1739 1

翻译 Google Play和基于Feature的过滤 —— Feature 参考手册

基于Feature的Google Play过滤规则中,当前Android支持(显式的和隐式的)的硬件和软件Feature List。

2013-08-31 17:02:27 6331 1

翻译 Google Play和基于Feature的过滤

Google Play基于Feature的对Google应用商店里的应用程序的过滤规则,包含显式的Feature需求以及隐式的需求。如何查看一个apk应用里所需要的Feature列表。

2013-08-31 15:22:26 4861

原创 Android主线程里不允许网络操作

Keywords: Android UI线程/主线程 PENALTY_DEATH_ON_NETWORKAndroid API > 9 (Honeycomb及之后)版本里,对UI线程/主线程里是不允许联网操作的,如果有网络操作,会抛出NetworkOnMainThreadException的异常。1. Thread Policy里对网络的限制StrictMode.AndroidBlockGuardP

2013-08-30 18:09:55 10585 1

原创 Android中线程同步之MUTEX与Condtion的实现

田海立2013-08-10Android封装的同步类主要有MUTEX(AutoMutex)与Condition。前文分析了它们的外部使用,本文看它们是如何通过对pthread Mutex和Condition的封装实现的。遇到pthread的用法,可结合《pthread之MUTEX与Condition用法》一起看。Keywords: Mutex, Condition Variable, AutoLo

2013-08-10 16:45:02 8227

原创 Android中线程同步之Mutex与Condtion的用法

田海立2013-08-10Android封装的同步类主要有MUTEX(AutoMutex)与Condition。本文分析如何使用他们,具体的实现参见《Android中线程同步之MUTEX与Condtion的实现》与《pthread之MUTEX与Condition用法》。Keywords: Mutex, Condition Variable, AutoLock/AutoMutex, Android关

2013-08-10 16:04:47 16533

原创 Android OTA升级(2):开启升级过程

田海立@CSDN2013-3-31 通过网络或直接本地获取到OTA升级包之后,通过程序就可开始Android的升级。本文描述这一过程。 在获取到OTA升级包之后,可以直接通过android.os.RecoverySystem.installPackage()开启OTA升级。RecoverySystem.installPackage()是在API-8之后加入的,使用它需要权限:android.Man

2013-03-31 19:11:45 14819 3

原创 Android OTA升级(1):编译升级全包

田海立@CSDN2013-3-23      Android原生系统中就已经支持OTA升级。所谓OTA升级就是通过空中接口获取升级包,然后更新系统固件。一般地,升级包无论如何获取,哪怕是直接TCard本地升级,也被称为OTA升级。     OTA升级首要是生成OTA升级包,升级包又分为升级全包和升级差分包(或要增量包)。升级全包是编译当前系统得到的软件包,这个包很大,有上百兆,但是不依赖与当前手机

2013-03-31 19:02:44 21662 3

原创 实现Android init中对属性作为参数的写入操作

田海立@CSDN2013-3-31 事情的由来:Android很多系统的adb id是固定的,驱动一旦写好每个设备的id都是一样。有些需求要求adb的id每个设备都不同。adb id即是通过命令adb devices查看到的设备的id。这在Android4.0中已经实现,而实现的要点如下:1.      内核的Adb usb驱动中暴露出接口/sys/class/android_usb/androi

2013-03-31 18:49:40 7881

原创 Android中init.rc文件的解析

田海立@CSDN2013-3-16 本文分析Android中如何解析init.rc文件,重点描述了on action内的解析,并从解析的过程中总结出init.rc的语法规范。 对init.rc的解析是在parse_config(): [system/core/init/init_parser.c]中进行的。解析发生在init全过程中的哪个阶段,参看《Android init进程启动过程分析》。 一

2013-03-16 14:05:07 11586 3

原创 Android init进程启动过程分析

田海立@CSDN2013-3-16 本文分析Android中init进程的执行过程,只是分析init进程启动的流水,具体细节在今后的各个专题中再分别详细分析。本文虽是后面各个专题的基础,读者初看可能理解不深,可以在阅读后面各个专题的时候,结合本文的整体流程会有更清晰的理解。 Init进程从 /system/core/init/init.c里的main()函数开始 1.      mkdir &&

2013-03-16 13:58:49 13588 2

空空如也

空空如也

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

TA关注的人

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