华为hikey960970,Android系统版本支持OpenGL和OpenCL吗

海思960采用ARM的Mali-G71

安卓opencl 安卓openvpen下载安卓opencl 安卓openvpen下载


安卓opencl 安卓openvpen下载


安卓opencl 安卓openvpen下载


G71给出参数支持API:Vulkan 1.0,OpenCL 2.0

Mali-G72 MP8(麒麟970)同上

请教如何进行ARM Mali SDK编译Android OpenCL库

要编译到安卓平台下,我们替换9和10行内容,用安卓NDK中的arm-linux-androideabi编译器编译。所以修改platform.mk中的内容如下:

#CC:=arm-none-linux-gnueabi-g++

#AR=arm-none-linux-gnueabi-ar

CC:=arm-linux-androideabi-g++

AR=arm-linux-androideabi-ar

我也更新了,但是使用的时候提示“arm-none-linux-gnueabi-g++”命令找不到。

configue 过去后,make时出现错误:/home/fedora/android/android-ndk-1.5_r1/sources/c/include/c/c.h:148: error: conflicting types for 'c_off_t'/home/fedora/android/android-ndk-1.5_r1/sources/c/include/c/cbuild.h:172: error: previous declaration of 'c_off_t' was hereIn file included from file.c:75:请各位。这是怎么回事? 查看原帖>>

如何查看android 是否支持opencl

步、确认

这是最关键一步,首先是检查你的设备是否支持 opencl (如果不支持,是无法运行的);

第二步、找到opencl库

在你的设备中找到支持 opencl 的库(这个库通常位于 /vendor/lib/libOpenCL.so );

第三步、建立动态库

把第二步中找到的库,pull出来,作为作为编译程序的动态库

第四步、引用 opencl 头文件

在 android 工程中正常编写 opencl 程序,引用 opencl 头文件。

备注:android 编译的时候直接链接上面的库,在 Ja 端编译的时候用 System.load() 来载入该 opencl 库。

第五步、按照普通NDK程序运行

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 无缝集成。

另外,现在马上就是“金九银十跳槽期”了,有不少朋友都在 跃跃欲试了 ,对于程序员来说,要学习的知识内容、技术有太多太多难点,要想不被面试淘汰就只能提前做好复习规划、认真刷题,在学习中不断提升自己,个人建议在面试之前 给自己完整的知识梳理 和 刷题 是必不可少的。 做知识梳理能加深你对原理的掌握程度,而刷题能提高你对技术面试的广度和深度。

请记住,从来都是只是我们去适应环境,而不是环境来适应我们!

附上我之前收集的 二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴) 和我 自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总共计732页)。

腾讯Android面试真题(Ja部分)

腾讯Android面试真题(Android部分)

一二线互联网公司Android面试真题分类总览

手机GPU越来越重要,而它,始终保持强悍

用手机玩游戏,已经成为当下很多人主流的娱乐方式。根据音像与数字出版协会的数据,2021年,游戏市场实际销售收入达到2965.13亿元,较去年增收178.26亿元,同比增长6.4%。移动游戏从来没有像今天这样一派繁荣,炙手可热。

而支撑数以亿计玩家在方寸大小的智能手机中获得畅快游玩体验的关键,离不开一枚小小的计算部件:GPU。

没错,随着移动游戏的繁荣,GPU在智能手机中的地位正变得日益重要,它的图形运算能力的强弱,是我们能否获得游戏体验的关键。而其实,GPU也并不是从手机产业发展的一开始就很重要,它的“上位”之路,某种程度上也体现了智能手机算力中心转移的趋势。

GPU地位的攀升之路

回想智能手机发展的最初阶段,消费者对于手机处理器的认知还普遍相对较浅,即便是稍有了解的数码爱好者,直观印象中也是将CPU和处理器直接画等号。因为那个时候,大家对于智能手机的使用主要还围绕在生活场景,聊天、看,看视频,刷朋友圈、刷人人网等等,更多还是考验CPU的运算能力。而当年比较流行的主流手游如《水果忍者》、《愤怒的小鸟》等等,对于图形运算的需求也并不高。

所以,智能手机发展初期,CPU处于的算力中心地位,而CPU本身也经历了从单核到双核,再到四核、八核乃至十核的发展之路,整体性能也是一代一代地水涨船高。渐渐地人们发现,CPU的性能不断升级,在应对日常使用各种生活、娱乐类App时已经绰绰有余,对于绝大多数用户来说,日常使用手机卡顿的情况也越来越罕见。甚至市面上出现了CPU性能过剩的观点。

这样的观点是否正确我们姑且不论,但至少众多因素显示,CPU的性能堆料就其应用场景来说已经接近饱和,再持续拉高频率,或者增加核心数,对于实际体验的增益已经比较有限。

而实际上,对于手机芯片制造商来说,他们其实并不担心这一点,也无必要盲目追逐CPU更夸张的性能,因为在智能手机市场自然发展的过程中,已经出现了“投入产出比”更高的算力增长之路,GPU正是其中的关键之一。

GPU也就是图形处理器,它的架构设计天生擅长大规模的并行运算,在浮点运算、并行计算等方面的性能可以说是CPU的数十倍乃至上百倍。在图形渲染过程中,有很多大量、重复的渲染工作,GPU就是完成这些工作的“选手”。

而GPU在智能手机中的算力地位越来越重要,和移动手游的强势崛起密不可分。或者从另一个角度说,智能手机经历的初期的普及之后,其应用场景和功能被不断挖掘,早已不局限于日常使用,而游戏,无疑就是智能手机核心应用场景外拓的“阵地”。

任何趋势的转变都会伴随一个标志性,来集中体现蓄势已久的力量,而在国内,引爆这个阵地的,非手游《王者荣耀》的火热莫属。

《王者荣耀》在2015年11月正式开启公测,一个月时间日活跃用户就冲到了750万,由此,它开启了一段光辉的历史,2020年11月日活用户更是突破了1亿。业内普遍认为,《王者荣耀》真正开启了手游的时代,而此后随着《和平精英》等手游的大热,移动游戏的光芒掩盖了端游。

《王者荣耀》不仅是手游时代启幕的标志,更了对终端图形处理性能的要求上升到新的阶段。游戏中更加多彩细腻的画面以及复杂的光照和粒子,都对手机GPU的图形处理能力提出了更高的挑战,特别是当时《王者荣耀》的高帧率模式不是面向所有机型开放的,而高帧率下,玩家能够获得更好的游戏体验和更高的胜率。是否支持《王者荣耀》高帧率模式,一定程度上成为衡量当年手机GPU性能的一个标尺。

手游的火热,游戏玩家的与日俱增,让行业意识到GPU对于智能手机综合娱乐体验的重要性,由此,GPU开始逐步成为和CPU一样判断手机性能的关键指标,重要性不断攀升。

接着向后发展,移动游戏的种类不断丰富,画质也不断进化,对手机GPU的性能、技术特性的要求也是越来越苛刻。

别说《王者荣耀》在经历几次大版本更新后画质较之过去更加细腻真实,后来像《狂野飙车9》、《明日之后》、《第五人格》等等,乃至最近火热的《原神》、《暗黑破坏神:不朽》等,都拥有不输端游级逼真画质。

这些游戏对手机GPU的要求,不仅仅是运算性能要越来越高,更需要移动端GPU引入一系列面向专业游戏场景的更高阶的技术特性。比如高通,他们于2015年在高通Adreno530GPU上首次引入了Vulkan特性,可以实现更逼真的图像效果,后来又陆续引入了高动态范围(HDR)、基于物理渲染(PBR)、可变分辨率渲染(VRS)等一系列先进的技术特性,带动手机GPU的整体能力越来越强大,而不仅仅是计算性能。

在这个过程中,GPU也越来越成为消费者在移动端获得娱乐体验的关键,在智能手机综合体验中扮演的角色越来越重要。

当然,在智能手机发展过程中,推动GPU地位提升的不仅只有游戏,同样,GPU能提不断跃升,对手机体验的影响也不局限在游戏。

移动互联网发展越来越成熟,各大应用提供商的App也越来越精致,全面,即便是日常类App,也经常会用到很多逼真渲染的元素,比如3D地图导航、电商平台红包活动的等等,这些优质体验,都离不开GPU性能的提升。

还有现在手机屏幕刷新率越来越高,也需要强大的GPU运算能力,才能为用户带来稳定、流畅的玩机体验,更别说一些AR增强现实类应用的流行,想要获得的体验,GPU都是背后的核心支撑点之一。

高通AdrenoGPU,不断进化的历程

说到GPU的重要性越来越高,总不免谈到智能手机平台比较出色的GPU产品,若问在安卓阵营,那么来自骁龙移动平台的高通AdrenoGPU无疑是一个避不开的角色。

2008年,高通从AMD手上收购了ATI业务相关的移动设备和技术,在ATIImageon系列低功耗GPU的相关技术的基础上,高通研发出了AdrenoGPU,由此成为安卓阵营具有自主原创研发GPU架构的芯片供应商。

2011年是移动互联网元年,也是智能手机早期发展的时期,高通在旗下骁龙S1系列处理器中使用了Adreno家族的枚GPU——高通Adreno130,这款处理器主要在MSM72XX系列芯片中使用,支持OpenGLES1.1、OpenVG1.1、EGL1.3等图形技术。代表的机型有HTCHero等。

经过代的尝试之后,高通很快在2011年同年又推出了比较出名的高通Adreno220GPU,它的性能相比代立刻有很大的提升,支持更高分辨率的游戏渲染,当年的爆款手机如小米M1就搭载的这款GPU。

经过了几代产品的积淀,高通在2013年推出了非常经典的骁龙800处理器,其搭载的高通Adreno330GPU在当年也红极一时,它相比前代高通Adreno320在图形处理性能上提升达50%。并且支持OpenGLES3.0、DirectX、OpenCL、RenderscriptCom和FlexRender认冉耐夹魏图扑憬涌(API)。在它加持下的经典机型更是数不胜数,比如三星NoteIII、小米3、Nexus5等等。

随后在2015年高通推出的骁龙820也是一代经典处理器,其搭载的高通Adreno530GPU更是强悍无比,它相比前代高通Adreno430功耗降低高达40%,性能提升高达40%,支持众多OpenGLES3.1+AEP(Android扩展包)、Renderscript、OpenCL2.0等图形计算技术,更首次引入了Vulkan标准,从而带来更逼真的3D图形效果和更高效的GPU计算。

2017年,骁龙835移动平台又是一代神U,其搭载的高通Adreno540性能相比高通Adreno530提升达25%,频率更是来到了710MHz,同时支持OpenGLES3.2、完整的OpenCL2.0、Vulkan和DX12,强大的能力让拥有高通Adreno540的手机在当年高帧率模式下运行《王者荣耀》能够全程稳定60fps无压力。不仅游戏,高通Adreno540还在当年火热的VR应用上展现出了强大的能力,是那年手机VR最合适的选择。

2017年末,高通在骁龙845移动平台上推出的高通Adreno630GPU进一步增强了在XR领域的性能表现和技术能力。然后是2018年,骁龙855移动平台上的高通Adreno640GPU性能继续提升20%,同时通过在GPU中整合微控制单元来进一步降低能耗。不仅如此,高通Adreno640GPU还支持了Vulkan1.1、高动态范围(HDR)和基于物理渲染(PBR)技术,将游戏画面体验带到了全新的水平。

2019年,随着骁龙865移动平台的发布,高通Adreno650GPU也进一步提升自己的实力,它的计算单元(ALU)比高通Adreno640多50%,像素着色器的频率速度也提高了50%,整体性能提升了25%。

同时,高通Adreno650GPU也次在安卓阵营实现端游级正向渲染技术,可以让游戏开发者引入端游级光源和后处理,以创造全新水平的逼真移动游戏体验。不仅如此,高通Adreno650还次支持可更新驱动特性和AdrenoHDR快速混合技术(AdrenoHDRFastBlend),都能为玩家带来的游戏体验。

接着就是在去年的骁龙888移动平台上,在高通Adreno660GPU中引入可变分辨率渲染(VRS)技术,让GPU运行游戏的工作负载大大降低,从而能够带来更加出色的体验。

总结过去可以看到,经过这么多年的发展沉淀,骁龙移动平台的高通AdrenoGPU已经成为一个性能强大且技术内涵丰富的“子平台”,也早已坐稳了安卓领域最强GPU的名号,但是,移动平台对于用户体验的探索是无止尽的,对于高通AdrenoGPU来说,也只有通过不断的进步,才能始终满足消费者对于移动游戏及其他图形体验越来越高的需求。正因如此,我们在今年看到了全新一代骁龙8移动平台上比强更强的全新高通AdrenoGPU。

全新一代骁龙8移动平台,高通AdrenoGPU新的时代

随着全新一代骁龙8移动平台命名规则的改变,Adreno系列GPU的命名也得到简化,简简单单的“高通AdrenoGPU”也预示着新的开始。

相比全新高通KryoCPU,骁龙8的GPU提升其实是一个更耀眼的存在。全新高通AdrenoGPU采用全新架构,旨在显著提升明年游戏和XR设备以及3D密集型游戏应用的性能和能效。

具体说,全新高通AdrenoGPU的图形渲染能力提升30%,并且游戏时的能效提升25%,看起来已经很不错了,但这只是高通AdrenoGPU整体能力提升的很小一部分。

高通AdrenoGPU在性能和能效提升的基础上,还整合了更多图形渲染已经开发、应用的新技术、新特性,真正壮实了新一代GPU的肌肉。

比如,高通AdrenoGPU对Vulkan图形驱动进行多项优化,使移动游戏性能提升高达60%,这是一个非常可观的提升,预计搭载骁龙8的终端在游戏画面表现上会有非常显著的提升。

还有,在去年可变分辨率渲染(VRS)技术之上,骁龙8进一步升级,带来了VRSPro系统(可变分辨率渲染进阶版),该系统现已支持基于图像的VRS。开发者可以基于屏幕位置设置渲染分辨率,能够更加高效地渲染大像素组和小像素组。

具体来说,VRSPro能够为游戏开发者在调优游戏性能时提供更精细的颗粒度控制,并且无需降低视觉质量。现在,游戏内容创作者可以决定环境中的哪些特定部分需要应用VRS。

在全新高通AdrenoGPU上,高通还引入了一项独特技术,即Adreno图像运动引擎(AdrenoFrameMotionEngine)。该技术可以通过利用历史帧数据和GPU优化运动估计,支持该特性的游戏能够生成更多帧,让游戏以双倍帧率运行,同时保持近乎相同的功耗。

接着是立体渲染技术,高通AdrenoGPU实现了端游级立体渲染,支持打造逼真的烟雾效果,烟雾能够在环境中飘散和流动。当玩家在骁龙8上进行游戏时,将更加身临其境。我们知道,烟雾在游戏中很常用,对于画质的提升也很关键,但是好的烟雾效果却很难得,因此高通AdrenoGPU的立体渲染技术非常值得期待。

针对全新高通AdrenoGPU,高通还推出了骁龙游戏工具包(SnapdragonGameToolkit)。它包含高通技术公司游戏和图形图像专家多年的工作成果和示例代码。比如,在SnapdragonGameToolkit中,高通提供了骁龙遮挡剔除插件。当应用于GPU帧零时延的游戏时,该插件能够利用基于CPU的自定义光栅化引擎,使处理速度提升高达16倍。这能够支持游戏开发者在现有性能和功耗预算内创建更细致、视觉更丰富的游戏环境。

在用户层面,全新高通AdrenoGPU还拥有了控制面板功能,可以让玩家能够在他们的游戏中自定义关键GPU参数,按照他们最喜欢的方式进行游戏。

在种种技术的加持下,全新高通AdrenoGPU的实际表现无疑非常让人期待。而在实际搭载骁龙8的终端上市之前,成绩无疑是最主要的参考。IT之家此前也有机会对搭载骁龙8的工程机做了测试,结果的确很让人欣喜。

在安兔兔9.2.1版本的中,骁龙8总分1031508,其中高通AdrenoGPU达到451861,表现十分优异。

而在专门GPU平台《GFXBench5》上,高通AdrenoGPU的成绩如下:

●Manhattan3.0Offscreen(1080p)(FPS):267

●T-Rex-Offscreen(1080p)(FPS):449

●CarChaseOffscreen(1080p)ES3.1(FPS):98

●Manhattan3.1Offscreen(1080p)(FPS):176

●AztecRuinsVulkan(HighTier)Offscreen(1440p)(FPS):49

●AztecRuinsOpenGL(HighTier)Offscreen(1440p)(FPS):43

可以看到,全新高通AdrenoGPU在各大平台的成绩相比上一代都有非常显著的提升,我们可以期待,其强大的能力可以消费者在移动端的娱乐体验进入一个新的次元。

结语

对于想更快一睹骁龙8的全新高通AdrenoGPU真正实力的朋友来说,不用等太久。12月28日,搭载骁龙8的全新旗舰小米12系列手机即将发布,根据小米的介绍,小米12Pro玩《王者荣耀》30分钟,始终稳定在119.9帧,温度也能控制在43.5℃,相当出色,进一步拉高了小伙伴们对全新高通AdrenoGPU期待值。

而未来,随着智能手机应用领域的不断拓广挖深,消费者娱乐生活的场景、方式不断多样,GPU的重要性将会得到进一步强化,相信高通AdrenoGPU会不断升级,始终为大家带来的体验。

如何查看android 是否支持opencl

AMD宣称支持,不过实际情况是基本不支持。就算打了 ATI Stream SDK 这个开发包也是一样。毕竟OpenCL1.0直到2008年年底才正式敲定,而RV770这个芯片在06年就已经开始投入开发。因此中间有2年多的断档。

这天天下雨,

步、确认

这是最关键一步,首先是检查你的设备是否支持 opencl (如果不支持,是无法运行的);

第二步、找到opencl库

在你的设备中找到支持 opencl 的库(这个库通常位于 /vendor/lib/libOpenCL.so );

第三步、建立动态库

把第二步中找到的库,pull出来,作为作为编译程序的动态库

第四步、引用 opencl 头文件

在 android 工程中正常编写 opencl 程序,引用 opencl 头文件。

备注:android 编译的时候直接链接上面的库,在 Ja 端编译的时候用 System.load() 来载入该 opencl 库。

第五步、按照普通NDK程序运行