Code Monkey home page Code Monkey logo

srtg-schedule's Introduction

MIT licensed doc Build Status codecov CodeFactor

Dynamic Schedule Management Framework For GPUs

Soft-Real-Time GP-GPU Scheduler

A schedule management framework for aperiodic soft-real-time jobs that may be used by a CPU - GPU system designer/integrator to select, configure and deploy a suitable architectural platform and to perform concurrent scheduling of these jobs

Soft-Real-Time GP-GPU Scheduler (SRTG-Scheduler) is a dynamic scheduler for aperiodic soft-real-time jobs on GPU based architectures, with a simple, easy-to-use command-line interface (CLI). The SRTG-Scheduler is provided under the MIT license. It is currently supported on Windows, Linux, and macOS platforms.

Latest SRTG-Scheduler

GitHub release (latest by date)

Dynamic schedule management framework for soft-real-time jobs on GPU based architectures

GPUs execute at higher frequencies

  • Accelerates execution of jobs allocated to it
  • Improves System response time

The above image compares FLOPs per Cycle improvements over the years [1]

GPUs are energy efficient

  • Power needed for GPU to carry out an operation lesser than CPUs
  • Ideal for use in real time embedded system

  • Significant hardware and firmware challenges
  • Executions are non-preemptive
  • Low degree of controllability of cores

  • Policies for scheduling Real-Time jobs
  • Decoding the driver
  • Managing the GPU as a resource
  • Targeting a Multi-GPU model

This entire body of work assumes that only one kernel may execute on a GPU at a given time(partly due to lack of hardware support)

What's the problem?

Sending a single non-preemptive kernel on to a GPU, is under utilizing the GPU

Solution

Concurrent Kernels Execution on GPU [2]

  • Safe concurrent kernels
  • Performance boost
  • Execution units available

Aims to develop a dynamic schedule management framework for soft-real-time jobs on GPU based architectures.

We propose to exploit this basic idea to perform coarse grained scheduling of jobs on GCUs.

Our work lays emphasis on minimal programmer involvement.

A dynamic schedule management framework that is responsible for

  • Keeping track of current and expected GUC availability
  • Determining which kernel(s) to dispatch to the GPU at a given time
  • Determining how many GCUs to assign for a given kernel.

Advantages

  • GPU provides tremendous computational power under reasonable power/energy budgets
  • Our work exploits concurrent kernel execution for real-time scheduling
  • More economical than multi-GPU model

Results

  • Dynamic schedule management framework for soft-real-time jobs
  • Support for a-periodic and recurring (periodic) soft-real-time tasks.
  • Smart GPU Memory Management

note:

srtg-schedule's People

Contributors

kiritigowda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

civitasv

srtg-schedule's Issues

Conference Paper

Conference Paper

  • Abstract
  • Introduction
  • GPU Architecture
  • Challenges in GPU Scheduling
  • Existing Research -- add existing research
  • Our Method
  • Open Source SRTG-Scheduler
  • SRTG-Scheduler Experimentation
    • Lambda Variation
    • Number of Jobs in Job set variation
    • delay schedule processor limit variation
    • Number of processors available variation
    • Odd number of processors request
  • Summary of results
  • Conclusion
  • bibliography

Kernel terminology change

Use Jobs as the terminology to describe a kernel to keep the notion constant across the platform.

Schedule Results

Job schedule output
Overhead time added to each job schedule
Output CSV file of job schedule time

Schedule Summary highlights

variations

  • lambda variations [1.0, 0.9, 0.8, ....., 0.1] - variables constant
  • number of jobs in a job set [100, 200, 300, ....., 1000] - lambda 0.5 & 1
  • number of processor's [2, 4, 8, ......, 64] - lambda 0.5 & 1
  • delay schedule processor limit [10%, 20%, 30%, ....., 100%] - lambda 0.5 & 1
  • odd number processor's requested - lambda 0.5 & 1

monitored variables

  • jobs scheduled
  • GPU usage
  • response time
  • response factor
  • Avg schedule overhead & avg GPU schedule overhead

Test Coverage

The Script needs to be automated and have at-least 25 test cases.

Final Results Draft

Final Results

Updates

  • Release Title - RTGS - 1.0.0
  • Max Processors - 16
  • delay schedule processor limit in percentage - 60%

Results

  • Lambda Variations - 0.1 to 1.0
  • Number of Jobs in a Job Set Variations - 100 to 1000 (Lambda 0.5 & 1.0)
  • Number of Processors Variations - 2 to 128 (Lambda 0.5 & 1.0)
  • Delay Schedule limit percentage - 0% to 100% (Lambda 0.5 & 1.0)
  • Odd number of processors requested - number of jobs variation (lambda 0.5 & 1.0)

List of changes

This list identifies all the features/changes required for the release

Common Changes for all modes

  • Error check for only jobs released ((kernelMax != (GLOBAL_GPU_KERNELS + GLOBAL_CPU_KERNELS)) || processorsAvailable != MAX_GPU_PROCESSOR)
  • add default mode to run all 5 modes and return results

Mode-1

  • cleanup

Mode-2

  • cleanup

Mode-3

  • cleanup

Mode-4

  • cleanup

Mode-5

  • cleanup

Schedule table ouput

A schedule table with kernel info and schedule history in visual format needed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.