2 ms·
pocl (Portable Computing Language) [1] provides a remote backend [2] that allows for serialization and forwarding of OpenCL commands over a network. Another so
by test20240809 2y ago
pocl (Portable Computing Language) [1] provides a remote backend [2] that allows for serialization and forwarding of OpenCL commands over a network.
Another solution is qCUDA [3] which is more specialized towards CUDA.
In addition to these solutions, various virtualization solutions today provide some sort of serialization mechanism for GPU commands, so they can be transferred to another host (or process). [4]
One example is the QEMU-based Android Emulator. It is using special translator libraries and a "QEMU Pipe" to efficiently communicate GPU commands from the virtualized Android OS to the host OS [5].
The new Cuttlefish Android emulator [6] uses Gallium3D for transport and the virglrenderer library [7].
I'd expect that the current virtio-gpu implementation in QEMU [8] might make this job even easier, because it includes the Android's gfxstream [9] (formerly called "Vulkan Cereal") that should already support communication over network sockets out of the box.
[1] https://github.com/pocl/pocl https://github.com/pocl/pocl
[2] https://portablecl.org/docs/html/remote.html https://portablecl.org/docs/html/remote.html
[3] https://github.com/coldfunction/qCUDA https://github.com/coldfunction/qCUDA
[4] https://www.linaro.org/blog/a-closer-look-at-virtio-and-gpu-virtualisation/ https://www.linaro.org/blog/a-closer-look-at-virtio-and-gpu-...
[5] https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/android-emugl/DESIGN https://android.googlesource.com/platform/external/qemu/+/em...
[6] https://source.android.com/docs/devices/cuttlefish/gpu https://source.android.com/docs/devices/cuttlefish/gpu
[7] https://cs.android.com/android/platform/superproject/main/+/main:device/generic/opengl-transport/host/libs/virglrenderer/README.md https://cs.android.com/android/platform/superproject/main/+/...
[8] https://www.qemu.org/docs/master/system/devices/virtio-gpu.html https://www.qemu.org/docs/master/system/devices/virtio-gpu.h...
[9] https://android.googlesource.com/platform/hardware/google/gfxstream/ https://android.googlesource.com/platform/hardware/google/gf...
- fpoling 2y agoZscaler uses a similar approach in their remote browser. WebGL in the local browser exposed as a GPU to a Chromium instance in the cloud.