在android设备上运行PyOpenCl

问题描述 投票:0回答:1

有人有在Android设备上通过应用程序或其他方式运行PyOpenCl的经验吗?我似乎找不到任何线索开始。

我的设备规格如下。

ANDROID OS VERSION : 9CPU ABI : arm64-v8aCPU ABI 2 : armeabi-v7a。

这是一款高通骁龙855的产品。

谢谢!!!

android opencl pyopencl
1个回答
0
投票

所以我看了一下Android上OpenCL的现状。

我找到的最后一个发表的指标是来自Twitter团队在2018年中的一个ACM conferencepublication。OpenCL对Android上移动GPU的支持分析》。

当时他们在2017年底对设备进行了抽样调查。他们发现,23%的设备都有OpenCL。然后,作者详细介绍了性能的Local vs Global内存,并提供了一个有趣的支持OpenCL API的分类。请看下面论文中的表格。

Local memory type used by manufacturer

OpenCL versions supported by GPU models

现在意识到OpenCL不是Android框架的官方支持,甚至可能被系统的其他部分(Renderscript,制造商的相机等)使用,所以你的经验可能会根据上下文有所不同。

回到你的首要问题。

你有几个可能的路径。

1)如果你想在Android上运行Python环境,可以看一下以下内容 Termux 其具有 某种程度的Python支持 虽然你可以尝试安装 pyopencl 通过 pip 当我试过后,我得到了一个错误。我相信这个错误部分是由于构建环境,部分是由于不知道有正确的 OpenCL驱动程序.

2) 将您的代码从Python转换为ARM64,通过 Pypy. 即使有驱动,它对OpenCL代码的支持程度如何,我不知道。

其他的选择是后面的变化,要么构建一个Android应用,通过JNIAndroid NDK调用到从Python编译的ARM代码中。或者让它在Termux环境中运行。

根据您的应用,使用商业许可产品(如:JNIAndroid NDK)进行移植可能更容易。查库比 貌似对开放源码项目的自由度。

© www.soinside.com 2019 - 2024. All rights reserved.