\relax \citation{KassWT88} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \citation{Brunett} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}} \newlabel{secCPUalgooutlines}{{II}{1}} \@writefile{toc}{\contentsline {section}{\numberline {II}Sequential algorithm : outlines}{1}} \citation{ChesnaudRB99} \citation{ChesnaudRB99} \newlabel{cpualgosimple}{{1}{2}} \@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Sequential algorithm : outlines}}{2}} \newlabel{fig:labelinit}{{1a}{2}} \newlabel{sub@fig:labelinit}{{(a)}{a}} \newlabel{fig:labelit1}{{1b}{2}} \newlabel{sub@fig:labelit1}{{(b)}{b}} \newlabel{fig:labelit2}{{1c}{2}} \newlabel{sub@fig:labelit2}{{(c)}{c}} \newlabel{fig:labelit4}{{1d}{2}} \newlabel{sub@fig:labelit4}{{(d)}{d}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces segmentation of a noisy image}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Initial contour}}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {End of first iteration (4 nodes) }}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {End of second iteration (8 nodes)}}}{2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {End of fourth iteration (29 nodes)}}}{2}} \newlabel{images_algo}{{1}{2}} \newlabel{secCPUalgodetails}{{III}{2}} \@writefile{toc}{\contentsline {section}{\numberline {III}Sequential algorithm : details}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-A}}Criterion}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-B}}CPU implementation}{2}} \citation{CUDAPG} \citation{CUDAPG} \citation{CUDAFT} \citation{CUDAFC} \newlabel{CPUcontrib_segments}{{2}{3}} \newlabel{CPUbresenham}{{2}{3}} \newlabel{CPUcontrib_pixels}{{2}{3}} \@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces Sequential simplified algorithm}}{3}} \newlabel{cpualgo}{{2}{3}} \newlabel{cumuls}{{2}{3}} \newlabel{debinit}{{3}{3}} \newlabel{fininit}{{9}{3}} \newlabel{loopnewnodes}{{10}{3}} \newlabel{loopmovenodes}{{11}{3}} \newlabel{kernelGL}{{15}{3}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces the three most-consumming functions for various image sizes}}{3}} \newlabel{CPUprofile}{{2}{3}} \newlabel{GPUgeneralites}{{IV}{3}} \@writefile{toc}{\contentsline {section}{\numberline {IV}NVidia's GPU architecture}{3}} \citation{ChesnaudRB99} \citation{Harris07} \citation{CUDAPG} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces schematic diagram of GPU's internal architecture}}{4}} \newlabel{GPUC1060}{{3}{4}} \newlabel{GPUimplementation}{{V}{4}} \@writefile{toc}{\contentsline {section}{\numberline {V}GPU implementation}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-A}}Pre-computations}{4}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces \texttt {compute\_blocks\_prefixes()} details.}}{5}} \newlabel{GPUcumuls}{{4}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-B}}Segment contributions}{5}} \citation{CUDAFT} \citation{CUDAPG} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces \texttt {scan\_blocksums()} details.}}{6}} \newlabel{GPUscansomblocs}{{5}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces \texttt {add\_sums2prefixes()} details.}}{6}} \newlabel{GPUaddsoms2cumuls}{{6}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Optimization of node locations using 8 position tests around each node.}}{6}} \newlabel{GPUtopo}{{7}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces structure for segments contributions computation. Gray symbols help to locate inactive threads as opposed to black ones that figure active threads.}}{7}} \newlabel{contribs_segments}{{8}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-C}}Segments with a slope $k$ such as $|k|\leq 1$}{7}} \@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Zoom on part a of segment with $|k| < 1$, at pixel level.}}{7}} \newlabel{tripix}{{9}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-D}}Parameters estimation}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-E}}End of segmentation}{7}} \newlabel{secSpeedups}{{VI}{7}} \@writefile{toc}{\contentsline {section}{\numberline {VI}Speedups}{7}} \bibstyle{IEEEtran} \bibdata{IEEEabrv,biblio} \bibcite{KassWT88}{1} \bibcite{ChesnaudRB99}{2} \bibcite{Brunett}{3} \bibcite{CUDAPG}{4} \bibcite{CUDAFT}{5} \bibcite{CUDAFC}{6} \bibcite{Harris07}{7} \newlabel{gpualgosimple}{{3}{8}} \@writefile{loa}{\contentsline {algocf}{\numberline {3}{\ignorespaces Parralel GPU algorithm : outlines. \texttt {<<<...>>>} indicates a GPU kernel parallel process.}}{8}} \@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces GPU (C2050, sm20) vs CPU timings.}}{8}} \newlabel{tabresults}{{I}{8}} \newlabel{secConclusion}{{VII}{8}} \@writefile{toc}{\contentsline {section}{\numberline {VII}Conclusion}{8}} \@writefile{toc}{\contentsline {section}{References}{8}}