GPGPU Android仿真器(Renderscript/OpenCL)

GPGPU Android仿真器(Renderscript/OpenCL),android,opencv,android-emulator,amd-processor,Android,Opencv,Android Emulator,Amd Processor,更具体地说,我想在Android仿真器中运行OpenCL/Renderscript代码,该仿真器实际上运行在我计算机的GPU上,而不是CPU上。不幸的是,我使用的是AMD的CPU和GPU 我知道AMD通过SDK支持OpenGL ES(所有东西都非常支持OpenCL),但这就是我在这方面所得到的——我发现的关于模拟器的唯一OpenCL/Renderscript信息是,它们要么根本不工作,要么,如果我有英特尔CPU,我可以在emulator中安装OpenCL,但它只使用CPU(坦白说,如果我的emu

更具体地说,我想在Android仿真器中运行OpenCL/Renderscript代码,该仿真器实际上运行在我计算机的GPU上,而不是CPU上。不幸的是,我使用的是AMD的CPU和GPU

我知道AMD通过SDK支持OpenGL ES(所有东西都非常支持OpenCL),但这就是我在这方面所得到的——我发现的关于模拟器的唯一OpenCL/Renderscript信息是,它们要么根本不工作,要么,如果我有英特尔CPU,我可以在emulator中安装OpenCL,但它只使用CPU(坦白说,如果我的emulator在幕后还没有这样做,我也不会感到惊讶——OpenCV运行时没有发生意外,但OpenCL-Z说没有OpenCL支持)

是否有某种方法可以将命令从仿真器发送到我的操作系统并让它自动运行?我想到的唯一方法是保存和加载一个文本文件,考虑到我正在运行2个模拟器实例,这个文件可能不会更快(或对我的硬盘有好处)

我发现官方emulator支持RenderScript,但说emulator不适合我的用例,我强烈怀疑它是否会使用我的GPU

目前我正在使用Memu,因为Bluestacks 3在运行2个实例时使用了更多的资源,而第2个实例由于某种原因与adb命令/root不能很好地协同工作—它认为它可以工作,但它什么也做不了。如果有一个更快的模拟器来运行2个实例,我相信它会有所帮助,但奇怪的是,比较它们是困难和耗时的(特别是当它们中的每一个都像“不,我是最快的-看看我的条形图!”lol),最终我相信我的问题是OpenCV没有得到GPU加速(因为它在我的手机上运行得更快)而不是模拟器的基本速度

我已经启用了AMD的虚拟化功能(经Leomon或w/e确认),并在Memu的manager中启用了这些功能。那么,这可能已经在幕后发挥作用了?无论哪种方式,一旦OpenCV的功能发挥作用,每个实例的仿真成本都会增加10%(从60%增加到80%)

使用一种语言(如Python)Python可以钩住OpenCL和OpenCV;ADB可以用来获取屏幕截图的帧缓冲区,或者Python可以捕获模拟器的窗口渲染

或者,可以使用SocketIO(在我的例子中是Flask Socket IO和Javascript的客户端Socket IO)建立连接,它们可以通过这种方式进行通信。通过模拟器和真实设备上的浏览器进行确认。每个模拟器都有与本机操作系统通信的端口。我最终选择不采用这种方式,因为这有点复杂(2台服务器,不同的语言,不比ADB优于LAN)但这是一个选项。Java(iirc)也可以运行SocketIO,对于许多熟悉该语言并希望在Android设备上本机运行某些东西的开发人员来说,这可能是一个不错的选项

感觉身体不适,在atm机上打电话,所以我为目前缺乏示例和帮助表示歉意。希望我能抓紧时间解决这个问题,但坦率地说,除了我目前的目标之外,这方面的使用案例很少,而且一开始就很适合