有没有人有通过应用程序或其他方式在安卓设备上运行PyOpenCl的经验?我似乎一开始就找不到任何线索。
我的设备规格如下:
ANDROID操作系统版本:9 CPU ABI : arm64-v8a CPU ABI 2: armeabi-v7a
这是一台高通Snapdrag855
谢谢!
发布于 2020-10-19 03:41:44
Chaquopy绝对是在Android上使用Python的好方法。然而,正是因为这个问题,我还没有开始使用。我不认为它会给你任何图形处理器的支持,OpenCL或其他。如果我错了,我可能会考虑把它用在PyOpenCL上。
发布于 2020-05-15 06:33:02
所以我看了一下OpenCL在安卓上的现状。
我发现的最后一次发布的指标是2018年年中推特团队为ACM会议/出版物而发布的:Analysis of OpenCL Support for Mobile GPUs on Android
当时,他们在2017年底对设备进行了抽样。他们发现2/3的设备都有OpenCL。然后,作者详细讨论了本地内存与全局内存的性能,并提供了支持的OpenCL API的有趣细分。请参阅下面论文中的表格。
现在意识到OpenCL并不是由Android框架正式支持的,甚至可能被系统的其他部分使用(渲染脚本、制造商的摄像头等)。因此,您的体验可能会因上下文而异。
回到你的主要问题。
您有几种可能的路径:
1)如果你想在安卓上运行Python环境,看看Termux,它有some level of Python support,虽然你可以尝试通过pip
安装pyopencl
,当我尝试它时,我得到了一个错误。我认为错误部分来自构建环境,部分来自不知道/不具有正确的OpenCL driver。
2)通过Pypy将代码从Python转换为ARM64。即使有了驱动程序,它对OpenCL代码的支持程度如何,我不知道。
其他选择是后者的变体,要么构建一个Android应用程序,通过JNI/Android NDK调用从Python编译的ARM代码。或者让它在Termux环境中运行。
根据您的应用程序,使用像Chaquopy这样的商业许可产品可能会更容易移植/迁移,这些产品似乎有一个用于开源项目的自由层。
https://stackoverflow.com/questions/61804640
复制相似问题