https://pro.radeon.com/en/virtualized-graphics-open-source/ https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization What is GIM? GIM (GPU-IOV Module) is a Linux kernel module for AMD SR-IOV based HW Virtualization (MxGPU) product. It can support KVM, open source Xen and any other Linux kernel based hypervisors with necessary kernel compatibility modification. GIM is reponsible for but not limits to: GPU IOV initialization, virtual function configuration and enablement, GPU scheduling for world switch, hung detection and virtual function level reset (FLR), PF/VF hand shake and other GPU utilities. SOFTWARE REQUIREMENTS: The tested host OS for GIM is Ubuntu16.04.2. All other hypervisor SW(KVM, XEN, QEMU, LIBVIRT) versions are aligned with default version of OS. GIM supports KVM in Ubuntu16.04, and supports XEN in CentOS7.3. Ubuntu 16.04.2 server 4.4.0-75-generic KVM 4.4 The tested guest OS Linux Ubuntu16.04 LTS 64bit; CentOS7.3 64 bit Windows Win7 64bit; Win10 TH2 64bit HOW TO CONFIGURE BUILD: Read this section carefully. New configuration options would be added in each release, and odd problems will turn up if the configuration files are not set up as expected. Alternative configuration commands are CONFIG_GIM_HEARTBEAT_TIMER Heartbeat timer provides a useful way to display statistics of GIM periodically for debug purpose. Currently, it only counts the number of scheduler timer ticks and world switches, if the configuration is defined. Edit configuraiton in Makefile GIM is a external kernel driver module. The driver configuration is different from upstream kernel driver. Now, Edit "KBUILD_CFLAGS" in Makefile is preferred to pass the configuraiton to GIM codes.