Skip to content
Snippets Groups Projects
Commit f301d74f authored by rtekin's avatar rtekin
Browse files

poster

parent 1c4d0884
No related branches found
No related tags found
1 merge request!1Presentation
%$Id: a0poster.cls,v 1.5 1999/04/05 14:49:56 mjf Exp $
%%
%% This is file `a0poster.cls'
%%
%% Copyright (C) 07.05.97 Gerlinde Kettl and Matthias Weiser
%%
%% Problems, bugs and comments to
%% gerlinde.kettl@physik.uni-regensburg.de
%%
%% changed textwidths and margins to cope with printable area and
%% frame. Make sure that the offsets are set to -1in!
%% Also changed scaling for a0->a4, since this was wrong.
%% This version changed by Hugh Pumphrey on 4.5.1999. Every instance
%% of the string ``draft'' replaced by the string ``preview''. This gives
%% an a4 size preview but includes the postscript figures
\ProvidesClass{a0poster}[1997/05/07 v1.21b a0poster class (GK, MW)]
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\LoadClass{article}
\newif\ifportrait
\newif\ifanullb
\newif\ifanull
\newif\ifaeins
\newif\ifazwei
\newif\ifadrei
\newif\ifpreview
\newcount\xkoord
\newcount\ykoord
\newcount\xscale
\newcount\yscale
\DeclareOption{a0b}{
\anullbtrue
\xkoord=2592 % big points (1 bp=1/72 inch)
\ykoord=3666 % big points (1 bp=1/72 inch)
\xscale=23
\yscale=23
}
\DeclareOption{a0}{
\anulltrue\anullbfalse
\xkoord=2380 % big points (1 bp=1/72 inch)
\ykoord=3368 % big points (1 bp=1/72 inch)
\xscale=25
\yscale=25
}
\DeclareOption{a1}{
\aeinstrue\anullbfalse
\xkoord=1684 % big points (1 bp=1/72 inch)
\ykoord=2380 % big points (1 bp=1/72 inch)
\xscale=3
\yscale=3
}
\DeclareOption{a2}{
\azweitrue\anullbfalse
\xkoord=1190 % big points (1 bp=1/72 inch)
\ykoord=1684 % big points (1 bp=1/72 inch)
\xscale=4
\yscale=4
}
\DeclareOption{a3}{
\adreitrue\anullbfalse
\xkoord=842 % big points (1 bp=1/72 inch)
\ykoord=1190 % big points (1 bp=1/72 inch)
\xscale=6
\yscale=6
}
\DeclareOption{landscape}{
\portraitfalse
}
\DeclareOption{portrait}{
\portraittrue
}
\DeclareOption{preview}{
\previewtrue
}
\DeclareOption{final}{
\previewfalse
}
\DeclareOption*{\PackageWarning{a0poster}{Unknown Option \CurrentOption}}
\ExecuteOptions{landscape,a0b,final}
\ProcessOptions\relax
\ifanullb
\setlength{\paperwidth}{129.3cm} %% 36 * sqrt(2) in
\setlength{\paperheight}{91.4cm} %% 36 in
\setlength{\textwidth}{119.3cm} %% paperwidth - (5cm + 5cm)
\setlength{\textheight}{81.4cm} %% paperheight - (5cm + 5cm)
\else\ifanull
\setlength{\paperwidth}{118.82cm}
\setlength{\paperheight}{83.96cm}
\setlength{\textwidth}{108.82cm} %% paperwidth - (5cm + 5cm)
\setlength{\textheight}{73.96cm} %% paperheight - (5cm + 5cm)
\else\ifaeins
\setlength{\paperwidth}{83.96cm}
\setlength{\paperheight}{59.4cm}
\setlength{\textwidth}{79.96cm}
\setlength{\textheight}{55.4cm}
\else\ifazwei
\setlength{\paperwidth}{59.4cm}
\setlength{\paperheight}{41.98cm}
\setlength{\textwidth}{55.4cm}
\setlength{\textheight}{37.98cm}
\else\ifadrei
\setlength{\paperwidth}{41.98cm}
\setlength{\paperheight}{29.7cm}
\setlength{\textwidth}{37.98cm}
\setlength{\textheight}{25.7cm}
\else\relax
\fi
\fi
\fi
\fi
\fi
\ifportrait
\newdimen\tausch
\setlength{\tausch}{\paperwidth}
\setlength{\paperwidth}{\paperheight}
\setlength{\paperheight}{\tausch}
\setlength{\tausch}{\textwidth}
\setlength{\textwidth}{\textheight}
\setlength{\textheight}{\tausch}
\else\relax
\fi
%% Setting proper dimensions for the HP2500CP printer (height = 36 in)
%% Landscape: unprintable areas
%% L: 27.6mm
%% R: 27.1mm
%% T: 18.4mm
%% B: 18.1mm
\voffset -1in
\hoffset -1in
\setlength{\headheight}{0 cm}
\setlength{\headsep}{0 cm}
\setlength{\topmargin}{5 cm} %% 3 cm for unprintable at top
%% (landscape) + 2 cm from border
\setlength{\oddsidemargin}{5 cm} %% 3 cm for unprintable at left
%% (landscape) + 2 cm from border
\setlength{\topskip}{0 cm}
\input{a0size.sty}
\renewcommand{\tiny}{\fontsize{12}{14}\selectfont}
\renewcommand{\scriptsize}{\fontsize{14.4}{18}\selectfont}
\renewcommand{\footnotesize}{\fontsize{17.28}{22}\selectfont}
\renewcommand{\small}{\fontsize{20.74}{25}\selectfont}
\renewcommand{\normalsize}{\fontsize{24.88}{30}\selectfont}
\renewcommand{\large}{\fontsize{29.86}{37}\selectfont}
\renewcommand{\Large}{\fontsize{35.83}{45}\selectfont}
\renewcommand{\LARGE}{\fontsize{43}{54}\selectfont}
\renewcommand{\huge}{\fontsize{51.6}{64}\selectfont}
\renewcommand{\Huge}{\fontsize{61.92}{77}\selectfont}
\newcommand{\veryHuge}{\fontsize{74.3}{93}\selectfont}
\newcommand{\VeryHuge}{\fontsize{89.16}{112}\selectfont}
\newcommand{\VERYHuge}{\fontsize{107}{134}\selectfont}
\setlength\smallskipamount{6pt plus 2pt minus 2pt}
\setlength\medskipamount{12pt plus 4pt minus 4pt}
\setlength\bigskipamount{24pt plus 8pt minus 8pt}
\setlength\abovecaptionskip{25pt}
\setlength\belowcaptionskip{0pt}
\setlength\abovedisplayskip{25pt plus 6pt minus 15 pt}
\setlength\abovedisplayshortskip{0pt plus 6pt}
\setlength\belowdisplayshortskip{13pt plus 7pt minus 6pt}
\setlength\belowdisplayskip\abovedisplayskip
\normalsize
\AtBeginDocument{
\ifanullb
\ifportrait\special{papersize=91.4cm,129.3cm}\else\special{papersize=129.3cm,91.4cm}\fi
\else\ifanull
\ifportrait\special{papersize=83.96cm,118.82cm}\else\special{papersize=118.82cm,83.96cm}\fi
\else\ifaeins
\ifportrait\special{papersize=59.4cm,83.96cm}\else\special{papersize=83.96cm,59.4cm}\fi
\else\ifazwei
\ifportrait\special{papersize=41.98cm,59.4cm}\else\special{papersize=59.4cm,41.98cm}\fi
\else\ifadrei
\ifpreview
\ifportrait\special{papersize=29.7cm,41.35cm}\else\special{papersize=41.98cm,29.0cm}\fi
\else
\ifportrait\special{papersize=29.7cm,41.98cm}\else\special{papersize=41.98cm,29.7cm}\fi
\fi
\else\relax
\fi
\fi
\fi
\fi
\fi
\pagestyle{empty}}
\endinput
%%
%% End of file `a0poster.cls'.
@inproceedings{amert2017gpu,
title={GPU scheduling on the NVIDIA TX2: Hidden details revealed},
author={Amert, Tanya and Otterness, Nathan and Yang, Ming and Anderson, James H and Smith, F Donelson},
booktitle={RTSS'2017},
pages={104--115},
year={2017},
organization={IEEE}
}
@inproceedings{capodieci2018deadline,
title={Deadline-based scheduling for GPU with preemption support},
author={Capodieci, Nicola and Cavicchioli, Roberto and Bertogna, Marko and Paramakuru, Aingara},
booktitle={RTSS'2018},
pages={119--130},
year={2018},
organization={IEEE}
}
@inproceedings{elliott2013gpusync,
title={GPUSync: A framework for real-time GPU management},
author={Elliott, Glenn A and Ward, Bryan C and Anderson, James H},
booktitle={RTSS'2013},
pages={33--44},
year={2013},
organization={IEEE}
}
@inproceedings{kato2012gdev,
title={Gdev: GPU Resource Management in the Operating System},
author={Kato, Shinpei and McThrow, Michael and Maltzahn, Carlos and Brandt, Scott},
booktitle={USENIX'12},
pages={401--412},
year={2012}
}
@inproceedings{kato2011rgem,
title={RGEM: A responsive GPGPU execution model for runtime engines},
author={Kato, Shinpei and Lakshmanan, Karthik and Kumar, Aman and Kelkar, Mihir and Ishikawa, Yutaka and Rajkumar, Ragunathan},
booktitle={2011 IEEE 32nd Real-Time Systems Symposium},
pages={57--66},
year={2011},
organization={IEEE}
}
@inproceedings{kato2011timegraph,
title={TimeGraph: GPU scheduling for real-time multi-tasking environments},
author={Kato, Shinpei and Lakshmanan, Karthik and Rajkumar, Raj and Ishikawa, Yutaka},
booktitle={Proc. USENIX ATC},
pages={17--30},
year={2011}
}
File added
File added
File added
\documentclass[varwidth=10cm, border={0.5cm 0.1cm 0.1cm 0.1cm}]{standalone}
\usepackage{minted}
\begin{document}
%------------------------------------------------------------------------------
%--------- ADD TASK
% \begin{figure}
% \centering
% \begin{minted}[gobble=2,frame=lines]{c}
%
% struct gpu_sched_param ga;
% ga.period_us = 5000;
% ga.deadline_us= 5000;
% ga.priority = 3;
%
%
% struct pruda_task_t * p_task_a = create_pruda_task(0, ga, 1, 1);
%
% init_scheduler(SINGLE, FP);
% add_pruda_task(p_task_a);
%
% \end{minted}
%
% \caption{Pseudo-code of PRUDA task}
%\label{algo:add}
%\end{figure}
%
%
%%--------- SUBSCRIBE CALL
% \begin{figure}
% \centering
% \begin{minted}[gobble=4,frame=lines]{c}
% void *pruda_task(void * arg) {
% struct timespec_t next;
% p_kernel_t *pk = (p_kernel_t *)(arg);
% while (1) {
% // memory copy operation
% clock_gettime(CLOCK_REALTIME, &next);
%
% pruda_subscribe(pk->kernel,p->priority)
%
% timespec_addto(next, pk->T);
% clock_nanosleep(CLOCK_REALTIME, 0, &next, 0);
% }
% }
% \end{minted}
%
% \caption{Pseudo-code of pruda\_subscribe call}
%\label{algo:suscribecall}
%\end{figure}
%
%%---------SUBSRCIBE
% \begin{figure}
% \centering
% \begin{minted}[gobble=0,frame=lines]{c}
%void pruda_subscribe_fp(struct pruda_task_t *tau){
%
% pthread_mutex_lock(&(scheduler->mut));
% if (tau->gpu_params.priority < 0 || tau->gpu_params.priority >= RUNQUEUES_NMB ){
% printf("Task priority out of Range, exiting \n");
% exit(-1);
% }
% add_pruda_task_fixed_priority(tau,scheduler->rql);
% pthread_mutex_unlock(&(scheduler->mut));
% scheduler->pruda_resched();
%}
%
% \end{minted}
%
% \caption{Pseudo-code of pruda\_subscribe}
%\label{algo:suscribecall}
%\end{figure}
%
%%--------- RESCHED
% \begin{figure}
% \centering
% \begin{minted}[gobble=0,frame=lines]{c}
%void pruda_resched_fp(){
% switch (scheduler->strategy)
% {
% case SINGLE:
% pruda_resched_fp_single();
% break;
% case MULTIPLE:
% pruda_resched_fp_multiple();
% break;
% case MULTIPROC:
% pruda_resched_multiproc();
% break;
% default:
% printf("Unknown strategy, exiting ... \n");
% exit(-1);
% }
% }
% \end{minted}
%
% \caption{Pseudo-code of pruda\_resched for FIXED PRIORITY}
%\label{algo:resched}
%\end{figure}
%
%%--------- CHECK
%\begin{figure}
% \centering
% \begin{minted}[gobble=0,frame=lines]{c}
%static __device__ __inline__ int __check_to_sm(uint32_t sm){
% return __get_smid()==sm;
%}
% \end{minted}
%
% \caption{Pseudo-code of pruda\_check}
%\label{algo:check}
%\end{figure}
%
%
%\end{document}
%
%
%%--------- ABORT
%\begin{figure}
% \centering
% \begin{minted}[gobble=0,frame=lines]{c}
%static __device__ __inline__ void abort(int cond){
% if (cond)
% asm("trap;");
%}
%
% \end{minted}
%
% \caption{Pseudo-code of pruda\_abort}
%\label{algo:abort}
%\end{figure}
%------------------------------------------------------------------------------
\end{document}
File added
File added
File added
File added
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% a0poster Portrait Poster
% LaTeX Template
% Version 1.0 (22/06/13)
%
% The a0poster class was created by:
% Gerlinde Kettl and Matthias Weiser (tex@kettl.de)
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% License:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------
\documentclass[a0,portrait]{a0poster}
\usepackage[svgnames]{xcolor} % Specify colors by their 'svgnames', for a full list of all colors available see here: http://www.latextemplates.com/svgnames-colors
\usepackage{times}
\usepackage{graphicx}
\usepackage[font=small,labelfont=bf]{caption}
\usepackage{minted}
\usepackage{tikz}
\usepackage{pdfpages}
\begin{document}
%----------------------------------------------------------------------------------------
% POSTER HEADER
%----------------------------------------------------------------------------------------
% The header is divided into two boxes:
% The first is 75% wide and houses the title, subtitle, names, university/organization and contact information
% The second is 25% wide and houses a logo for your university/organization or a photo of you
% The widths of these boxes can be easily edited to accommodate your content as you see fit
\begin{minipage}[b]{0.75\linewidth}
\veryHuge \color{NavyBlue} \textbf{PRUDA: An API for Time and Space Predictible Programming in NVDIA GPUs using CUDA} \color{Black}\\[1.3cm] % Title
\huge \textbf{Reyyan Tekin, Houssam-Eddine Zahaf, Giuseppe Lipari}\\[1cm]
\huge Univ. Lille, CNRS, Centrale Lille, UMR 9189 - CRIStAL, Lille, France\\[0.7cm] % University/organization
\Large \texttt{\{firstname.familyname\}@univ-lille.fr}\\
\end{minipage}
%------------------------------------------------------
\bigskip
\section*{PRUDA OVERVIEW}
\begin{tikzpicture}
\node[below] (overview) at (-30,-12)
{\includegraphics[scale=2.2]{figures/overview.pdf}};
\node[below] (addTask) at (-55,0)
{\includegraphics[scale=2]{code/addTask.pdf}};
\node[below] (prudaTask) at (-55,-40)
{\includegraphics[scale=2]{code/prudaTask.pdf}};
\node[below] (subscribeFp) at (-20,0)
{\includegraphics[scale=2]{code/subscribe_fp.pdf}};
\node[below] (resched) at (-30,-40)
{\includegraphics[scale=2]{code/resched.pdf}};
\node[below] (check) at (-5,-30)
{\includegraphics[scale=2]{code/check.pdf}};
\node[below] (abort) at (-7,-33.5)
{\includegraphics[scale=2]{code/abort.pdf}};
\end{tikzpicture}
\bigskip
\section*{TEMPORAL AND SPATIAL CONTROL OF PRUDA TASKS ON GPU}
\begin{tabular}{||p{\textwidth/3}||p{\textwidth/3}||p{\textwidth/3}||}
\hline
Single-stream strategy & Multiple stream & SMs as cores strategy \\
\hline
Pros :
\begin{itemize}
\item Simple and easy to implement
\item Implicit synchronization between active tasks
\end{itemize}
&
Pros :
\begin{itemize}
\item Avoiding ressource wasting by allowing concurrent kernel execution on GPUs
\item Allow preemption
\end{itemize}
&
Pros :
\begin{itemize}
\item Allow using a GPU as a multiprocessor by calling the function pruda\_allocate\_to\_sm(...)
\item Provides both temporal and spatial tasks execution control on GPUs
\end{itemize}
\\
Cos :
\begin{itemize}
\item Resource are wasted if the task is not using all GPU cores
\item Only non preemptive scheduling algorithms can be implemented using this strategy
\end{itemize}
&
Cos :
\begin{itemize}
\item Use a GPU as a single core
\item Preemption at instruction level can not be guaranteed (decided by the
NVIDIA closed internals). However, we ensure that the preemption can be
achieved at block boundaries.
\end{itemize}
&
Cos :
\begin{itemize}
\item More complex to implement than the two previous.
\end{itemize}
\\
\hline
\end{tabular}
%------------------------------------------------------
\end{document}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment