【发布时间】:2017-12-30 01:19:32
【问题描述】:
更具体地说,我想在实际运行在我计算机的 GPU 而不是 CPU 上的 Android 模拟器中运行 OpenCL / Renderscript 代码。不幸的是,我使用的是 AMD CPU 和 GPU。
我知道 AMD 通过 SDK 支持 OpenGL ES(并且几乎所有东西都支持 OpenCL),但就我在这方面的了解而言——我发现的关于模拟器的唯一 OpenCL / Renderscript 信息是它们要么根本不工作,或者,如果我有英特尔 CPU,我可以在模拟器中安装 OpenCL,但它只会使用 CPU(坦率地说,如果我的模拟器在幕后没有,我不会感到惊讶已经这样做了——OpenCV 运行正常,但 OpenCL-Z 表示不支持 OpenCL)。
有没有办法将命令从模拟器发送到我的操作系统并让它自动运行?我想出的唯一方法是保存和加载一个文本文件,考虑到我正在运行 2 个模拟器实例,该文件可能不会更快(或对我的硬盘驱动器有益)。
我发现官方仿真器支持 RenderScript,但表示仿真器不适用于我的用例,我强烈怀疑它会使用我的 GPU。
我目前正在使用 Memu,因为 Bluestacks 3 在运行 2 个实例时使用了更多资源,而第二个实例由于某种原因不能很好地与 adb 命令/root 一起工作 - 它认为它正在工作,但它没有做任何事物。如果在运行 2 个实例时有一个更快的模拟器,我相信它会有所帮助,但奇怪的是,比较它们既困难又耗时(尤其是当每个实例都像“不,我是最快的 - 看看我的条形图!”大声笑),最终我相信我的问题在于 OpenCV 没有获得 GPU 加速(因为它在我的手机上运行得更快)而不是模拟器的基本速度。
我已启用 AMD 的虚拟化功能(已通过 Leomoon 或 w/e 确认),并且已在 Memu 的管理器中启用。那么,也许这已经在幕后工作了?无论哪种方式,一旦 OpenCV 的东西开始发挥作用,每个实例的仿真成本都会增加 10%(从 60% 增加到 80%+)
【问题讨论】:
标签: android opencv android-emulator amd-processor