Skip to content
Snippets Groups Projects
Commit 7586d6c1 authored by zahoussem's avatar zahoussem
Browse files

pruda description

parent 18e2b2eb
No related branches found
No related tags found
No related merge requests found
# PRUDA : Real-time programing interface on the top of CUDA # PRUDA : Real-time programing interface on the top of CUDA
PRUDA is a set of programming tools and mechanisms to control PRUDA is a set of programming tools and mechanisms to control
scheduling within the GPU. It also provide implementation the following scheduling policies: scheduling within the GPU. It also provides the implementation the
following real-time scheduling policies:
- Fixed Priority non preemptive and preemptive
- Earliest Deadline First (EDF) preemptif and non preemptive scheduling techniques
- Gang scheduling techniques where the GPU is considered as a multiprocessor architecture.
Details about each scheduling policy will be given in different
section. First, we will describe the PRUDA functionalities,
structures. We will also show how a scheduling policy can be easily
implemnted with PRUDA.
- Fixed Priority (FP): preemptive and non-preemptive
- Earliest Deadline First (EDF) : preemptif and non preemptive
- EDF-Gang scheduling techniques : the GPU is considered as a multiprocessor architecture.
Additionally PRUDA aims to not modify CUDA-user programming
style. Therefore, the PRUDA user can use already developped CUDA
kernels. To keep the user-free of kernel signatures, PRUDA must be
compiled at the same time with the user source kernel code. Neverless,
PRUDA also provides a dynamic configuration possibilities with fixed
kernel signature (int , int *, int *, int *, int *);
PRUDA can handle implicitly memory copy operations, and also cuda
unified memory.
# prerequisites
- Programming with CUDA # Prerequisites
- Basic Knowledge about real-time systems
PRUDA is a platform built on the top of CUDA for real-time systems. Therefore, - C++ compiler
- Nvidia NVCC compiler
# PRUDA and GPU handling:
## The GPU in the eye of PRUDA:
A GPU is compound of one or several streaming multiprocessors (SMs) A GPU is compound of one or several streaming multiprocessors (SMs)
and one or several copy engines (CEs). Streaming multiprocessors are and one or several copy engines (CEs). Streaming multiprocessors are
...@@ -123,8 +122,13 @@ section. ...@@ -123,8 +122,13 @@ section.
## CUDA functionalities : ## CUDA operations:
PRUDA allows a kernel to execute within a single SM PRUDA allows a kernel to execute within a single SM
## Singe core strateg
\ No newline at end of file # PRUDA usage by example
# PRUDA scheduling tools and policies
## Single core strategy for non preemptive schedulers
## Single core strategy for preemptive schedulers
## Multicore strategy for GANG preemptive schedulers
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment