首页 文章 精选 留言 我的

精选列表

搜索[快直播],共10000篇文章
优秀的个人博客,低调大师

快 2 倍,TFLite 推出基于 OpenCL 的 Android 移动 GPU 推理引擎

TensorFlow Lite(TFLite)现在支持在 Android 设备上使用 OpenCL 进行 GPU 推理,这一改进使得 TFLite 性能比使用现有 OpenGL 后端提高了约 2 倍。 TensorFlow Lite 团队介绍了目前其使用 OpenCL在移动 GPU 推理上所取得的进展,并宣布正式推出基于 OpenCL 的 Android 移动 GPU 推理引擎,该引擎在大小合理的神经网络上可比现有的 OpenGL 后端提供高达 2 倍的性能提升。 OpenGL ES 3.1 中添加了计算着色器,但其向后兼容的 API 设计决策限制了发挥 GPU 的全部潜能。另一方面,OpenCL从一开始就是为使用各种加速器进行计算而设计的,因此与移动 GPU 推理领域更加相关。因此,TFLite 团队研究了基于 OpenCL 的推理引擎,引入了一些功能,使得能够优化移动 GPU 推理引擎。 相比之下,新的移动 GPU 推理引擎有以下要点: 性能分析:与 OpenGL 相比,优化 OpenCL 后端要容易得多,因为 OpenCL 提供了良好的分析功能与高通Adreno很好的支持。使用这些概要分析 API,能够非常精确地测量每个内核调度的性能。 优化工作组大小:高通 Adreno GPU 上的 TFLite GPU 性能对工作组大小非常敏感,选择正确的工作组大小可以提高性能,反之亦然。借助上述 OpenCL 中的性能分析功能,能够实现针对工作组大小的优化器,这使平均速度提高了 50%。 原生 16 位精度浮点(FP16):OpenCL 原生支持 FP16,并要求加速器指定数据类型的可用性。作为正式规范的一部分,即使是某些较旧的 GPU,例如 2012 年推出的 Adreno 305,也可以发挥其全部功能。 恒定内存(constant memory):OpenCL 具有恒定内存的概念。高通增加了一个物理内存能力,使其非常适合与 OpenCL 的恒定内存一起使用。对于某些特殊情况,例如在神经网络开始或末尾非常薄的层,这被证明是非常有效的。Adreno 上的 OpenCL 通过与该物理恒定内存和上述原生FP16 支持的协同作用,能够大大超越 OpenGL 的性能。 TFLite 具体展示了在 CPU(大内核上的单线程)使用现有 OpenGL 后端的 GPU 以及使用新的 OpenCL 后端的 GPU 上的性能对比。 上图分别说明了在两个著名的神经网络 MNASNet 1.3 和 SSD MobileNet v3(大型)上使用 OpenCL 的特定 Android 设备上推理引擎的性能。可以看到,新的 OpenCL 后端的速度大约是 OpenGL 后端的两倍,并且 OpenCL 在较大的网络上的性能甚至更好。 此外,因为 OpenCL 本身不属于 Android 的一部分,某些用户可能无法使用。为了简化开发,TFLite GPU 委托添加了一些修改,首先在运行时检查 OpenCL 的可用性,如果可用,将使用新的 OpenCL 后端,否则将退回到现有的 OpenGL 后端。实际上,OpenCL 后端自 2019 年中期以来一直存在于TensorFlow 存储库中,并且通过 TFLite GPU delegate v2 无缝集成。

优秀的个人博客,低调大师

天下武功唯快不破:6种快速编写代码的方式

云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 经过多年的发展,Swift如今也得到了许多人的青睐。它不仅提供类型安全性,而且比许多语言都简洁得多。它的功能在发展中不断增加,一定有很多你不知道的技巧隐藏其中。 本文我就将和大家分享一些Swift语言编写代码的方法,它们可以帮助你构建出更好的iOS应用。 在初始化时调用willSet和didSet 简而言之,就是第一次初始化属性时不会调用willSet和didSet属性观察器,但是可以通过将初始化包装在defer语句中来解决这个问题。 尽管有点笨拙,但是由于你不得不以某种方式设置默认值(在声明中或在外部defer中),掌握之后就会很快乐: 使用Maps安全打开选项 通常我们会使用if let或guardlet语法来安全地打开Swift中的选项,但有时我会想能不能有其他方法解决这个问题,尤其是在展开子属性时。我们的另一个选择是:使用map操作符打开选项。 只有当包含在map中的可选值包含某个值的时候才对其进行计算,从而确保其不为nil。 在可选的元组中,使用maps进行解包也很方便。用Swift语言可以进行这样的操作: func sampleTuple() ->(String, String)?{ return nil }let (a, b) = sampleTuple().map { ($0, $1) } ?? ("NA","NA") 使用重新抛出进行强大的异常处理 想必大家对throws关键字都很熟悉用得也很多,但是Swift中的rethrows功能可能就不是常常会用到了。使用rethrows关键字声明的函数表示,只有当其函数参数之一throws时才会抛出错误。 也就是说,如果Closure参数没有引发错误,那么在调用它时我们无需使用其他try方法,这样一来就能大大减少样板代码。正如在下面的代码中看到的那样,我们不必将相同的不抛异常函数放入do-catch块中。 使用协议扩展进行默认实现 Swift协议功能强大,但它们不允许你指定默认实现。如果你想避免重写方法,这样做可能会非常方便。此外,你还可以使用扩展中的where子句仅为某些约束指定协议实现,但要确保自己不会在代码库中过度使用协议扩展。 轻松跟踪字典中的更改 如何进行Swift字典中的更改(可能是用于调试)?繁琐的方法是通过分散内容来实现,但是也有一种快速的方法,只需在保存该字典的对象上定义一个下标: 在不同场景使用guardlet Guard let语句使用的是故障安全机制,其中nil值可确保您立即返回上一层。但在某些情况下,return并不是对我们最有利的方法。例如,你可能处于for循环中,只想要continue 或者 break,那么可以按照以下方式进行操作: 学会这些小技巧,去享受纵横驰骋的编码快乐吧。 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/live 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK 原文发布时间:2020-06-22本文作者:读芯术本文来自:“读芯术公众号”,了解相关信息可以关注“读芯术”

优秀的个人博客,低调大师

技术变化那么快,Java程序员如何做到不被淘汰?

写了这么久的代码,你是否曾经有过这样的迷茫和困惑:技术发展日新月异,奋力追赶的我们,究竟是技术的主人还是技术的奴隶? 技术人真的挺辛苦,除了在办公室高强度、高压力搬砖外,还要时刻关注最新的市场信息、技术动态、行业信息等等。一不小心,就担心自己的技能、知识跟不上行业的变化。 在快节奏的时代,不进则退,技术人需要不停地吸纳新知识。今天,小编精挑细选了一些各大互联网公司的都在用的最火技术知识点,推荐给大家。这些知识点都有可以免费学习的地址喔 架构筑基篇 性能优化如何理解 常用工具调优 linux基础与进阶 开源框架篇 Sprng5框架 AOP源码解析 Mybatis IOC源码解析 Spring MVC 高性能架构篇 分布式架构思维 分布式协调和分流 高可靠数据储存 缓存和NoSQL 异步与消息中间件 分布式解决方案实战 微服务架构篇 SpringBoot SpringCloud Docker虚拟技术 Dubbo应用及源码解读 团队协作开发篇 Git Maven Sonar Jenkins B2C商城项目实战篇 系统设计 用户管理子系统 搜索子系统 订单子系统 商品管理子系统 支付系统 后台系统 分布式调度系统 欢迎工作一到五年的Java工程师朋友们加入Java填坑之路:860113481 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

优秀的个人博客,低调大师

Apache Flink China Meetup 北京站 - 计算之美,何止于快

活动时间:11月18日13:30-17:30活动地点:北京市朝阳区酒仙桥路6号院2号楼(360大厦A座1层发布厅) 通过本次meetup,你可以获悉: • Spark和Flink在行为数据分析上的比对 • Storm与Flink的流处理性能上的比对 • Flink在风控场景下的应用 • Flink on YARN 报名链接:http://t.cn/EwJwxHK 深入了解flink,触摸下一代大数据处理引擎魅力 分享嘉宾 活动流程 13:30-14:00 签到 14:00-14:35 GrowingIO | 廖嘉逸 《基于Flink的实时用户行为分析》 14:35-15:10 奇虎360 | 张馨予 《Flink实时计算性能分析》 15:10-15:45 去哪儿网 | 徐骁 《去哪儿网 Flink

优秀的个人博客,低调大师

5G的超快网速,将如何改变你我的生活?

近几年 5G(Fifth generation)一词越来越常见,这种新一代行动网络的数据传输速度大幅进步,不但满足日渐增长的高画质影音需求,也可望带领物联网技术加速成长。 5G 离「在日常生活中普及」还有一大段距离,AT&T、Verizon、Nokia 和科技巨头 Google 等公司仍在争夺全球网络标准的定义权,如果你想换 5G 手机,大概要等到 2019 年。不过这不妨碍我们先来想象一下 5G 网络的世界。 百倍速的行动网上冲浪和更贵的账单 目前你用行动网络听音乐、看影片或传讯息的速度大约是每秒 15 MB,而 5G 平均网速超过每秒 10 GB,大约是现在的 100 倍。 为了让用户下载电影的速度从 8 分钟变成 5 秒钟,电信业者需要重新架设手机天线塔和市区网络热点等硬设备,并更新软件程序来管理爆炸性增长的行动数据数据。羊毛出在羊身上,这些当然会算在你的手机账单上。 万物联网不再只是口号 新一代行动网络覆盖的范围,不只局限在智慧手机、穿戴式装置或智能家电,可能还需要因应远程遥控的工业机具传感器,或跟着高速公路深入国家的各个角落。是电信营运商除了个人手机用户外,值得开拓的企业网络市场。 无人车路况判读的分秒必争 目前消费者用手机读取网页,大约要等待 50 至 80 毫秒,这个时间被称为行动网络的延迟(latency)或数字响应时间。 5G 能让延迟下降到 1 毫秒,神经大条的用户也许根本不会注意到,但这对无人车系统处理瞬息万变的路况来说非常重要,甚至可能拯救乘客或路人的性命,将是无人车趋势的重要关键之一。 本文转自d1net(转载)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册