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  avatar

Watchers

 avatar  avatar  avatar

Forkers

civitasv

srtg-schedule's Issues

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 Results

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

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)

Test Coverage

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

Kernel terminology change

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

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

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

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.