×
嵌入式 > 嵌入式开发 > 详情

Qualcomm MARE使多核编程更简单

发布时间:2020-05-22 发布时间:
|

    如果您曾在过去两年中购买过智能手机,那么很有可能您的手机里就有多个CPU子处理器 (核)。手机包装盒上很可能标注着“双核”或“四核”!事实上,2013年是这个行业具有里程碑意义的一年,因为在这一年中多核移动终端的数量超越了PC和服务器的数量。

    多核可以帮助应用程序飞速运行,但前提是这个应用程序在编写时充分利用了多核的优势——而当今大部分应用程序并没有做到这一点。

    这是因为针对多核的编程难度更大,它要求开发人员在其应用程序中重构算法设计,并考虑其算法的并行化。对许多开发人员来说,表达一个并行算法不同部分之间的关系和依赖性,是多核编程最困难的一个方面。开发并行编程最常用的技巧是多线程。在线程少的软件项目中,实施和管理多线程是可行的,但这可能对更复杂的算法和工作负载的开发效率有很大的负面影响。

    去年,美国高通技术公司推出了一个新的编程库,将助力开发人员使用C++编程语言更轻松地实现多核并行,特别是在Android移动平台上。Qualcomm® MARE(多核异步运行环境)提供了一个可以简化并行应用程序编程的API,使开发者可以利用现代智能手机的全部计算性能。两个最先采用Qualcomm MARE的Android应用程序是以及中科创达公司(中国)的UCAM应用和Euvision Technologies(美国)公司的Impala应用。

    中科创达利用了Qualcomm MARE的 API工具构建其UCAM应用,该程序目前可以在Google Play上下载,截至目前全球下载量超过3千万。UCAM采用Qualcomm MARE执行并行实时图像滤镜功能,用户可以选择任一滤镜应用在自己的照片上。并行处理可以加快GIF动画的创建,最终也能使用户从照片中巧妙地切割出人脸或人像,并把他们放置在不同的背景中。

    执行并行实时滤镜功能时,中科创达所使用的代码数量比传统多线程(POSIX线程)少80%,而且实现的性能比其在UCAM应用程序中自己管理线程要高的多。

    “将Qualcomm MARE应用于我们的UCAM全能相机应用,使我们能够非常快速地在各层级的Android终端上充分利用多核CPU性能。我们只需要编写一小部分代码,用于图像过滤以及实施MARE与C++ POSIX线程的照片处理场景,就能获得卓越的性能。” 中科创达工程部高级副总裁邹鹏程说。
 

    Euvision Technologies公司的全新Android应用程序Impala是一个终端相机解决方案,提供了可视化场景识别和照片场景分类。它使用机器学习技术在终端上实现了人工智能。Euvision这样描述它:

    将相机对准时,它甚至能在实际拍照之前识别出即将拍摄的场景。场景识别通过运行在用户手机上的人工智能实现。

    基于智能拍照摄像头“所看到的景象”,类似Instagram的滤镜会自动启用。选定的滤镜均已为常用的拍摄场景而优化。例如,将相机对准拍摄人物时,“Forever Young”(永葆青春)滤镜自动开启,仿佛在您朋友的脸上敷上一层抗皱保湿面膜。

    此外,一旦相机检测到您要拍摄一把蓝莓或肉桂片司康饼,它将自动启用“Now It's Tasty”(即刻美味可口)滤镜。拍摄建筑物或古迹时,所谓的“Empire State”(帝国大厦)滤镜将会开启。该滤镜最适合室外场景,因为它通过改变光线,使图像看上去更加冷艳。

    Impala Mobile研发部负责人Daniel Fontijne表示:“Euvision Technologies公司的Impala移动应用程序中的场景识别软件是并行开发的。用Qualcomm MARE更新我们的软件来最大化这种并行性可谓轻而易举。MARE的另一大优势是可适用于大多数主流平台。它还能实现近乎线性的加速,使我们能够在Android终端上运行实时场景识别。”

    Impala等应用需要连续执行大量代码才能做到实时观看、思考并向您提供操作建议。要想在体验上毫无延迟感,则需要消耗大量的计算。通过安装Qualcomm MARE的数据库和API,Impala能够做到这一点!

    Qualcomm MARE可用于任何搭载多核处理器的Android终端上运行的应用程序。Qualcomm MARE SDK也可用于Linux、Windows或OS X,可使编程人员在转移到移动平台之前,在一个熟悉的环境中开发和调试他们的应用程序。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Recogni:将高端AI芯片推向自动驾驶边缘