As a critical computing resource in multiuser systems such as supercomputers, data centers, and cloud services, a GPU contains multiple compute units (CUs). GPU Multitasking is an intuitive solution to underutilization in GPGPU computing. Recently proposed solutions of multitasking GPUs can be classified into two categories: (1) spatially partitioned sharing (SPS), which coexecutes different kernels on disjointed sets of compute units (CU), and (2) simultaneous multikernel (SMK), which runs multiple kernels simultaneously within a CU. Compared to SPS, SMK can improve resource utilization even further due to the interleaving of instructions from kernels with low dynamic resource contentions.However, it is hard to implement SMK on current GPU architecture, because (1) techniques for applying SMK on top of GPU hardware scheduling policy are scarce and (2) finding an efficient SMK scheme is difficult due to the complex interferences of concurrently executed kernels. In this article, we propose a lightweight and effective performance model to evaluate the complex interferences of SMK. Based on the probability of independent events, our performance model is built from a totally new angle and contains limited parameters. Then, we propose a metric, symbiotic factor, which can evaluate an SMK scheme so that kernels with complementary resource utilization can corun within a CU. Also, we analyze the advantages and disadvantages of kernel slicing and kernel stretching techniques and integrate them to apply SMK on GPUs instead of simulators. We validate our model on 18 benchmarks. Compared to the optimized hardware-based concurrent kernel execution whose kernel launching order brings fast execution time, the results of corunning kernel pairs show 11%, 18%, and 12% speedup on AMD R9 290X, RX 480, and Vega 64, respectively, on average. Compared to the Warped-Slicer, the results show 29%, 18%, and 51% speedup on AMD R9 290X, RX 480, and Vega 64, respectively, on average. 7:2 H. Wu et al.applications [30], and cloud applications [26]. Furthermore, with increasing computing power and new architecture features, new-generation GPUs can support larger and more complex computing tasks. Observation [21,29] has shown the on-chip resource underutilization of single-kernel execution. Therefore, while GPUs become more general, the underutilization of GPUs is becoming a more critical issue in modern systems. Efficiently sharing GPUs for general-purpose computing on GPU (GPGPU) applications is of great importance. Programmers write a GPGPU program using CUDA [19] or OpenCL [8] programming models and offload computing to GPU as kernels.Corunning kernels have drawn extensive attention both in industry and academia [1, 6, 10, 13, 14, 16, 17, 20-22, 28, 29, 31, 33]. The resources used by a kernel include both static resources (threads, registers, and shared memory) and dynamic resources (computing cores, memory load/store units, bandwidth, and memory interconnection). Modern GPU architectures, like NVIDIA Kepler [20] and AMD GCN [16], support c...