Skip to content

Preemptive GPU Scheduling Support for mali - patched drivers ⭐️

Notifications You must be signed in to change notification settings

Ruturaj4/Preemptive-GPU-Scheduling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Preemptive GPU Scheduling - patched source code 💯

This is re-implementation of an original paper - A GPU Kernel Transactionization Scheme for Preemptive Priority Scheduling[1]

Project Team members (University of Kansas🔶🔷)-
Ruturaj Vaidya and Dhwani Pandya.

Why GPU?

Our interest and curiosity in GPU management motivated and inspired us to work on GPU management. In todays digital world role of GPU is crucial and the graphical data which is processed by GPU cannot be handled by CPU. Hence, GPU aide helps in performance improvement and better resource utilization. We believe that introduction of GPU in processing environment is triumph in itself, and this is the reason that stimulated us to pick this paper.

Project Description

Mission-critical systems simultaneously run multiple tasks with different criticality and timeliness requirements, and are becoming heavily dependent on graphics processing unit (GPU) computing[1]. Consequently, many research efforts have been made to support the preemptive priority scheduling of GPU kernels. We re-implemented the paper, ’A GPU Kernel Transactionization Scheme for Preemptive Priority Scheduling’, which presents an approach to transactionize GPU kernels at the operating system (OS) level. By transactionizing GPU kernels, it is possible to forcibly evict low-priority kernels and immediately schedule high-priority kernels[1].

We used Odroid XU4 board for the implementation, although authors implemented on odroid XU3. We followed instructions given by authors here. However, the kernel build was unsucessful. Thus, we changed the source code, fixed the patch and re-built the kernel sucessfully. Thanks to our team work (and hard work indeed 😁)!

Usage (Reference: Authors Github page)

  • Download Kernel version 3.10.y from the hardkernel page
  • git clone https://github.com/hardkernel/linux.git -b odroidxu3-3.10.y

  • Hard reset to version 3.10.54 (As authors suggested)
  • git reset --hard 8df9b10b63

  • Copy the patched files to appropriate locations.

  • Follow the odroid Kernel Build instructions here.

References

[1] Authors of the original paper - Hyeonsu Lee, Jaehun Roh, Euiseong Seo

School of Software, Sungkyunkwan University Seobu 2066, Suwon-si, Gyeonggi-do 23185, Rep. of Korea Email: hyeonsu.lee@csl.skku.edu, jaehun@csl.skku.edu, euiseong@skku.edu

Check Hyunsu-Lee's Github repository for full code - https://github.com/Hyunsu-Lee/psched_gpu