A Survey of Techniques for Improving Security of GPUs <s> INTRODUCTION <s> Recent years have witnessed phenomenal growth in the computational capabilities and applications of GPUs. However, this trend has also led to a dramatic increase in their power consumption. This article surveys research works on analyzing and improving energy efficiency of GPUs. It also provides a classification of these techniques on the basis of their main research idea. Further, it attempts to synthesize research works that compare the energy efficiency of GPUs with other computing systems (e.g., FPGAs and CPUs). The aim of this survey is to provide researchers with knowledge of the state of the art in GPU power management and motivate them to architect highly energy-efficient GPUs of tomorrow. <s> BIB001 </s> A Survey of Techniques for Improving Security of GPUs <s> INTRODUCTION <s> As both CPUs and GPUs become employed in a wide range of applications, it has been acknowledged that both of these Processing Units (PUs) have their unique features and strengths and hence, CPU-GPU collaboration is inevitable to achieve high-performance computing. This has motivated a significant amount of research on heterogeneous computing techniques, along with the design of CPU-GPU fused chips and petascale heterogeneous supercomputers. In this article, we survey Heterogeneous Computing Techniques (HCTs) such as workload partitioning that enable utilizing both CPUs and GPUs to improve performance and/or energy efficiency. We review heterogeneous computing approaches at runtime, algorithm, programming, compiler, and application levels. Further, we review both discrete and fused CPU-GPU systems and discuss benchmark suites designed for evaluating Heterogeneous Computing Systems (HCSs). We believe that this article will provide insights into the workings and scope of applications of HCTs to researchers and motivate them to further harness the computational powers of CPUs and GPUs to achieve the goal of exascale performance. <s> BIB002 </s> A Survey of Techniques for Improving Security of GPUs <s> INTRODUCTION <s> GPUs have become an integral part of modern systems, but their implications for system security are not yet clear. This paper demonstrates both that discrete GPUs cannot be used as secure co-processors and that GPUs provide a stealthy platform for malware. First, we examine a recent proposal to use discrete GPUs as secure co-processors and show that the security guarantees of the proposed system do not hold on the GPUs we investigate. Second, we demonstrate that (under certain circumstances) it is possible to bypass IOMMU protections and create stealthy, long-lived GPU-based malware. We demonstrate a novel attack that compromises the in-kernel GPU driver and one that compromises GPU microcode to gain full access to CPU physical memory. In general, we find that the highly sophisticated, but poorly documented GPU hardware architecture, hidden behind obscure close-source device drivers and vendor-specific APIs, not only make GPUs a poor choice for applications requiring strong security, but also make GPUs into a security threat. <s> BIB003
The computing industry is currently at an interesting inflection point. GPUs, which were originally used for a narrow range of graphics (e.g., video-gaming) applications, are now spreading their wings to a broad spectrum of compute-intensive and mission-critical applications, most notably, cryptography, finance, health, space and defense. After passing the initial 'rounds' of scrutiny on the metrics of performance and energy BIB001 BIB002 , it is time that GPUs face and pass the test on the metric of security, which is especially crucial in mission-critical applications. In fact, a recent incident has strongly highlighted the need and even urgency of improving GPU security. A malicious person hid a bitcoin miner in ESEA (a video game service) software  . This miner used the GPUs in users' machines for mining bitcoin without their knowledge. The miner overheated and harmed the machines by overloading the GPUs. Thus, the malicious person earned cryptocurrency at the expense of the users' resources. This incident shows that the community can no longer afford to ignore GPU security considerations. While a large part of the conventional wisdom gained from CPU security research is also applicable to GPU security, both attacking and securing GPU present challenges of their own. Many attacks exploit the correlation between an event and its impact such as the change in latency, power consumption or number of memory accesses. However, due to its massively-parallel architecture and undocumented management policies, isolating individual events and their impact is generally not feasible. These very reasons along with the fast-evolving architecture of GPUs, also make it difficult to design effective security solutions for them BIB003 . These factors demand a careful study of GPU security. Several recent works reveal security vulnerabilities of GPUs along with their countermeasures. Contributions: In this paper, we present a survey of techniques for analyzing and improving the security of GPUs. Figure 1 presents an overview of the paper. Section 2 first presents a brief background on important concepts and terms. Then, it highlights the need for improving GPU security and tradeoffs involved in protecting them. After this, it presents a classification of research works and also summarizes their key ideas. In security jargon, attacks are divided into two types: "passive attacks" which leak system-information but do not the change the system, and "active attacks" which change the data or operation of the system. We review passive attacks in Sections 3 and 4 and active attacks in Section 5. Specifically, Section 3 reviews attacks for leaking sensitive information. Section 4 discusses side and covert-channel attacks. Section 5 discusses GPU BIB003 Leakage in virtualization and cloudcomputing scenarios §3.5 Detecting leakage through taint-analysis §3.6 Protecting sensitive data using system management mode