什么是Qualcomm MARE?
MARE是一个C++用户态库,该库能让NDK开发人员利用SOC的多核和异质处理资源(GPU等处理器) 。MARE是Qualcomm并行计算和异质计算的平台。MARE针对Snapdragon SoCs进行了优化,使得利用API进行并行计算,退出,节电更为简单。
MARE是否支持GPU和DSP?
MARE现在在Android上支持CPU和GPU并行计算。我们为MARE勾勒出了美好的未来,更多异质计算能力在不远的将来被实现。GPU只在一些特定的系统上被支持。详情请查阅安装指南
MARE会开源吗?
MARE将会在evaluation licensing terms下作为技术预览发布在Qualcomm 开发者网络上。将MARE开源也在考虑中,这部分的决策需要参考于广大用户的需求。
除了Android系统外还支持其他的什么系统?
MARE的目标是基于NDK的多核Android设备开发。MARE能在Linux,Windows,Mac OS X下进行开发和测试,基于开发者的需求,其他移动平台也在考虑中。
MARE是否要求特定的Android内核?
MARE当前是用户态库。这就是说开发人员能够在最小依赖的情况下在尽可能多的Android系统上部署和使用MARE。
MARE在所有系统上的运行情况相同吗
由于是用户态库,用MARE开发的应用可以被部署到大多数Android设备上。实际的性能因设备和规格(频率,内核数)而异,MARE针对广泛的Snapdragon设备进行调优,提供最优性能和能源管理。
Android NDK支持GCC和Clang。这两样在MARE中都可以使用吗?
MARE可以与GCC toochain(编译器和libstdc++库)一起使用,同时也支持Snapdragon LLVM Android编译器。
MARE是否支持数据并行?
MARE支持任务并行和数据并行。对于数据并行,MARE为集合和数组提供一组通用模式,比如并行迭代器,并行的map,并行transform。程序员可以直接创建和启动任务。请查看MARE文档和教程。
MARE会告诉我们能进行哪些并行计算吗?
开发人员必须努力重构他们的顺序执行代码,并创建并行版本基础框架框架。MARE接着允许他们高效的进行并行方式表达,并在多核移动设备上达到他们想要的性能。集成工具和IDE支持已经在将来的计划中。
MARE和OpenCL之间的关系是什么?Mare和RenderScript间的关系?MARE和其他并行库的关系?
MARE 的设计目标是在保证能源消耗和性能可用性的前提下为程序员支持并行和异质计算。MARE建立在深厚的并行计算传统之上,利用已有的抽象层次,与此同时让程序员提高开发效率,比如2层API设计,与多核和异质并发性无缝结合,同时不用显式的管理线程。这让它区别于其他类似技术。关于这些不同的更详细的讨论请参考MARE 白皮书.