• 沒有找到結果。

Conclusion and Future Work

6.1 Summary

In this thesis, we enabled OpenCL support in Kernel-based Virtual Machine by API Re-moting. The proposed OpenCL virtualization framework allows multiplexing of multiple guest VMs over the underlying OpenCL resources to make better utilization of the re-sources. Owing to the characteristic that in KVM each VM is a process in Linux, virtu-alizing OpenCL programs in multiple guest VMs can be modeled as multiple processes accessing the OpenCL resources in the native environment. Although, in our current im-plementation, the virtualization framework only supports running OpenCL programs in GPGPU architectures, the API Remoting scheme is easy to extend for supporting other OpenCL devices.

The evaluation indicates that the virtualization overhead of the proposed framework mainly come from the data transmission and the synchronization between KVM’s “vCPU thread” and our new added “CL thread”, which are directly affected by the amount of data to be transferred for an API call because of the primitive nature of API Remoting and the limited size of the shared memory between hypervisor and guest VMs. The experimen-tal results show that the virtualization overhead is only less than 10% (6.4% on average) for five common GPU-intensive OpenCL programs. Furthermore, a better utilization of OpenCL resources is achieved due to the support of OpenCL multiplexing of the

frame-58

work.

6.2 Future Work

The results in this thesis provide a strong foundation for future work in OpenCL virtual-ization:

• As discussed in Section 3.3.5, the guest OpenCL library can be substituted with a

process virtual machine version. The new guest OpenCL library not only elimi-nates the need of modifying OpenCL programs but ensures the memory coherence of OpenCL memory objects between guest VMs and the hypervisor.

• We will try to reduce the overhead of data transmissions by leveraging the MMU virtualization of x86 architectures, such as Intel EPT and AMD NPT (described in Section 2.3).

• Currently, our virtualization framework supports OpenCL for GPGPU computation which covers most of OpenCL applications. We will support more OpenCL function-alities such as operations of image object and OpenGL extensions to complement the supports.

• For better resource utilization among multiple OpenCL workloads, we will evalu-ate the performance impact in KVM and enhance the scheme of OpenCL resource management in system VM level.

Bibliography

[1] AMD Accelerated Parallel Processing (APP) SDK. http://developer.amd.

com/sdks/amdappsdk/pages/default.aspx.

[2] CUDA: Compute Unified Device Architecture. http://www.nvidia.com/

object/cuda_home_new.html/.

[3] Intel Virtualization Technology. http://www.intel.com/technology/

virtualization/.

[4] Intel°OpenCL SDK.R http://software.intel.com/en-us/articles/

opencl-sdk/.

[5] NVIDIA OpenCL SDK. http://developer.nvidia.com/opencl.

[6] OpenCL—The open standard for parallal programming of heterogeneous systems.

http://www.khronos.org/opencl/.

[7] OpenCL Development Kit for Linux on Power. http://www.alphaworks.

ibm.com/tech/opencl/.

[8] OpenCL, taking the graphics processor beyond graphics. http://developer.

apple.com/technologies/mac/snowleopard/opencl.html.

[9] XML-RPC Specification. http://www.xmlrpc.com/spec.

60

[10] Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the art of virtualization. In Pro-ceedings of the nineteenth ACM symposium on Operating systems principles, SOSP

’03, pages 164–177, New York, NY, USA, 2003. ACM.

[11] Fabrice Bellard. QEMU, a Fast and Portable Dynamic Translator. In Proceedings of the annual conference on USENIX Annual Technical Conference, ATEC ’05, pages 41–41, Berkeley, CA, USA, 2005. USENIX Association.

[12] Ian Buck, Greg Humphreys, and Pat Hanrahan. Tracking graphics state for networked rendering. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware, HWWS ’00, pages 87–95, New York, NY, USA, 2000. ACM.

[13] Micah Dowty and Jeremy Sugerman. GPU virtualization on VMware’s hosted I/O architecture. SIGOPS Operating Systems Review, 43:73–82, July 2009.

[14] J. Duato, F. D. lgual, R. Mayo, A. J. Pe˜na, E. S. Quintana-Ort´ı, and F. Silla. An efficient implementation of GPU Virtualization in High Performance Clusters. In Euro-Par 2009, Euro-Par ’09, 2009.

[15] Vishakha Gupta, Ada Gavrilovska, Karsten Schwan, Harshvardhan Kharche, Niraj Tolia, Vanish Talwar, and Parthasarathy Ranganathan. GViM: GPU-accelerated vir-tual machines. In Proceedings of the 3rd ACM Workshop on System-level Virvir-tualiza- Virtualiza-tion for High Performance Computing, HPCVirt ’09, pages 17–24, New York, NY, USA, 2009. ACM.

[16] Intel Cooperation. Intel°Virtualization Technology for Directed I/O, 1.3 edition, 02R

2011.

[17] M. Tim Jones. Virtio: An I/O virtualization framework for Linux. http://www.

ibm.com/developerworks/linux/library/l-virtio/.

BIBLIOGRAPHY 62

[18] Khronos Group. The OpenCL Specification, 1.1 edition, 06 2011.

[19] Hwanju Kim, Hyeontaek Lim, Jinkyu Jeong, Heeseung Jo, and Joonwon Lee. Task-aware virtual machine scheduling for I/O performance. In Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, VEE ’09, pages 101–110, New York, NY, USA, 2009. ACM.

[20] Jan Kiszka. Architecture of the Kernel-based Virtual Machine (KVM). Technical Sessions of Linux Kongress, 2010.

[21] A. Kivity, Y. Kamay, D. Laor, U. Lublin, and A. Liguori. kvm: the Linux Virtual Machine Monitor. In Proceedings of the 2007 Ottawa Linux Symposium, OLS ’07, pages 225–230, 2007.

[22] H. Andres Lagar-Cavilla, Niraj Tolia, M. Satyanarayanan, and Eyal de Lara. VMM-independent graphics acceleration. In Proceedings of the 3rd international conference on Virtual execution environments, VEE ’07, pages 33–43, New York, NY, USA, 2007. ACM.

[23] Ravi Nair. Virtual machines : versatile platforms for systems and processes. Morgan Kaufmann Publishers, 2006.

[24] NVIDIA Corporation. NVIDIA’s Next Generation CUDATMCompute Architecture:

FermiTM, 1.1 edition, 2009.

[25] Diego Ongaro, Alan L. Cox, and Scott Rixner. Scheduling I/O in virtual machine monitors. In Proceedings of the fourth ACM SIGPLAN/SIGOPS international con-ference on Virtual execution environments, VEE ’08, pages 1–10, New York, NY, USA, 2008. ACM.

[26] Gerald J. Popek and Robert P. Goldberg. Formal requirements for virtualizable third generation architectures. Commun. ACM, 17:412–421, July 1974.

[27] Rusty Russell. virtio: towards a de-facto standard for virtual I/O devices. SIGOPS Operating Systems Review, 42:95–103, July 2008.

[28] Lin Shi, Hao Chen, and Jianhua Sun. vCUDA: GPU accelerated high performance computing in virtual machines. In Parallel Distributed Processing, 2009. IPDPS 2009. IEEE International Symposium on, pages 1 –11, May 2009.

[29] A. Weggerle, T. Schmitt, C. Low, C. Himpel, and P. Schulthess. VirtGL - a lean approach to accelerated 3D graphics virtualization. In Cloud Computing and Virtual-ization 2010, CCV ’10, 2010.

相關文件