精华来了(含PPT) | 淘系技术嘉年华-杭州站

2024-03-17 04:32

本文主要是介绍精华来了(含PPT) | 淘系技术嘉年华-杭州站,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=jpeg

出品|阿里巴巴新零售淘系技术部


2019年8月3日,「淘系技术嘉年华-杭州站」移动端的技术创新和实践,在阿里巴巴西溪园区举办,38 度的高温也挡不住大家对技术的热情,170 位开发者齐聚,进行了一次面对面的技术交流。线上直播在线观看达 38000 余人次。

本次技术沙龙我们荣幸的邀请到 5 位来自阿里与华为终端的技术专家为开发者们分享淘系 App 移动端技术创新和实践的主题,助力应用高效开发。五位大咖与你分享端智能 MNN、手淘性能优化、手淘时间穿越、Flutter、华为折叠屏适配等众多全球前沿移动端话题!是不是充满期待 ?那么这次参与的同学们关注的技术和问题又将是什么呢。小编也为大家整理了满满的技术干货哦,我们一起来看看~

关注「淘宝技术」微信公众号,回复“沙龙”即可获取本次活动完整版 PPT ~

640?wx_fmt=png

干货来喽

640?wx_fmt=png

随着来自阿里的资深技术专家兼金牌主持人——白衣 进行的开场介绍和暖场,活动正式开始。

他提到了随着移动生态的进一步繁荣和创新,移动 AI 、跨平台、体验优化、高效测试等成为热门话题,为了持续创新不断提升用户体验,淘系技术部希望能够把自己的经验带给大家


640?wx_fmt=jpeg

淘系技术部资深技术专家 白衣

0

1

 兼容并蓄——MNN的异构计算设计与实践

640?wx_fmt=jpeg

淘系技术部算法专家 霞影

本议题主要分享端上推理引擎 MNN 为了应对移动端上复杂的异构环境所进行的实践与探索。包括:异构计算的定义与移动端上的异构计算环境,兼容多种硬件平台的 Backend 插件机制,异构设备计算结果正误与精度控制,针对不同 GPU 硬件的性能优化策略,多硬件设备并行计算探索。探讨推理引擎如何更好的利用硬件资源与未来的发展方向。

640?wx_fmt=jpeg

作为通用的端上推理引擎,MNN 会被部署到各种各样的移动端设备上面,而移动端设备是多样的,从系统层面来说分 IOS 和 Android ,从芯片层面 Android 阵营又有高通、联发科、海思麒麟几家并立,即便是同一类芯片也有每代的版本差别。对于异构计算而言,这种碎片化是非常大的挑战。


首先是兼容性问题,同一套代码可能在 A 手机上跑得好好的,而在 B 手机上就崩溃或者不能使用了。异构计算的使用需要用标准,也就是一组 API ,这个标准在 IOS 和 Android 上面不一样,比如 IOS 上 GPU 的使用标准是Metal,而 Android 上面,由于历史原因,是 OpenCL、OpenGL、Vulkan 三套标准并存的局面,没有一套标准能覆盖所有设备。


其次是性能问题,移动端上面由于功耗和面积的限制,像 GPU 之类的算力受到内存带宽的制约,不能充分发挥。此外中低端芯片往往会挑 GPU 的配置下手,这也导致其 GPU 的算力不如 CPU 。

640?wx_fmt=jpeg

为了尽可能解决兼容性和性能的问题,我们将端上推理的计算过程分解为 图计算调度、形状计算、资源准备、执行计算四步。


图计算调度是确定计算图执行顺序。形状计算是由每个算子去根据输入的大小计算输出的大小。这两步跟具体的硬件设备无关,我们将其抽离成 Schedule 和 SizeComputer 。资源准备与执行计算这个与硬件相关,我们封装了后端(Backend)这个接口去抽象。Backend 包括三类接口函数,内存交互、内存申请与创建执行器。


每个算子的执行器又包括 onResize 和onExecute 两个接口,onResize 接口中作资源准备环节中除内存申请之外的工作,onExecute 是在最后执行计算过程的调用的接口。通过这样的接口设计,我们尽可能地降低了各种的硬件的适配成本,并且由于我们分离了资源准备和执行计算的过程,可以将非计算的损耗降为一次性的工作。


640?wx_fmt=jpeg

针对不同设备的 GPU ,其优化策略是相似的,主要会从三个方面进行优化:内存、并发、内核


内存指的是在 GPU 计算之中读取的内存量与内存访问效率,对应的优化策略包括但不限于这三点:


1、在计算精度允许的情况下选用 Fp16 作为中间数据存储格式,这样相对原始Float类型可以减少一半的访问量;


2、根据 GPU 的型号选择使用 Image 或是 Buffer ,有些 GPU 针对 Image 有特殊的缓存优化,利用它可以提高内存访问效率;


3、根据算法选择合适的内存布局,减少运算所需的内存读写量。并发是指的任务的划分,包括整体并发数(Global size)和局部并发数(Local size),这要求我们选择适宜并行的算法,并且根据 GPU 型号确认局部并发数大小。内核是指着色器语言等的编写,这要求我们选择时钟周期较少的函数、减少条件分支等。

0

2

 手淘性能优化实践

640?wx_fmt=jpeg

淘系技术部高级技术专家 之羲

本议题主要分享了航母级应用手机淘宝在性能优化过程中沉淀下来的思考与实践,围绕着基础体验与大促保障两个核心场景下不同技术挑战,实施的优化策略与方法,借此探讨手淘在性能优化过程中的一些思考。


640?wx_fmt=png

手淘的业务场景也比较复杂,从浏览到下单支付流程涉及多个页面链路较长,在业务上也直面市场变化,而航母战略,使得手机淘宝的技术复杂度和代码规模都到了一定的高度,面对这样的技术挑战,围绕基础体验和大促保障的核心场景,在架构层面,系统层面及策略层面制定优化方法。

640?wx_fmt=png


大促是电商最核心的场景,大促保障的体验核心点是高流畅性,高稳定性,高实时性,高动态性,为此构建了像 weex 这样的动态框架,并在逐年大促中优化和演进。同时,细分设备能力及容灾的策略,保障了较好的稳定性和性能。


640?wx_fmt=png

性能优化无止境,手淘根据自身的特点总结了4个优化方向,一是系统层面的优化,二是提升硬件的吞吐率,减少硬件阻塞,三是架构优化,重塑模块间的关系提升架构效率,四是因地制宜,针对设备能力量身定制功能。


0

3

 手淘客户端时间穿越

640?wx_fmt=jpeg

淘系技术部高级测试开发专家 韩锷


本议题主要分享手淘通过时间穿越的方式,提前体验双十一客户端总体情况,提前验证手淘功能以及性能。包括客户端、服务端时间穿越的方式,以及客户端全链路验收的方式。

时间穿越的技术实现分为服务端,客户端,灰度环境三个部分


服务端

640?wx_fmt=jpeg


所谓时间穿越实际就是将整条链路进行基于当前时间的偏移,也就是需要更改应用的时间。

应用的时间是取自集团提供的 NTP 服务,所以需要做的第一步是自建一个 NTP 服务,自建 NTP 服务能够提供集团 NTP+ 偏移的一个新的时间服务。之后我们将有需要进入未来时间的应用都扩容到打有指定标记的宿主机群上,接下来只需要将宿主机的时间指向我们的自建 NTP 服务就完成了应用的时间变更能力。为了使应用无需进行任何改造以及部分应用涉及到预算问题,我们打通了底层部分,支持应用的一键扩容。


客户端


640?wx_fmt=png

客户端的时间并非取自用户设置的时间,又因为手淘后端应用数量巨大,穿越后必然会存在一部分应用处于当前时间,另外一部分应用处于未来时间的情况,根据上文的逻辑,客户端的时间会被在当前时间和未来时间来回的纠正,导致整个客户端无法使用,我们采用上图所示方案,来规避上述问题。

灰度环境

640?wx_fmt=png


该如何保证线上用户不能进入到未来时间的环境中?又如何使指定用户进入到未来时间的环境呢?

对于淘系的应用我们采用的是系统灰度环境;非淘系的应用采用的是微服务接口。两种情况都是在统一接入层对当前的请求进行一次判断,如果请求是白名单用户发起的,就进入到未来时间的灰度环境中,如果请求是非白名单用户发起的,那么就进入到正常的线上应用中。通过这种方式保证了在不影响线上用户的前提下,保证指定用户进入到未来时间的环境中。

0

4

 Flutter在闲鱼的技术演进和创新

640?wx_fmt=jpeg

淘系技术部无线技术专家 吉丰

本议题主要分享了闲鱼在 Flutter 技术架构实践和演进过程中的问题、解法和创新。从两个阶段来切入,如何接入和如何规模化应用。包括通用混合栈的设计实现、高性能外接纹理方案的开拓和应用,以及在规模化应用 Flutter 中沉淀的 fish-redux 应用框架。

640?wx_fmt=png


fish-redux 应用框架核心是解决复杂业务环境下的,代码高耦合和低复用的问题。通过通用框架的设计思想和理念的分享,传达了函数式编程,简化的状态管理使用方式,创新型的组件化抽象等关键特点。听众不管是前端还是客户端还是 Flutter 开发,可以从中获得收益。


640?wx_fmt=png

Dart 一体化是解决资源不均衡、协同低效、关注点分离、多端不一致、协议约定成本高、产能非线性等问题。讲解了闲鱼在 Dart 一体化中如何消除云端技术壁垒、如何发挥带来的业务关注点聚焦红利、如何促进生产关系重塑。给听众带来一些新的启发。


0

5

华为 MateX 折叠屏适配指导

640?wx_fmt=jpeg

华为终端MateX项目经理 闫鸿飞

本议题将从Mate X规格和接口介绍、基础适配、典型案例分享、进阶适配、开发与调试五个角度为现场的开发者介绍了折叠屏适配指导的实践经验。

640?wx_fmt=png

华为 Mate X 适配项目经理闫鸿飞从 Mate X 规格和接口介绍、基础适配、典型案例分享、进阶适配、开发与调试五个角度为现场的开发者介绍了折叠屏适配指导的实践经验。

 

其中,华为 Mate X 适配项目经理闫鸿飞在适配的环境方面做了精细的讲解,方便开发者适配。第一个远程真机,推荐大家使用,因为无论从屏幕的比例效果,还是折叠这个形态,在远程真机上都可以模拟,但是差别就是没有实际显示对应的机器的信息和名称,但是从 UI 适配和折叠的适配上,从我们实践经验来看,基本上可以满足大家的需求,这样就省去大家很多的对真机的依赖。

640?wx_fmt=png

第二个是谷歌浏览器。从 Android Studio 3.5 Canary 版本开始,开发者可创建一个运行 QBeta 2 版本的折叠屏虚拟设备,其支持的硬件配置分别为7.3英寸(折叠后为4.6英寸),以及 8 英寸(折叠后为 6.6 英寸)。建议开发者选择 8 英寸的设备来模拟适配华为的 MateX 折叠屏手机。

备注:Android Studio 3.5 Canary 版本下载地址:

https://developer.android.google.cn/studio/preview

在两个配置中,模拟器均允许开发者通过屏幕控制来触发折叠/展开操作,旋转屏幕方向以及快速操作,点击模拟器左上角的按钮就可以在折叠态和折叠态之间切换。

 

最后一个就是用命令模拟调试的方式,更多是基于真机来开发,开发者也可以在非折叠屏手机上面通过命令修改手机的屏幕分辨率来进行模拟调试:

1.折叠切展开模拟方法:

  • 预先将手机设置主屏分辨率:adb shell wm size 1148x2480

  • 通过修改手机分辨率为全屏分辨率模拟状态切换:adb shell wm size2200x2480

2.展开切折叠模拟方法:

  • 预先将手机设置全屏分辨率:adb shell wm size 2200x2480

  • 通过修改手机分辨率为主屏分辨率模拟状态切换:adb shell wm size1148x2480

3.分辨率恢复方法:

  • adb shell wm size reset

640?wx_fmt=png

圆桌讨论

640?wx_fmt=png

这次技术沙龙的最后一个环节——圆桌讨论,60 多位同学积极参加话题讨论,本环节分为三个主题,端 AI 与 5G 、跨平台、客户端体验。现场的同学们照例走向自己喜欢的主题并围圈而坐。在创新技术的探索上有什么疑问大家都可以畅所欲言,与各位资深技术专家进行深度的交流。

640?wx_fmt=jpeg

640?wx_fmt=png

最后

640?wx_fmt=png

本次淘系技术嘉年华大家共度了一个美好的下午。我们将会马不停蹄的继续向前,和更多的开发者面对面交流,那么下一站会是哪里呢?


你希望我们去哪里呢?欢迎在评论区里留言,很可能就是你所在的城市哦!让我们下次再见咯~

640?wx_fmt=png

我就知道你“在看”

640?wx_fmt=gif

这篇关于精华来了(含PPT) | 淘系技术嘉年华-杭州站的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817797

相关文章

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi

java线程深度解析(二)——线程互斥技术与线程间通信

http://blog.csdn.net/daybreak1209/article/details/51307679      在java多线程——线程同步问题中,对于多线程下程序启动时出现的线程安全问题的背景和初步解决方案已经有了详细的介绍。本文将再度深入解析对线程代码块和方法的同步控制和多线程间通信的实例。 一、再现多线程下安全问题 先看开启两条线程,分别按序打印字符串的