From b0cfcc742771497c83313352b59170ead2f99f40 Mon Sep 17 00:00:00 2001 From: Raphael Couturier Date: Mon, 17 Dec 2012 21:39:12 +0100 Subject: [PATCH] ch3 --- BookGPU/BookGPU.tex | 1 + BookGPU/Chapters/chapter3/biblio3.bib | 450 + BookGPU/Chapters/chapter3/ch3.tex | 454 + BookGPU/Chapters/chapter3/code/Makefile | 7 + BookGPU/Chapters/chapter3/code/exChronos.cu | 10 + .../Chapters/chapter3/code/kernMedian2pix3.cu | 38 + .../Chapters/chapter3/code/kernMedian2pix5.cu | 66 + .../chapter3/code/kernMedianForget1pix3.cu | 38 + .../chapter3/code/kernMedianForgetGeneric.cu | 31 + .../chapter3/code/kernMedianRegTri9.cu | 21 + .../chapter3/code/kernMedianSeparable.cu | 74 + BookGPU/Chapters/chapter3/code/kernSkel.cu | 12 + BookGPU/Chapters/chapter3/code/mainSkel.cu | 43 + .../Chapters/chapter3/code/medianGeneric.cu | 25 + .../chapter3/code/medianGeneric.cu.aux | 32 + BookGPU/Chapters/chapter3/code/memSkel.cu | 64 + BookGPU/Chapters/chapter3/img/debitPlot1.png | Bin 0 -> 2573710 bytes BookGPU/Chapters/chapter3/img/debitPlot2.png | Bin 0 -> 1937441 bytes BookGPU/Chapters/chapter3/img/kernLeft.bb | 5 + BookGPU/Chapters/chapter3/img/kernLeft.png | Bin 0 -> 1571 bytes BookGPU/Chapters/chapter3/img/kernRight.bb | 5 + BookGPU/Chapters/chapter3/img/kernRight.png | Bin 0 -> 1566 bytes .../Chapters/chapter3/img/median3_overlap.png | Bin 0 -> 25589 bytes .../Chapters/chapter3/img/median5_overlap.png | Bin 0 -> 42790 bytes BookGPU/Chapters/chapter3/img/median_1.png | Bin 0 -> 153475 bytes BookGPU/Chapters/chapter3/img/median_1.svg | 18010 ++++++++++++++++ .../Chapters/chapter3/img/median_overlap.png | Bin 0 -> 23610 bytes BookGPU/Chapters/chapter6/ch6.aux | 206 +- BookGPU/Makefile | 3 +- 29 files changed, 19491 insertions(+), 104 deletions(-) create mode 100644 BookGPU/Chapters/chapter3/biblio3.bib create mode 100755 BookGPU/Chapters/chapter3/ch3.tex create mode 100644 BookGPU/Chapters/chapter3/code/Makefile create mode 100644 BookGPU/Chapters/chapter3/code/exChronos.cu create mode 100644 BookGPU/Chapters/chapter3/code/kernMedian2pix3.cu create mode 100644 BookGPU/Chapters/chapter3/code/kernMedian2pix5.cu create mode 100644 BookGPU/Chapters/chapter3/code/kernMedianForget1pix3.cu create mode 100644 BookGPU/Chapters/chapter3/code/kernMedianForgetGeneric.cu create mode 100644 BookGPU/Chapters/chapter3/code/kernMedianRegTri9.cu create mode 100644 BookGPU/Chapters/chapter3/code/kernMedianSeparable.cu create mode 100644 BookGPU/Chapters/chapter3/code/kernSkel.cu create mode 100644 BookGPU/Chapters/chapter3/code/mainSkel.cu create mode 100644 BookGPU/Chapters/chapter3/code/medianGeneric.cu create mode 100644 BookGPU/Chapters/chapter3/code/medianGeneric.cu.aux create mode 100644 BookGPU/Chapters/chapter3/code/memSkel.cu create mode 100644 BookGPU/Chapters/chapter3/img/debitPlot1.png create mode 100644 BookGPU/Chapters/chapter3/img/debitPlot2.png create mode 100644 BookGPU/Chapters/chapter3/img/kernLeft.bb create mode 100644 BookGPU/Chapters/chapter3/img/kernLeft.png create mode 100644 BookGPU/Chapters/chapter3/img/kernRight.bb create mode 100644 BookGPU/Chapters/chapter3/img/kernRight.png create mode 100644 BookGPU/Chapters/chapter3/img/median3_overlap.png create mode 100644 BookGPU/Chapters/chapter3/img/median5_overlap.png create mode 100644 BookGPU/Chapters/chapter3/img/median_1.png create mode 100644 BookGPU/Chapters/chapter3/img/median_1.svg create mode 100644 BookGPU/Chapters/chapter3/img/median_overlap.png diff --git a/BookGPU/BookGPU.tex b/BookGPU/BookGPU.tex index 293141d..8bc7b38 100755 --- a/BookGPU/BookGPU.tex +++ b/BookGPU/BookGPU.tex @@ -117,6 +117,7 @@ \part{This is a Part} \include{Chapters/chapter1/ch1} \include{Chapters/chapter2/ch2} +\include{Chapters/chapter3/ch3} \include{Chapters/chapter6/ch6} \include{Chapters/chapter8/ch8} \include{Chapters/chapter11/ch11} diff --git a/BookGPU/Chapters/chapter3/biblio3.bib b/BookGPU/Chapters/chapter3/biblio3.bib new file mode 100644 index 0000000..6b91912 --- /dev/null +++ b/BookGPU/Chapters/chapter3/biblio3.bib @@ -0,0 +1,450 @@ +@inproceedings{AllainBG08, + author = {Marc Allain and Nicolas Bertaux and Fr{\'e}d{\'e}ric Galland}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + booktitle = {ACIVS}, + crossref = {DBLP:conf/acivs/2008}, + ee = {http://dx.doi.org/10.1007/978-3-540-88458-3_46}, + pages = {506--517}, + title = {Nonparametric Level-Set Segmentation Based on the Minimization of the Stochastic Complexity}, + year = {2008} +} + +@inproceedings{KauffmannP08, + author = {Claude Kauffmann and Nicolas Piche}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + booktitle = {ICPR}, + crossref = {DBLP:conf/icpr/2008}, + ee = {http://dx.doi.org/10.1109/ICPR.2008.4761628}, + pages = {1--4}, + title = {Cellular automaton for ultra-fast watershed transform on GPU}, + year = {2008} +} + +@article{cremD09, + address = {Los Alamitos, CA, USA}, + author = {Thomas Schoenemann and Daniel Cremers}, + doi = {10.1109/TPAMI.2009.79}, + issn = {0162-8828}, + journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, + pages = {1153--1164}, + publisher = {IEEE Computer Society}, + title = {A Combinatorial Solution for Model-Based Image Segmentation and Real-Time Tracking}, + volume = {32}, + year = {2010} +} + +@article{KassWT88, + author = {Michael Kass and Andrew P. Witkin and Demetri Terzopoulos}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + ee = {http://dx.doi.org/10.1007/BF00133570}, + journal = {International Journal of Computer Vision}, + number = {4}, + pages = {321--331}, + title = {Snakes: Active contour models}, + volume = {1}, + year = {1988} +} + +@article{XuP98, + author = {Chenyang Xu and Jerry L. Prince}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + ee = {http://dx.doi.org/10.1109/83.661186}, + journal = {IEEE Transactions on Image Processing}, + number = {3}, + pages = {359--369}, + title = {Snakes, shapes, and gradient vector flow}, + volume = {7}, + year = {1998} +} + +@article{GallandBR03, + author = {Fr{\'e}d{\'e}ric Galland and Nicolas Bertaux and Philippe R{\'e}fr{\'e}gier}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + ee = {http://dx.doi.org/10.1109/TIP.2003.816005}, + journal = {IEEE Transactions on Image Processing}, + number = {9}, + pages = {995--1006}, + title = {Minimum description length synthetic aperture radar image segmentation}, + volume = {12}, + year = {2003} +} + +@article{Brunett, + abstract = {Abstract. Active contours have been proven to be a powerful semiautomatic image segmentation approach, that seems to cope with many applications and different image modalities. However, they exhibit inherent drawbacks, including the sensibility to contour initialization due to the limited capture range of image edges and problems with concave boundary regions. The Gradient Vector Flow replaces the traditional image force and provides an enlarged capture range as well as enhanced concavity extraction capabilities, but it involves an expensive computational effort and considerably increased memory requirements at the time of computation. In this paper, we present an enhancement of the active contour model to facilitate semiautomatic contour detection in huge images. We propose a tile-based image decomposition accompanying an image force computation scheme on demand in order to minimize both computational and memory requirements. We show an efficient implementation of this approach on the basis of general purpose GPU processing providing for continuous active contour deformation without a considerable delay.}, + author = {Enrico {Dipl.-Inf. Kienel} and Guido {Prof. Dr. Brunnett}}, + institution = {MONARCH - Dokumenten- und Publikationsservice [http://archiv.tu-chemnitz.de/cgi-bin/interfaces/oai/oai2.pl] (Germany)}, + keywords = {Active Contours; GPGPU; Gradient Vector Flow; Image Segmentation; Snakes; Tiling; 004}, + location = {http://www.scientificcommons.org/41680702}, + publisher = {TU Chemnitz, Fakult{\"a}t f{\"u}r Informatik}, + title = {GPU-Accelerated Contour Extraction on Large Images Using Snakes}, + url = {http://archiv.tu-chemnitz.de/pub/2009/0035}, + year = {2009} +} + +@article{ChesnaudRB99, + author = {Christophe Chesnaud and Philippe R{\'e}fr{\'e}gier and Vlady Boulet}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + ee = {http://www.computer.org/tpami/tp1999/i1145abs.htm}, + journal = {IEEE Trans. Pattern Anal. Mach. Intell.}, + number = {11}, + pages = {1145--1157}, + title = {Statistical Region Snake-Based Segmentation Adapted to Different Physical Noise Models}, + volume = {21}, + year = {1999} +} + +@article{GermainR01, + author = {Olivier Germain and Philippe R{\'e}fr{\'e}gier}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + journal = {Pattern Recognition Letters}, + number = {10}, + pages = {1125--1132}, + title = {Statistical active grid for segmentation refinement}, + volume = {22}, + year = {2001} +} + +@article{Ruch01, + author = {Olivier Ruch and Philippe R{\'e}fr{\'e}gier}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + ee = {http://www.computer.org/tpami/tp1999/i1145abs.htm}, + journal = {Optics Letters}, + month = {july}, + number = {13}, + title = {Minimal-complexity segmentation with a polygonal snake adapted to different optical noise models}, + volume = {26}, + year = {2001} +} + +@techreport{BlellochTR90, + author = {Guy~E. Blelloch}, + institution = {School of Computer Science, Carnegie Mellon University}, + month = nov, + number = {CMU-CS-90-190}, + title = {Prefix Sums and Their Applications}, + year = 1990 +} + +@inbook{Harris07, + author = {Mark Harris and Shubhabrata Sengupta and John D. Owens}, + chapter = {39 - Parallel Prefix Sum with CUDA}, + edition = {first}, + isbn = {9780321545428}, + publisher = {Addison-Wesley Professional}, + title = {Gpu gems 3}, + year = {2007} +} + +@manual{CUDAPG, + month = {7}, + organization = {NVIDIA Corporation}, + title = {NVIDIA CUDA C Programming Guide v3.1.1}, + year = {2010} +} + +@manual{CUDAFC, + month = {7}, + organization = {NVIDIA Corporation}, + title = {NVIDIA Fermi Compatibility Guide}, + year = {2010} +} + +@manual{CUDAFT, + month = {7}, + organization = {NVIDIA Corporation}, + title = {NVIDIA Fermi Tuning Guide}, + year = {2010} +} + +@inproceedings{Dabov09bm3dimage, + author = {Kostadin Dabov and Ro Foi and Vladimir Katkovnik and Karen Egiazarian}, + booktitle = {Proc. Workshop on Signal Processing with Adaptive Sparse Structured Representations (SPARS{\rq}09}, + title = {BM3D Image Denoising with Shape-Adaptive Principal Component Analysis}, + year = {2009} +} + +@article{Bertaux:04, + abstract = {We propose a method based on the maximum-likelihood technique for removing speckle patterns that plague coherent images. The proposed method is designed for images whose gray levels vary continuously in space. The image model is based on a lattice of nodes corresponding to vertices of triangles in which the gray level of each pixel is produced by linear interpolation. A constraint on isoline gray levels is introduced to regularize the solution.}, + author = {Nicolas Bertaux and Yann Frauel and Philippe R{\'e}fr{\'e}gier and Bahram Javidi}, + doi = {10.1364/JOSAA.21.002283}, + journal = {J. Opt. Soc. Am. A}, + keywords = {Coherence and statistical optics; Noise in imaging systems; Image processing; Image reconstruction techniques}, + month = {Dec}, + number = {12}, + pages = {2283--2291}, + publisher = {OSA}, + title = {Speckle removal using a maximum-likelihood technique with isoline gray-level regularization}, + url = {http://josaa.osa.org/abstract.cfm?URI=josaa-21-12-2283}, + volume = {21}, + year = {2004} +} + +@article{Wang04imagequality, + author = {Zhou Wang and Alan Conrad Bovik and Hamid Rahim Sheikh and Student Member and Eero P. Simoncelli and Senior Member}, + journal = {IEEE Transactions on Image Processing}, + pages = {600--612}, + title = {Image Quality Assessment: From Error Visibility to Structural Similarity}, + volume = {13}, + year = {2004} +} + +@proceedings{denoiselab, + author = {Steven Lansel}, + journal = {Scholl of electrical Engineering}, + month = oct, + school = {Stanford University}, + title = {DenoiseLab Philosophy: A Standard Test Set and Evaluation Method to Compare Denoising Algorithms}, + year = {2007} +} + +@article{denoisereview, + author = {A. Buades and B. Coll and J.M. Morel}, + issn = {1540-3459}, + journal = {Multiscale Modeling and Simulation}, + number = {2}, + pages = {490--530}, + publisher = {Society for Industrial and Applied Mathematics}, + title = {A Review of Image Denoising Algorithms, with a New One}, + volume = {4}, + year = {2005} +} + +@incollection{springerlink:10.1007/3-540-48236-9_16, + affiliation = {CMLA, ENS Cachan 61, av du Pr{\'e}sident Wilson 94235 Cachan Cedex France}, + author = {Pascal Monasse and Fr{\'e}d{\'e}ric Guichard}, + booktitle = {Scale-Space Theories in Computer Vision}, + editor = {Mads Nielsen and Peter Johansen and Ole Olsen and Joachim Weickert}, + isbn = {978-3-540-66498-7}, + keyword = {Computer Science}, + note = {10.1007/3-540-48236-9\_16}, + pages = {175--186}, + publisher = {Springer Berlin / Heidelberg}, + series = {Lecture Notes in Computer Science}, + title = {Scale-Space from a Level Lines Tree}, + url = {http://dx.doi.org/10.1007/3-540-48236-9\_16}, + volume = {1682}, + year = {1999} +} + +@inproceedings{caselles97, + author = {Vincent Caselles and Bartomeu Coll and Jean-Michel Morel}, + isbn = {978-3-540-63167-5}, + journal = {First International Conference on Scale-Space Theory in Computer Vision (Scale-Space'97)}, + month = {07}, + pages = {29--49}, + publisher = {Springer}, + title = {Scale space versus topographic map for natural images}, + year = {1997} +} + +@book{matheron75, + author = {Georges Matheron}, + isbn = {0-471-57621-2}, + publisher = {Wiley}, + title = {Random sets and integral geometry}, + year = {1975} +} + +@article{BuadesCM06, + author = {Antoni Buades and Bartomeu Coll and Jean-Michel Morel}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + ee = {http://doi.ieeecomputersociety.org/10.1109/TIP.2006.871137}, + journal = {IEEE Transactions on Image Processing}, + number = {6}, + pages = {1499--1505}, + title = {The staircasing effect in neighborhood filters and its solution}, + volume = {15}, + year = {2006} +} + +@inproceedings{mcguire2008median, + author = {Morgan Mc{G}uire}, + booktitle = {ShaderX6}, + month = {February}, + title = {A fast, small-radius GPU median filter}, + url = {http://graphics.cs.williams.edu/papers/MedianShaderX6}, + year = {2008} +} + +@article{ipol.2011.bcm_nlm, + author = {Bartomeu Coll and Jean-Michel Morel and Antoni Buades}, + journal = {Image Processing On Line}, + title = {Non-local Means Denoising}, + doi = {10.5201/ipol.2011.bcm_nlm}, + year = 2011 +} + +@article{PALHANOXAVIERDEFONTES, + hal_id = {inria-00476122}, + url = {http://hal.inria.fr/inria-00476122}, + title = {{Real time ultrasound image denoising}}, + author = {Palhano Xavier De Fontes, Fernanda and Andrade Barroso, Guillermo and Coup{\'e}, Pierrick and Hellier, Pierre}, + abstract = {{Image denoising is the process of removing the noise that perturbs image analysis methods. In some applications like segmentation or registration, denoising is intended to smooth homogeneous areas while preserving the contours. In many applications like video analysis, visual servoing or image-guided surgical interventions, real-time denoising is required. This paper presents a method for real-time denoising of ultrasound images: a modified version of the NL-means method is presented that incorporates an ultrasound dedicated noise model, as well as a GPU implementation of the algorithm. Results demonstrate that the proposed method is very efficient in terms of denoising quality and is real-time.}}, + language = {Anglais}, + affiliation = {VISAGES : Vision Action et Gestion d'Informations en Sant{\'e} - VISAGES , Service Exp{\'e}rimentation et D{\'e}veloppement - SED , Montreal Neurological Institute , SERPICO - INRIA}, + publisher = {Springer}, + journal = {Journal of Real-Time Image Processing}, + audience = {internationale }, + doi = {10.1007/s11554-010-0158-5 }, + year = {2010}, + month = May, + pdf = {http://hal.inria.fr/inria-00476122/PDF/JRTIP.pdf}, +} + + +@inproceedings{YangTA09, + author = {Qingxiong Yang and Kar-Han Tan and Narendra Ahuja}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + booktitle = {CVPR}, + crossref = {DBLP:conf/cvpr/2009}, + pages = {557--564}, + title = {Real-time O(1) bilateral filtering}, + url = {http://doi.ieeecomputersociety.org/10.1109/CVPRW.2009.5206542}, + year = {2009} +} + +@proceedings{DBLP:conf/cvpr/2009, + title = {2009 IEEE Computer Society Conference on Computer Vision + and Pattern Recognition (CVPR 2009), 20-25 June 2009, Miami, + Florida, USA}, + booktitle = {CVPR}, + publisher = {IEEE}, + year = {2009}, + isbn = {978-1-4244-3992-8}, + bibsource = {DBLP, http://dblp.uni-trier.de} +} + + + +@article{abs-1104, + author = {Gleb Beliakov}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + journal = {CoRR}, + title = {Parallel calculation of the median and order statistics on GPUs with application to robust regression}, + url = {http://arxiv.org/abs/1104.2732}, + volume = {abs/1104.2732}, + year = {2011} +} + +@inproceedings{chen09, + author = {Wei Chen and M. Beister and Y. Kyriakou and M. Kachelries}, + booktitle = {Nuclear Science Symposium Conference Record (NSS/MIC), 2009 IEEE}, + doi = {10.1109/NSSMIC.2009.5402323}, + issn = {1095-7863}, + keywords = {CUDA-based BVM filter; NVIDIA compute unified device architecture; O(M In M) computational complexity; O(M2) computational complexity; branchless vectorized median filter; computerised tomography; data-level parallelism; fast accessing scheme; high performance median filtering; memory layout; modern commodity graphics processing units; pivot median filter; vectorized median computation; biology computing; computerised tomography; medical image processing}, + month = {24 2009-nov. 1}, + pages = {4142--4147}, + title = {High performance median filtering using commodity graphics hardware}, + year = {2009} +} + +@inproceedings{sanchezICASSP12, + author = {Ricardo M. Sanchez and Paul A. Rodriguez}, + booktitle = {Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on}, + doi = {10.1109/ICASSP.2012.6288187}, + issn = {1520-6149}, + month = {march}, + pages = {1549--1552}, + title = {Bidimensional median filter for parallel computing architectures}, + year = {2012} +} + +@INPROCEEDINGS{6036776, +author={Perrot, G. and Domas, S. and Couturier, R. and Bertaux, N.}, +booktitle={Computer and Information Technology (CIT), 2011 IEEE 11th International Conference on}, title={GPU Implementation of a Region Based Algorithm for Large Images Segmentation}, +year={2011}, +month={31 2011-sept. 2}, +volume={}, +number={}, +pages={291 -298}, +keywords={GPU implementation;Nvidia GPU architecture;algorithmic optimization;graphical processing units;image computing;image segmentation;image size;multicore CPU;multithreaded execution capability;region based algorithm;region-based active contour technique;snake algorithm;computer graphic equipment;coprocessors;image enhancement;image segmentation;multi-threading;multiprocessing systems;optimisation;}, +doi={10.1109/CIT.2011.60}, +ISSN={},} + +@book{tukey77, +author = {Tukey, John Wilder}, +isbn = {0-201-07616-0}, +publisher = {Addison-Wesley}, +title = {Exploratory Data Analysis}, +year = 1977 +} + +@INPROCEEDINGS{5402362, +author={Kachelriess, M.}, +booktitle={Nuclear Science Symposium Conference Record (NSS/MIC), 2009 IEEE}, title={Branchless vectorized median filtering}, +year={2009}, +month={24 2009-nov. 1}, +volume={}, +number={}, +pages={4099 -4105}, +keywords={CPU-based implementations;Intel performance primitives library;branchless vectorized median filtering;computational complexity;conventional fast median filters;data sorting algorithm;data-level parallelism;doubly linked lists;image processing;instruction pipeline;median algorithm;median filtering noisy data;modern hardware;one-dimensional signals;random data;scalar data;signal processing;sorted array;spin-off effect;vector capabilities;vectorized mask operation;vectorized max operation;vectorized min operation;computational complexity;high energy physics instrumentation computing;median filters;sorting;}, +doi={10.1109/NSSMIC.2009.5402362}, +ISSN={1095-7863},} + + +@article{Weiss:2006:FMB:1141911.1141918, + author = {Weiss, Ben}, + title = {Fast median and bilateral filtering}, + journal = {ACM Trans. Graph.}, + issue_date = {July 2006}, + volume = {25}, + number = {3}, + month = jul, + year = {2006}, + issn = {0730-0301}, + pages = {519--526}, + numpages = {8}, + url = {http://doi.acm.org/10.1145/1141911.1141918}, + doi = {10.1145/1141911.1141918}, + acmid = {1141918}, + publisher = {ACM}, + address = {New York, NY, USA}, + keywords = {SIMD, algorithms, bilateral filtering, complexity, data structures, histograms, image processing, median filtering, rank-order filtering, sorting, vector processing}, +} + +@inproceedings{Weiss:2006:FMB:1179352.1141918, + author = {Weiss, Ben}, + title = {Fast median and bilateral filtering}, + booktitle = {ACM SIGGRAPH 2006 Papers}, + series = {SIGGRAPH '06}, + year = {2006}, + isbn = {1-59593-364-6}, + location = {Boston, Massachusetts}, + pages = {519--526}, + numpages = {8}, + url = {http://doi.acm.org/10.1145/1179352.1141918}, + doi = {10.1145/1179352.1141918}, + acmid = {1141918}, + publisher = {ACM}, + address = {New York, NY, USA}, + keywords = {SIMD, algorithms, bilateral filtering, complexity, data structures, histograms, image processing, median filtering, rank-order filtering, sorting, vector processing}, +} + +@book{Huang:1981:TDS:539567, + author = {Huang, Thomas S.}, + title = {Two-Dimensional Digital Signal Processing II: Transforms and Median Filters}, + year = {1981}, + isbn = {0387103597}, + publisher = {Springer-Verlag New York, Inc.}, + address = {Secaucus, NJ, USA}, +} + +@article{zheng2011performance, + title={Performance Tuning for CUDA-Accelerated Neighborhood Denoising Filters}, + author={Zheng, Z. and Xu, W. and Mueller, K.}, + journal={Workshop on High Performance Image Reconstruction (HPIR)}, + pages={52--55}, + year={2011} +} + +@INPROCEEDINGS{6288187, +author={Sanchez, R.M. and Rodriguez, P.A.}, +booktitle={Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on}, title={Bidimensional median filter for parallel computing architectures}, +year={2012}, +month={march}, +volume={}, +number={}, +pages={1549 -1552}, +keywords={adaptive rate compressive sensing;background subtraction;classical CS theory;cross validation;current measurement rate;sensor measurements;signal reconstruction;signal sparsity;time-varying signal;visual surveillance applications;compressed sensing;image reconstruction;video surveillance;}, +doi={10.1109/ICASSP.2012.6288187}, +ISSN={1520-6149},} diff --git a/BookGPU/Chapters/chapter3/ch3.tex b/BookGPU/Chapters/chapter3/ch3.tex new file mode 100755 index 0000000..2afb337 --- /dev/null +++ b/BookGPU/Chapters/chapter3/ch3.tex @@ -0,0 +1,454 @@ +\chapterauthor{Zulu pero}{Zulumachine Institute} +%\graphicspath{{img/}} + + +% \begin{VF} +% ``A '' + +% \VA{Thomas Davenport}{Senior Adjutant to the Junior Marketing VP} +% \end{VF} + + + +% \begin{shadebox} +% A component part for an electronic item is +% manufactured at one of three different factories, and then delivered to +% the main assembly line.Of the total number supplied, factory A supplies +% 50\%, factory B 30\%, and factory C 20\%. Of the components +% manufactured at factory A, 1\% are faulty and the corresponding +% proportions for factories B and C are 4\% and 2\% respectively. A +% component is picked at random from the assembly line. What is the +% probability that it is faulty? +% \end{shadebox} + + +% \begin{equation} +% \mbox{var}\widehat{\Delta} = \sum_{j = 1}^t \sum_{k = j+1}^t +% \mbox{var}\,(\hat{\alpha}_j - \hat{\alpha}_k) = \sum_{j = 1}^t +% \sum_{k = j+1}^t \sigma^2(1/n_j + 1/n_k). \label{2delvart2} +% \end{equation} + + +% \begin{shortbox} +% \Boxhead{Box Title Here} +% \end{shortbox} + +% \begin{theorem}\label{1th:Z_m} +% Let $m$ be a prime number. With the addition and multiplication as +% defined above, $Z_m$ is a field. +% \end{theorem} + +% \begin{proof} +% \end{proof} + +% \begin{notelist}{000000} +% \notes{Note:}{The process of integrating reengineering is best accomplished with an engineer, a dog, and a cat.} +% \end{notelist} + + +% \begin{VT1} +% \VH{Think About It...} +% Com +% \VT +% \VTA{The Information Revolution}{Business Week} +% \end{VT1} + + +%\begin{definition}\label{1def:linearcomb}{}\end{definition} + + + +% \begin{extract} +% text +% \end{extract} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Listings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\lstset{ + language=C, + columns=fixed, + basicstyle=\footnotesize\ttfamily, + numbers=left, + firstnumber=1, + numberstyle=\tiny, + stepnumber=5, + numbersep=5pt, + tabsize=3, + extendedchars=true, + breaklines=true, + keywordstyle=\textbf, + frame=single, + % keywordstyle=[1]\textbf, + %identifierstyle=\textbf, + commentstyle=\color{white}\textbf, + stringstyle=\color{white}\ttfamily, + % xleftmargin=17pt, + % framexleftmargin=17pt, + % framexrightmargin=5pt, + % framexbottommargin=4pt, + backgroundcolor=\color{lightgray}, + } + +%\DeclareCaptionFont{blue}{\color{blue}} +%\captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}} + +%\DeclareCaptionFont{white}{\color{white}} +%\DeclareCaptionFormat{listing}{\colorbox{gray}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}} +%\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singleline} +%%%%%%%%%%%%%%%%%%%%%%%% Fin Listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\kl}{\includegraphics[scale=0.6]{Chapters/chapter3/img/kernLeft.png}~} +\newcommand{\kr}{\includegraphics[scale=0.6]{Chapters/chapter3/img/kernRight.png}} + +\chapter{Setting up the environnement.} +Image processing using a GPU often means using it as a general purpose computing processor, which soon brings up the issue of data transfers, especially when kernel runtime is fast and/or when large data sets are processed. +The truth is that, in certain cases, data transfers between GPU and CPU are slower than the actual computation on GPU. +It remains that global runtime can still be faster than similar processes run on CPU. +Therefore, to fully optimize global runtimes, it is important to pay attention to how memory transfers are done. +This leads us to propose, in the following section, an overall code structure to be used with all our kernel examples. + +Obviously, our code originally accepts various image dimensions and can process color images. +However, so as to propose concise and more readable code, we will assume the following limitations: +8 or 16~bit-coded gray-level input images whose dimensions $H\times W$ are multiples of 512 pixels. + +\section{Data transfers, memory management.} +This section deals with the following issues: +\begin{enumerate} +\item data transfer from CPU memory to GPU global memory: several GPU memory areas are available as destination memory but the 2-D caching mechanism of texture memory, specifically designed for fetching neighboring pixels, is currently the fastest way to fetch gray-level pixel values inside a kernel computation. This has lead us to choose \textbf{texture memory} as primary GPU memory area for images. +\item data fetching from GPU global memory to kernel local memory: as said above, we use texture memory. Depending on which process is run, texture data is used either by direct fetching in kernel local memory or through a prefetching in thread block shared memory. +\item data outputting from kernels to GPU memory: there is actually no alternative to global memory, as kernels can not directly write into texture memory and as copying from texture to CPU memory would not be faster than from simple global memory. +\item data transfer from GPU global memory to CPU memory: it can be drastically accelerated by use of \textbf{pinned memory}, keeping in mind it has to be used sparingly. +\end{enumerate} +Algorithm \ref{algo:memcopy} summarizes all the above considerations and describe how data are handled in our examples. For more information on how to handle the different types of GPU memory, we suggest to refer to CUDA programmer's guide. + +At debug stage, for simplicity's sake, we use the \textbf{cutil} library supplied by the NVidia developpement kit (SDK). Thus, in order to easily implement our examples, we suggest readers download download and install the latest NVidia-SDK (ours is SDK4.0), create a new directory \textit{SDK-root-dir/C/src/fast\_kernels} and adapt the generic \textit{Makefile} present in each sub-directory of \textit{SDK-root-dir/C/src/}. Then, only two more files will be enough to have a fully operational environnement: \textit{main.cu} and \textit{fast\_kernels.cu}. +Listings \ref{lst:main1}, \ref{lst:fkern1} and \ref{lst:mkfile} implement all the above considerations minimally, while remaining functional. + +The main file of Listing \ref{lst:main1} is a simplified version of our actual main file. +It has to be noticed that cutil functions \texttt{cutLoadPGMi} and \texttt{cutSavePGMi} only operate on unsigned integer data. As data is coded in short integer format for performance reasons, the use of these functions involves casting data after loading and before saving. This may be overcome by use of a different library. Actually, our choice was to modify the above mentioned cutil functions. + +Listing \ref{lst:fkern1} gives a minimal kernel skeleton that will serve as the basis for all other kernels. Lines 5 and 6 determine the coordinates $(i, j)$ of the pixel to be processed. Each pixel is associated with one thread. +The instruction in line 8 combines writing the output gray-level value into global memory and fetching the input gray-level value from 2-D texture memory. +The Makefile given in Listing \ref{lst:mkfile} shows how to adapt examples given in SDK. + +\begin{algorithm} + \SetNlSty{textbf}{}{:} + allocate and populate CPU memory \textbf{h\_in}\; + allocate CPU pinned-memory \textbf{h\_out}\; + allocate GPU global memory \textbf{d\_out}\; + declare GPU texture reference \textbf{tex\_img\_in}\; + allocate GPU array in global memory \textbf{array\_img\_in}\; + bind GPU array \textbf{array\_img\_in} to texture \textbf{tex\_img\_in}\; + copy data from \textbf{h\_in} to \textbf{array\_img\_in}\label{algo:memcopy:H2D}\; + kernel\kl gridDim,blockDim\kr()\tcc*[f]{outputs to d\_out}\label{algo:memcopy:kernel}\; + copy data from \textbf{d\_out} to \textbf{h\_out} \label{algo:memcopy:D2H}\; +\caption{Global memory management on CPU and GPU sides.} +\label{algo:memcopy} +\end{algorithm} + +\lstinputlisting[label={lst:main1},caption=Generic main.cu file used to launch CUDA kernels]{Chapters/chapter3/code/mainSkel.cu} + +\lstinputlisting[label={lst:fkern1},caption=fast\_kernels.cu file featuring one kernel skeleton]{Chapters/chapter3/code/kernSkel.cu} + +\lstinputlisting[label={lst:mkfile},caption=Generic Makefile based on those provided by NV SDK]{Chapters/chapter3/code/Makefile} + + +\section{Performance measurements} +As our goal is to design very fast implementations of basic image processing algorithms, we need to make quite accurate time-measurements, within the order of magnitude of $0.01~ms$. Again, the easiest way of doing so is to use the helper functions of the cutil library. As usual, as the durations we are measuring are short and possibly suject to non neglectable variations, a good practice is to measure multiple executions and issue the mean runtime. All time results given in this chapter have been obtained through 1000 calls to each kernel. + +Listing \ref{lst:chronos} shows how to use the dedicated cutil functions. Timer declaration and creation only need to be performed once while reset, start and stop can be used as often as necessary. Synchronization is mandatory before stopping the timer (Line 7), to avoid runtime measure being biased. +\lstinputlisting[label={lst:chronos},caption=Time measurement technique using cutil functions]{Chapters/chapter3/code/exChronos.cu} + +In an attempt to provide relevant speedup values, we either implemented CPU versions of the algorithms studied, or used the values found in existing literature. Still, the large number and diversity of hardware platforms and GPU cards make it impossible to benchmark every possible combination and significant differences may occur between the speedups we announce and those obtained with different devices. As a reference, our developing platform details as follows: + +\begin{itemize} +\item CPU codes run on: + \begin{itemize} + \item Quad Core Xeon E31245 at 3.3GHz-8GByte RAM running Linux kernel 3.2 + \item Quad Core Xeon E5620 at 2.40GHz-12GByte RAM running Linux kernel 2.6.18 + \end{itemize} +\item GPU codes run on: +\begin{itemize} + \item Nvidia Tesla C2070 hosted by a PC QuadCore Xeon E5620 at 2.4GHz-12GByte RAM, running Linux kernel 2.6.18 + \item NVidia GeForce GTX 280 hosted by a PC QuadCore Xeon X5482 at 3.20GHz-4GByte RAM, running Linux kernel 2.6.32 + \end{itemize} +\end{itemize} + +All kernels have also been tested with various image sizes from 512$\times$512 to 4096$\times$4096 pixels. This allows to guess runtime dependancy over image size. + +Last, like many authors, we chose to use the pixel throughput value of each process in Mega Pixels per second (MP/s) as a performance indicator, including data transfers and kernel runtimes. +In order to estimate the potential for improvement of each kernel, a reference throughput measurement, involving identity kernel of Listing \ref{lst:fkern1}, was performed. As this kernel only fetches input values from texture memory and outputs them to global memory without doing any computation, it represents the smallest, thus fastest, possible process and is taken as the reference throughput value (100\%). The same measurement was performed on CPU, with a maximum effective pixel throughput of 130~Mpixel per second. On GPU, depending on grid parameters it amounts to 800~MPixels/s on GTX280 and 1300~Mpixels/s on C2070. + + + +\chapter{Implementing a fast median filter} +\section{Introduction} +Median filtering is a well-known method used in a wide range of application frameworks as well as a standalone filter especially for \textit{salt and pepper} denoising. It is able to highly reduce power of noise without blurring edges too much. + +First introduced by Tukey in \cite{tukey77}, it has been widely studied since then, and many researchers have proposed efficient implementations of it, adapted to various hypothesis, architectures and processors. +Originally, its main drawbacks were its compute complexity, its non linearity and its data-dependent runtime. Several researchers have adress these issues and designed, for example, efficient histogram-based median filter with predictible runtime \cite{Huang:1981:TDS:539567, Weiss:2006:FMB:1179352.1141918}. + +More recently, the advent of GPUs opened new perspectives in terms of image processing performance, and some researchers managed to take advantage of the new graphic capabilities: in that respect, we can cite the Branchless Vectorized Median filter (BVM) \cite{5402362, chen09} which allows very interesting runtimes on CUDA-enabled devices but, as far as we know, the fastest implementation to date is the histogram-based CCDS median filter \cite{6288187}. + +Some of the following implementations, feature very fast runtimes. They are targeted on Nvidia Tesla GPU (Fermi architecture, compute capability 2.x) but may easily be adapted to other models e.g. those of compute capability 1.3. + +The fastest ones are based on one efficient parallel implementation of the BVM algorithm described in \cite{mcguire2008median}, improving its performance through fine tuning of its implementation. + +\section{Median filtering} +\subsection{Basic principles} +DEsigning a 2-D median filter basically consists in defining a square window $H(i,j)$ for each pixel $I(i,j)$ of the input image, containing $n\times n$ pixels and centered on $I(i,j)$. The output value $I'(i,j)$ is the median value of the gray level values of the $n\times n$ pixels of $H(i,j)$. Figure \ref{fig:median_1} illustrates this principle with an example of a 5x5 median filter applied on pixel $I(5,6)$. The output value is the median value of the 25 values of the dark gray window centered on pixel $I(5,6)$. + The generic filtering method is given by Algorithm \ref{algo_median_generic}. After the data transfer stage of line \ref{algo_median_generic:memcpyH2D} which copies data from CPU memory to GPU texture memory, the actual median computing occurs between lines \ref{algo_median_generic:cptstart} and lines \ref{algo_median_generic:cptend}, before the final transfer which copies data back to CPU memory at line \ref{algo_median_generic:memcpyD2H}. Obviously, on key issue is the selection method that identifies the median value. But, as shown in figure \ref{fig:median_overlap}, since two neighboring pixels share part of the values to be sorted, a second key issue is how to rule redundancy between consecutive positions of the running window $H(i,j)$. +As mentioned earlier, the selection of the median value can be performed by por than one technique, using either histogram-based or sorting methods, each of them having its own benefits and drawbacks as will be discussed further down. + +\subsection{A naive implementation} +As a reference, Listing \ref{lst:medianGeneric} gives a simple, not to say simplistic implementation of a CUDA kernel (\texttt{kernel\_medianR}) achieving generic $n\times n$ histogram-based median filtering. Its runtime has a very low data dependency, but this implementation does not suit very well GPU architecture. Each pixel loads the whole of its $n\times n$ neighborhood meaning that one pixel is loaded multiple times inside one single thread block, and above all, the use of a local vector (histogram[]) considerably downgrades performance, as the compiler automatically stores such vectors in local memory (slow). + +Table \ref{tab:medianHisto1} displays measured runtimes of \texttt{kernel\_medianR} and pixel throughputs for each GPU version and for both CPU and GPU implementations. Usual window sizes of $3\times 3$, $5\times 5$ and $7\times 7$ are shown. Though some specific applications require larger window sizes and dedicated algorithms , such small square window sizes are most widely used in general purpose image processing. GPU runtimes have been obtained with a grid of 64-thread blocks. This block size, is a good compromise in this case. + +The first observation to make when analysing results of Table \ref{tab:medianHisto1} is that, on CPU, window size has almost no influence on the effective pixel throughput. +Since inner loops that fill the histogram vector contain very few fetching instructions (from 9 to 49, depending on the window size), it is not surprising to note neglectable runtime compared to the runtime of outer loops that fetch image pixels (from 256k to 16M instructions). +One could be tempted to claim that CPU has no chance to win, which is not so obvious as it highly depends on what kind of algorithm is run and above all, how it is implemented. Despite a maximum effective throughput potential that is almost five times higher, measured GTX280 throughput values sometimes prove slower than CPU values, as shown in Table \ref{tab:medianHisto1}. + +On the GPU's side, we note high dependence on window size due to the redundancy induced by the multiple fetches of each pixel inside each block, becoming higher with the window size as illustrated by Figure \ref{fig:median_overlap}. On C2070 card, thanks to a more efficient caching mechanism, this effect is lesser. On GPUs, dependency over image size is low, due to slightly more efficient data transfers when copying larger data amounts. Thus transferring a 4096$\times$4096 pixel image (32~MBytes) is a bit faster than transferring 64 times a 512$\times$512 pixel image (0.5~MBytes). + +%% mettre l'eau à la bouche + +\lstinputlisting[label={lst:medianGeneric},caption=Generic CUDA kernel achieving median filtering]{Chapters/chapter3/code/medianGeneric.cu} + +\begin{figure} + \centering + \includegraphics[width=8cm]{Chapters/chapter3/img/median_1.png} + \caption{Exemple of 5x5 median filtering} + \label{fig:median_1} +\end{figure} + +\begin{algorithm} + \SetNlSty{textbf}{}{:} + copy data from CPU to GPU texture memory\label{algo_median_generic:memcpyH2D}\; + \ForEach(\tcc*[f]{in parallel}){pixel at position $(x, y)$}{ + Read gray-level values of the n$\times$n neighborhood\label{algo_median_generic:cptstart}\; + Selects the median ($(n^2/2)^{th}$) value among those n$\times$n values\; + Outputs the new gray-level value \label{algo_median_generic:cptend}\; + } +copy data from GPU global memory to CPU memory\label{algo_median_generic:memcpyD2H}\; +\caption{generic n$\times$n median filter} +\label{algo_median_generic} +\end{algorithm} + +\begin{figure} + \centering + \includegraphics[width=5cm]{Chapters/chapter3/img/median_overlap.png} + \caption{Illustration of window overlapping in 5x5 median filtering} + \label{fig:median_overlap} +\end{figure} + + +\begin{table}[h] +%\newcolumntype{I}{!{\vrule width 1.5pt}} +\newlength\savedwidth +\newcommand\whline{\noalign{\global\savedwidth + \arrayrulewidth\global\arrayrulewidth 1.5pt} + \hline \noalign{\global\arrayrulewidth + \savedwidth} +} +\renewcommand{\arraystretch}{1.5} +\centering +{\tiny +\begin{tabular}{|c|l||c|c|c|c|c|c|c|c|c|} +\hline +\multicolumn{2}{|l||}{Processor} & \multicolumn{3}{c|}{\textbf{GTX280}} & \multicolumn{3}{c|}{\textbf{C2070}} & \multicolumn{3}{c|}{\textbf{Xeon}} \\ \hline +\multicolumn{2}{|l||}{\shortstack{Performances$\rightarrow$\\sizes (pixels)$\downarrow$}} & \shortstack{t\\(ms)}& \shortstack{output\\(MP/s)}& \shortstack{rate\\\% }&\shortstack{t\\(ms)}& \shortstack{output\\(MP/s)}& \shortstack{rate\\\% }&\shortstack{t\\(ms)}& \shortstack{output\\(MP/s)}& \shortstack{rate\\\% } \\ \whline +\multirow{3}{*}{\rotatebox{90}{512$^2$}} &3$\times$3&11.50 &22 &2.2 &7.58 &33 &3.4 & 19.25& 14&-\\ + &5$\times$5&19.10 &14 &1.3 &8.60 &30 &3.0 &18.49 &14 &-\\ + &7$\times$7&31.30 &8 &0.8 &10.60 &24 &2.5 &20.27 &13 &-\\\whline +\multirow{3}{*}{\rotatebox{90}{1024$^2$}}&3$\times$3&44.50 &23 &2.3 &29.60 &34 &3.5 &75.49 &14 &-\\ + &5$\times$5&71.10 &14 &1.4 &33.00 &31 &3.2 &73.88 &14 &-\\ + &7$\times$7&114.50 &9 &0.9 &39.10 &26 &2.7 &77.40 &13 &-\\\whline +\multirow{3}{*}{\rotatebox{90}{2048$^2$}}&3$\times$3&166.00 &24 &2.4 &115.20 &36 &3.6 &296.18&14 &-\\ + &5$\times$5&261.00&16 &1.5 &128.20&32 &3.3 &294.55&14 &-\\ + &7$\times$7&411.90 &10&1.0 &143.30&28 &2.8 &303.48&14 &-\\\whline +\multirow{3}{*}{\rotatebox{90}{4096$^2$}}&3$\times$3&523.80 &31 &3.0 &435.00 &38 &3.9 &1184.16&14 &-\\ + &5$\times$5&654.10&25 &2.4 &460.20&36 &3.7 &1158.26&14 &-\\ + &7$\times$7&951.30 &17&1.7 &509.60&32 &3.3 &1213.55&14 &-\\\whline + +\end{tabular}} +\caption{Performance results of \texttt{kernel medianR}. } +\label{tab:medianHisto1} +\end{table} + +\section{NVidia GPU tuning recipes} +When designing GPU code, besides thinking of the actual data computing process, one must choose the memory type into which to store temporary data. Three type of GPU memory are available: +\begin{enumerate} +\item \textbf{Global memory, the most versatile:}\\Offers the largest storing space and global scope but is slowest (400 cycles latency). \textbf{Texture memory} is physically included into it, but allows access through an efficient 2-D caching mechanism. +\item \textbf{Registers, the fastest:}\\Allows access wihtout latency, but only 63 registers are available per thread (thread scope), with a maximum of 32K per Symetric Multiprocessor (SM). +\item \textbf{Shared memory, a complex compromise:}\\All threads in one block can access 48~KBytes of shared memory, which is faster than global memory (20 cycles latency) but slower than registers. +However, bank conflicts can occur if two threads of a warp try to access data stored in one single memory bank. In such cases, the parallel process is re-serialized which may cause significant performance decrease. One easy way to avoid it is to ensure that two consecutive threads in one block always access 32 bit data at two consecutive adresses. +\end{enumerate} + +\noindent As observed earlier, designing a median filter GPU implementation using only global memory is fairly straightforward, but its performance remains quite low even if it is faster than CPU. +To overcome this, the most frequent choice made in efficient implementations found in literature is to use shared memory. Such option implies prefetching data prior to doing the actual computations, a relevant choice, as each pixel of an image belongs to n$\times$n different neighborhoods. Thus, it can be expected that fetching each gray-level value from global memory only once should be more efficient than do it each time it is required. One of the most efficient implementations using shared memory is presented in \cite{5402362}. In the case of the generic kernel of Listing \ref{lst:medianGeneric}, using shared memory without further optimization would not bring valuable speedup because that would just move redundancy from texture to shared memory fetching and would generate bank conflicts. For information, we wrote such a version of the generic median kernel and our measurements showed a speedup of around 3\% (for example: 32ms for 5$\times$5 median on a 1024$^2$ pixel image). + +As for registers, designing a generic median filter that would only use that type of memory seems difficult, due to the above mentioned 63 register-per-thread limitation. +Yet, nothing forbids us to design fixed-size filters, each of them specific to one of the most popular window sizes. It might be worth the effort as dramatic increase in performance could be expected. + +Another track to follow in order to improve performance of GPU implementations consists in hiding latencies generated by arithmetic instruction calls and memory accesses. Both can be partially hidden by introducing Instruction-Level Parallelism (ILP) and by increasing the data count output by each thread. Though such techniques may seem to break the NVidia occupancy paradigm, they can lead to dramatically higher data throughput values. +The following sections illustrate these ideas and detail the design of the fastest CUDA median filter known to date. + +\section{A 3$\times$3 median filter: using registers } +Designing a median filter dedicated to the smallest possible square window size is a good challenge to start using registers. +One first issue is that the exclusive use of registers forbids us to implement a naive histogram-based method. In a \textit{8-bit gray level pixel per thread} rule, each histogram requires one 256-element vector to store its values, e.g. four times the maximum register count allowed per thread (63). Considering a 3$\times$3 median filter involves only 9 pixel values per thread, it seem obvious they can be sorted within the 63-register limit. + +\subsection{The simplest way} +In the case of a 3$\times$3 median filter, the simplest solution consists in associating one register to each gray-level value, then sorting those 9 values and selecting the fifth one, e.g. the median value. For such a small amount of data to sort, a simple selection method is well indicated. As shown in Listing \ref{lst:kernelMedian3RegTri9} (\texttt{kernelMedian3RegTri9()}), the constraint of only using registers leads to adopt an unusual manner of coding. However, results are persuasive: runtimes are divided by around 120 on GTX280 and 80 on C2070, while only reduced by a 3.5 factor on CPU. +The diagram of Figure \ref{fig:compMedians1} summarizes these first results. Only C2070 throughputs are shown and compared to CPU results. We included the maximum effective pixel throughput in order to see the improvement potential of the different implementations. We also introduced throughputd achieved by \textit{libJacket}, a commercial implementation, as it was the fastest known implementation of 3$\times$3 median filter to date, as illustrated in \cite{chen09}. One of the authors of libJacket kindly posted the CUDA code of its 3$\times$3 median filter, that we inserted into our own coding structure. The algorithm itself is quite similar to ours, but running it in our own environement produced higher throughput values than those published in \cite{chen09}, not due to different hardware capabilities between our GTX280 and the GTX260 used in the paper, but to the way we perform memory transfers and to our register-only method of storing temporary data. + +\lstinputlisting[label={lst:kernelMedian3RegTri9},caption= 3$\times$3 median filter kernel using one register per neighborhood pixel and bubble sort]{Chapters/chapter3/code/kernMedianRegTri9.cu} + +\begin{figure} + \centering + \includegraphics[width=11cm]{Chapters/chapter3/img/debitPlot1.png} + \caption{Comparison of pixel throughputs on GPU C2070 and CPU for generic median, in 3$\times$3 median register-only and \textit{libJacket}.} + \label{fig:compMedians1} +\end{figure} + +\subsection{Further optimization} +Running the above register-only 3$\times$3 median filter through the NVidia CUDA profiler teaches us that the memory throughput achieved by the kernel remains quite low. To improve this, two methods can be used: one is to increase the number of concurrent threads by reducing the number of registers used, the other to have each thread process more data which can be achieved by outputting the gray-level value of two pixels or more. +\subsubsection{Reducing register count} +Our current kernel (\texttt{kernelMedian3RegTri9}) uses one register per gray-level value, which amounts to 9 registers for the entire 3$\times$3 window. +This count can be reduced by use of an iterative sorting process called \textit{forgetful selection}, where both \textit{extrema} are eliminated at each sorting stage, until only 3 elements remain. The question is to find out the minimal register count $k_n$ that allows the selection of the median amoung $n^2$ values. The answer can be evaluated considering that, when eliminating the maximum and the minimum values, one has to make sure not to eliminate the global median value, e.g. $k_n=\lceil n^2/2\rceil+1$. +%To ensure this, the number of values that are not part of the process must remain lower than the number of values that would have had an index higher (or lower) than the middle one in the fully sorted $n^2$ value vector. +This rule can be applied to the first eliminating stage and remains true with the next ones as each stage suppresses exactly two values. +In our 3$\times$3 pixel window example, the minimum register count becomes $k_9=\lceil 9/2\rceil+1 = 6$. + +The \textit{forgetful selection} method, used in \cite{mcguire2008median} does not imply full sorting of values, but only selecting minimum and maximum values, which, at the price of a few iteration steps ($n^2-k$), reduces arithmetic complexity. +Listing \ref{lst:medianForget1pix3} details this process where forgetful selection is achieved by use of simple 2-value sorting function ($s()$, lines 1 to 5) that swaps input values if necessary. Moreover, whenever possible, in order to increase the Instruction-Level Parallelism, successive calls to $s()$ are done with independant elements as arguments. This is illustrated by the macro definitions of lines 7 to 14. + +\lstinputlisting[label={lst:medianForget1pix3},caption= 3$\times$3 median filter kernel using the minimum register count of 6 and finding the median value by forgetful selection method]{Chapters/chapter3/code/kernMedianForget1pix3.cu} + +Our such modified kernel provides significantly improved runtimes: a speedup of around 16\% is obtained, and pixel throughput reaches around 1000~MPixel/s on C2070. + +\subsubsection{More data output per thread} +In the case of a kernel achieving an effective memory throughput much lower than the peak value, and if enough threads are run, another technique may help hiding memory latency and thus leverage performance: one thread produces multiple pixel outputs. +Attentive readers should notice that it would increase the register count per thread. That's true, but dividing thread block size by the same quantity allow, at least, to keep the same register count per block, which is the parallelism limiting factor. +Moreover, it is now possible to take advantage of the window overlapping, first illustrated In Figure \ref{fig:median_overlap}, and more detailed in Figure \ref{fig:median3_overlap}. As the selection is first processed on the first 6 gray-level values and as it is exactly the number of pixels that overlap between two neighbor window of adjacent pixels, it allows to save 6 texture fetches and one \texttt{minmax6} selection per thread. Again, speedup is expected through the modified kernel source code and the associated grid dimensions presented in Listing \ref{lst:medianForget2pix3}. Important differences to be noticed are pixel coordinates computation given thread index. As each thread has to process two pixels, the number of threads in each block is divided by 2, while the grid size remains the same. Consequently, in kernel code, each thread of block coordinates $(tx, ty)$ will be in charge of processing pixels of block coordinates $(2tx, ty)$ and $(2tx+1, ty)$; lines 5 and 6 implement this. + +\begin{figure} + \centering + \includegraphics[width=4cm]{Chapters/chapter3/img/median3_overlap.png} + \caption{Illustration of how window overlapping is used to combine 2 pixel selections in 3$\times$3 median kernel.} + \label{fig:median3_overlap} +\end{figure} + +\lstinputlisting[label={lst:medianForget2pix3},caption=kernel 3$\times$3 median filter processing 2 output pixel values per thread by a combined forgetfull selection.]{Chapters/chapter3/code/kernMedian2pix3.cu} + +Running this ultimate kernel saves another 10\% of runtime, as shown in Figure \ref{fig:compMedians2} and provides the best peak pixel throughput known so far on C2070 of 1155~Mpixel/s which is 86\% of the maximum effective throughput. + +\begin{figure} + \centering + \includegraphics[width=11cm]{Chapters/chapter3/img/debitPlot2.png} + \caption{Comparison of pixel throughput on GPU C2070 for the different 3$\times$3 median kernels.} + \label{fig:compMedians2} +\end{figure} + +\section{Median filter 5$\times$5 and more} +Considering the maximum register count allowed dper thread (63) and trying to push this technique to its limit would let us design median filters up to 9$\times$9 pixel window. This maximum would actually use $k_{81}=\lceil 81/2\rceil+1 = 42$ registers per thread plus a few ones used by the compiler to complete arithmetic operations (9) leading to a total register count of 51. +This would oviously forbids us to compute more than one pixel per thread, but also would limit the number of concurrent threads per block. Our measurements show that this technique is still worth using for the 5$\times$5 median but that larger window sizes could take advantage of using shared memory. +The next two sections will first detail the particular case of the 5$\times$5 median through register-only method and then a generic kernel for larger window sizes. + +\subsection{Median filter 5$\times$5: register only } +The minimum register count allowing to apply the forgetfull selection method to 5$\times$5 median filter is $k_{25}=\lceil 25/2\rceil+1 = 14$. Moreover, two adjacent overlapping windows share 20 pixels ($n^2-one\_column$) so that, when processing 2 pixels at once, from the first selection stage with 14 common values to the passing of the last common value, a count of 6 common selection stages can be carried out. That allows to limit the register count to 14+8=22 per thread. Figure \ref{fig:median5overlap} +\begin{figure} + \centering + \includegraphics[width=8cm]{Chapters/chapter3/img/median5_overlap.png} + \caption{Reduction of register count in 5$\times$5 register only median kernel, outputting 2 pixel at once. The first 6 forgetful selection stages are common to both processed center pixels. Only the last 5 selections have to be done separately.} + \label{fig:median5overlap} +\end{figure} +Listing \ref{lst:medianForget2pix5} reproduces the kernel \texttt{kernel\_medianForget2pix5} code where the common selection stages take place from line XX to line YY. The remaining separate selection stages occur between lines XX and YY after the separation of line GG. + +\lstinputlisting[label={lst:medianForget2pix5},caption=kernel 5$\times$5 median filter processing 2 output pixel values per thread by a combined forgetfull selection.]{Chapters/chapter3/code/kernMedian2pix5.cu} + +Timing results follow the same variations with image size than previous ones. That is why Table \ref{tab:median5comp} shows only throughput values obtained for C2070 card and 4096$\times$4096 pixel image. + +\begin{table}[h] +%\newlength\savedwidth +\newcommand\whline{\noalign{\global\savedwidth + \arrayrulewidth\global\arrayrulewidth 1.5pt} + \hline \noalign{\global\arrayrulewidth + \savedwidth} +} +\centering +{\scriptsize +\begin{tabular}{|l||c|c|c|c|} +\hline +\textbf{Implementation}&\shortstack{\textbf{registers only}\\\textbf{1 pix/thread}}&\shortstack{\textbf{registers only}\\\textbf{2 pix/thread}}&\shortstack{\textbf{libJacket}\\(interpolated)}&\shortstack{\textbf{shared mem}}\\\whline + \shortstack{\textbf{Throughput}\\\textbf{(MP/s)}}&551&738&152&540\\\hline +\end{tabular} +} +\caption{Performance of various 5$\times$5 median kernel implementations, applied on 4096$\times$4096 pixel image with C2070 GPU card..} +\label{tab:median5comp} +\end{table} + +\subsection{True median filter n$\times$n} +Shared memory can represent an efficient way to reduce global or texture loads, but it is also a limiting factor for performance. +On Fermi GPUs (as C2070), a maximum of 48~kB of per block shared memory is avalaible. With 16-bit coded gray levels, that allows to store up to 24576 values, which can be organised as a square of 156$\times$156 pixels maximum. +A point is that it is not efficient to use the shared memory at its maximum, as it would reduce the number of blocks beeing run in parallel on each SM. +Another point is that it is not possible to avoid bank conflicts when designing a generic median kernel. +Thus, the most efficient way to code a generic, large window, median filter, is to do without shared memory but use texture direct fetching. +Listing \ref{lst:medianForgetGeneric} reproduce such a code, where the most interesting part is between lines XX and YY, where the forgetfull selection has been generalized to an arbitrary window size. +Performance results summarized in table \ref{tab:medianForgetGeneric} demonstrate that such a method is far from beeing as efficient as small fixed-size implementations. + +\begin{table}[h] +%\newlength\savedwidth +\newcommand\whline{\noalign{\global\savedwidth + \arrayrulewidth\global\arrayrulewidth 1.5pt} + \hline \noalign{\global\arrayrulewidth + \savedwidth} +} +\centering +{\scriptsize +\begin{tabular}{|l||c|c|c|c|} +\hline +\shortstack{\textbf{Window size}\\(in pixels)}&\textbf{121}&\textbf{169}&\textbf{225}&\textbf{441}\\\whline + \shortstack{\textbf{Throughput}\\\textbf{(MP/s)}}& & & & \\\hline +\end{tabular} +} +\caption{Performance of generic median kernel applied to various window sizes on 4096$\times$4096 pixel image.} +\label{tab:medianForgetGeneric} +\end{table} + +\lstinputlisting[label={lst:medianForgetGeneric},caption= generic median kernel by forgetfull selection.]{Chapters/chapter3/code/kernMedianForgetGeneric.cu} + +\subsection{Fast approximated median filter n$\times$n} +If faster process is required, a possible technique is to split median selection in two separate 1-D stages: one in the vertical direction and the other in the horizontal direction. Image processing specialists would say that this method does not selects the actual median value. They would be right, but for large window sizes and \textit{real-life} images, the so selected value is statically near the true median value and often represents an acceptable approximation. +In this particular case, we use a Torben Morgensen sorting algorithm, as it only needs a few and fixed register count. + +\begin{table}[h] +%\newlength\savedwidth +\newcommand\whline{\noalign{\global\savedwidth + \arrayrulewidth\global\arrayrulewidth 1.5pt} + \hline \noalign{\global\arrayrulewidth + \savedwidth} +} +\centering +{\scriptsize +\begin{tabular}{|l||c|c|c|c|} +\hline +\shortstack{\textbf{Window size}\\(in pixels)}&\textbf{121}&\textbf{169}&\textbf{225}&\textbf{441}\\\whline + \shortstack{\textbf{Throughput}\\\textbf{(MP/s)}}& & & & \\\hline +\end{tabular} +} +\caption{Performance of generic pseudo separable median kernel applied to various window sizes on 4096$\times$4096 pixel image.} +\label{tab:medianSeparable} +\end{table} + +\lstinputlisting[label={lst:medianSeparable},caption= generic pseudo median kernel.]{Chapters/chapter3/code/kernMedianSeparable.cu} + + +\section{Glossary} +\begin{Glossary} +\item[CUDA] Compute Unified Device Architecture. +\end{Glossary} + +\putbib[Chapters/chapter3/biblio3] + diff --git a/BookGPU/Chapters/chapter3/code/Makefile b/BookGPU/Chapters/chapter3/code/Makefile new file mode 100644 index 0000000..1a8ec5d --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/Makefile @@ -0,0 +1,7 @@ +EXECUTABLE := fast_median +CUFILES := main.cu + +include ../../common/common.mk + +NVCCFLAGS += -arch=sm_20 +NVCCFLAGS += --ptxas-options=-v diff --git a/BookGPU/Chapters/chapter3/code/exChronos.cu b/BookGPU/Chapters/chapter3/code/exChronos.cu new file mode 100644 index 0000000..8926a00 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/exChronos.cu @@ -0,0 +1,10 @@ +unsigned int timer ; +cutilCheckError( cutCreateTimer(&timer)); +cutilCheckError( cutResetTimer(timer) ); +cutilCheckError( cutStartTimer(timer) ); +for (int ct=0; ct<1000 ; ct++) + kernel_ident<<< dimGrid, dimBlock, 0>>>(d_out, W); +cudaThreadSynchronize() ; +cutilCheckError( cutStopTimer(timer) ); +cutilCheckError( cutStopTimer(timer) ); +printf("Mean runtime: %f ms,\n", cutGetTimerValue(timer)/1000); diff --git a/BookGPU/Chapters/chapter3/code/kernMedian2pix3.cu b/BookGPU/Chapters/chapter3/code/kernMedian2pix3.cu new file mode 100644 index 0000000..f6f48da --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/kernMedian2pix3.cu @@ -0,0 +1,38 @@ +__global__ void kernel_median3_2pix( short *output, + int i_dim, int j_dim) +{ + // j base coordinate = 2*(thread index) + int j= __mul24(__mul24(blockIdx.x,blockDim.x) + threadIdx.x,2) ; + int i= __mul24(blockIdx.y,blockDim.y) + threadIdx.y ; + int a0, a1, a2, a3, a4, a5 ; // for left window + int b0, b1, b2, b3, b4, b5 ; // for right window + + a0 = tex2D(tex_img_ins, j , i-1); // 6 common pixels + a1 = tex2D(tex_img_ins, j+1, i-1); + a2 = tex2D(tex_img_ins, j , i ); + a3 = tex2D(tex_img_ins, j+1, i ); + a4 = tex2D(tex_img_ins, j , i+1); + a5 = tex2D(tex_img_ins, j+1, i+1); + + minmax6(&a0, &a1, &a2, &a3, &a4, &a5);// common minmax + b0=a0; b1=a1; b2=a2; b3=a3; b4=a4; b5=a5;// separation + + a5 = tex2D(tex_img_ins, j-1, i); //separate processes + b5 = tex2D(tex_img_ins, j+2, i); + minmax5(&a1, &a2, &a3, &a4, &a5); + minmax5(&b1, &b2, &b3, &b4, &b5); + a5 = tex2D(tex_img_ins, j-1, i-1); + b5 = tex2D(tex_img_ins, j+2, i-1); + minmax4(&a2, &a3, &a4, &a5); + minmax4(&b2, &b3, &b4, &b5); + a5 = tex2D(tex_img_ins, j-1, i+1); + b5 = tex2D(tex_img_ins, j+2, i+1); + minmax3(&a3, &a4, &a5); + minmax3(&b3, &b4, &b5); + + output[ __mul24(i, j_dim) +j ] = a4 ; //2 outputs + output[ __mul24(i, j_dim) +j+1 ] = b4 ; +} + +//grid dimensions to be set in main.cu file + dimGrid = dim3( (W/dimBlock.x)/2, H/dimBlock.y, 1 ) ; diff --git a/BookGPU/Chapters/chapter3/code/kernMedian2pix5.cu b/BookGPU/Chapters/chapter3/code/kernMedian2pix5.cu new file mode 100644 index 0000000..b01619e --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/kernMedian2pix5.cu @@ -0,0 +1,66 @@ +__global__ void kernel_median5_2pix( short *output, + int i_dim, int j_dim) +{ + int j= __mul24(__mul24(blockIdx.x,blockDim.x) + threadIdx.x,2); + int i= __mul24(blockIdx.y,blockDim.y) + threadIdx.y; + int a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13;//left window + int b6,b7,b8,b9,b10,b11,b12,b13 ; //right window + //first 14 common pixels + a0 = tex2D(tex_img_ins, j-1, i-2) ; // first line + a1 = tex2D(tex_img_ins, j , i-2) ; + a2 = tex2D(tex_img_ins, j+1, i-2) ; + a3 = tex2D(tex_img_ins, j+2, i-2) ; + a4 = tex2D(tex_img_ins, j-1, i-1) ; //seconde line + a5 = tex2D(tex_img_ins, j , i-1) ; + a6 = tex2D(tex_img_ins, j+1, i-1) ; + a7 = tex2D(tex_img_ins, j+2, i-1) ; + a8 = tex2D(tex_img_ins, j-1, i) ; // third line + a9 = tex2D(tex_img_ins, j , i) ; + a10 = tex2D(tex_img_ins, j+1, i) ; + a11 = tex2D(tex_img_ins, j+2, i) ; // first 2 of fourth line + a12 = tex2D(tex_img_ins, j-1, i+1) ; + a13 = tex2D(tex_img_ins, j , i+1) ; + + //common selection + minmax14(&a0,&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13); + a13 = tex2D(tex_img_ins, j+1, i+1); + minmax13(&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13); + a13 = tex2D(tex_img_ins, j+2, i+1); + minmax12(&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13); + a13 = tex2D(tex_img_ins, j-1, i+2); + minmax11(&a3,&a4,&a5,&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13); + a13 = tex2D(tex_img_ins, j , i+2); + minmax10(&a4,&a5,&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13); + a13 = tex2D(tex_img_ins, j+1, i+2); + minmax9(&a5,&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13); + a13 = tex2D(tex_img_ins, j+2, i+2); + minmax8(&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13); + + // separation + b6=a6; b7=a7; b8=a8; b9=a9; b10=a10; b11=a11; b12=a12; b13=a13; + + // separate selections: 5 remaining pixels in both windows + a13 = tex2D(tex_img_ins, j-2, i-2); + b13 = tex2D(tex_img_ins, j+3, i-2); + minmax7(&a7,&a8,&a9,&a10,&a11,&a12,&a13); + minmax7(&b7,&b8,&b9,&b10,&b11,&b12,&b13); + a13 = tex2D(tex_img_ins, j-2, i-1); + b13 = tex2D(tex_img_ins, j+3, i-1); + minmax6(&a8,&a9,&a10,&a11,&a12,&a13); + minmax6(&b8,&b9,&b10,&b11,&b12,&b13); + a13 = tex2D(tex_img_ins, j-2, i ); + b13 = tex2D(tex_img_ins, j+3, i ); + minmax5(&a9,&a10,&a11,&a12,&a13); + minmax5(&b9,&b10,&b11,&b12,&b13); + a13 = tex2D(tex_img_ins, j-2, i+1); + b13 = tex2D(tex_img_ins, j+3, i+1); + minmax4(&a10,&a11,&a12,&a13); + minmax4(&b10,&b11,&b12,&b13); + a13 = tex2D(tex_img_ins, j-2, i+2); + b13 = tex2D(tex_img_ins, j+3, i+2); + minmax3(&a11,&a12,&a13); + minmax3(&b11,&b12,&b13); + + output[ __mul24(i, j_dim) +j ] = a12 ; //middle values + output[ __mul24(i, j_dim) +j+1 ] = b12 ; +} diff --git a/BookGPU/Chapters/chapter3/code/kernMedianForget1pix3.cu b/BookGPU/Chapters/chapter3/code/kernMedianForget1pix3.cu new file mode 100644 index 0000000..a34d784 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/kernMedianForget1pix3.cu @@ -0,0 +1,38 @@ +__device__ inline void s(int* a, int* b) +{ + int tmp ; + if (*a > *b) { tmp = *b; *b = *a; *a = tmp;} +} + +#define min3(a, b, c) s(a, b); s(a, c); +#define max3(a, b, c) s(b, c); s(a, c); +#define minmax3(a, b, c) max3(a, b, c); s(a, b); +#define minmax4(a, b, c, d) s(a, b); s(c, d); s(a, c); s(b, d); +#define minmax5(a, b, c, d, e) s(a, b); s(c, d); min3(a, c, e); max3(b, d, e); +#define minmax6(a, b, c, d, e, f) s(a,d); s(b, e); s(c, f); min3(a, b, c); max3(d, e, f); + +__global__ void kernel_medianForget1pix3( short *output, + int i_dim, int j_dim) +{ + int j = __mul24(blockIdx.x,blockDim.x) + threadIdx.x ; + int i = __mul24(blockIdx.y,blockDim.y) + threadIdx.y ; + int a0, a1, a2, a3, a4, a5 ; + + a0 = tex2D(tex_img_ins, j-1, i-1) ; // first 6 values + a1 = tex2D(tex_img_ins, j, i-1) ; + a2 = tex2D(tex_img_ins, j+1, i-1) ; + a3 = tex2D(tex_img_ins, j-1, i) ; + a4 = tex2D(tex_img_ins, j, i) ; + a5 = tex2D(tex_img_ins, j+1, i) ; + + minmax6(&a0, &a1, &a2, &a3, &a4, &a5);//min->a0 max->a5 + a5 = tex2D(tex_img_in, j-1, i+1) ; //next value in a5 + minmax5(&a1, &a2, &a3, &a4, &a5) ; //min->a1 max->a5 + a5 = tex2D(tex_img_ins, j, i+1) ; //next value in a5 + minmax4(&a2, &a3, &a4, &a5) ; //min->a1 max->a5 + a5 = tex2D(tex_img_ins, j+1, i+1) ; //next value in a5 + minmax3(&a3, &a4, &a5) ; //min->a1 max->a5 + + output[ __mul24(i, j_dim) +j ] = a4 ; //middle value + +} diff --git a/BookGPU/Chapters/chapter3/code/kernMedianForgetGeneric.cu b/BookGPU/Chapters/chapter3/code/kernMedianForgetGeneric.cu new file mode 100644 index 0000000..3bb8ad6 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/kernMedianForgetGeneric.cu @@ -0,0 +1,31 @@ +__global__ void kernel_medianForgetR( short *output, int i_dim, int j_dim, int r) +{ + // coordonnees absolues du point + int j = __mul24(blockIdx.x,blockDim.x) + threadIdx.x ; + int i = __mul24(blockIdx.y,blockDim.y) + threadIdx.y ; + short ic, jc ; + short Nreg = ((2*r+1)*(2*r+1))/2 + 2 ; + + // remplissage du vecteur de tri minmax + short vect[8066] ; + int Freg=Nreg ; + for (ic=0; ic<2*r+1; ic++) + { + for (jc=0; jc<2*r+1; jc++) + { + if ( ic*(2*r+1)+jc < Nreg ) + { + vect[ ic*(2*r+1)+jc ] = tex2D(tex_img_ins, j-r+jc, i-r+ic) ; + } else + { + minmaxN(vect, Freg--) ; + vect[ Nreg-1 ] = tex2D(tex_img_ins, j-r+jc, i-r+ic) ; + } + } + } + minmax3(&vect[Nreg-3], &vect[Nreg-2], &vect[Nreg-1]) + + //medRoi[ (threadIdx.y+ic)*(bdimX+L-1)+ (tidX+jc) ] + + output[ __mul24(i, j_dim) +j ] = vect[ Nreg-2 ]; +} diff --git a/BookGPU/Chapters/chapter3/code/kernMedianRegTri9.cu b/BookGPU/Chapters/chapter3/code/kernMedianRegTri9.cu new file mode 100644 index 0000000..363b181 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/kernMedianRegTri9.cu @@ -0,0 +1,21 @@ +__global__ void kernel_Median3RegTri9( short *output, + int i_dim, int j_dim) +{ + int j = __mul24(blockIdx.x,blockDim.x) + threadIdx.x ; + int i = __mul24(blockIdx.y,blockDim.y) + threadIdx.y ; + int a0, a1, a2, a3, a4, a5, a6, a7, a8 ; // 1 register per pixel + + a0 = tex2D(tex_img_ins, j-1, i-1) ; // fetching values + a1 = tex2D(tex_img_ins, j , i-1) ; + a2 = tex2D(tex_img_ins, j+1, i-1) ; + a3 = tex2D(tex_img_ins, j-1, i) ; + a4 = tex2D(tex_img_ins, j , i) ; + a5 = tex2D(tex_img_ins, j+1, i) ; + a6 = tex2D(tex_img_ins, j-1, i+1) ; + a7 = tex2D(tex_img_ins, j , i+1) ; + a8 = tex2D(tex_img_ins, j+1, i+1) ; + + bubReg9(&a0,&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8); // bubble sort + + output[ __mul24(i, j_dim) +j ] = a4 ; // median at the middle + } diff --git a/BookGPU/Chapters/chapter3/code/kernMedianSeparable.cu b/BookGPU/Chapters/chapter3/code/kernMedianSeparable.cu new file mode 100644 index 0000000..5c79c82 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/kernMedianSeparable.cu @@ -0,0 +1,74 @@ +__global__ void kernel_medianV_sh( short *output, int i_dim, int j_dim, int r) +{ + + int idc, val, min, max, inf, egal, sup, mxinf, minsup, estim ; + + //coordinates in the block + int ib = threadIdx.y ; + int jb = threadIdx.x ; + int idx_h = __mul24(ib+r,blockDim.x) + jb ; // index pixel deans shmem (bloc+halo) + int offset = __mul24(blockDim.x,r) ; + + // coordonnees absolues du point + int j = __mul24(blockIdx.x,blockDim.x) + jb ; + int i = __mul24(blockIdx.y,blockDim.y) + ib ; + + extern __shared__ int buff[] ; + /*********************************************************************************** + * CHARGEMENT DATA EN SHARED MEM + ***********************************************************************************/ + buff[ idx_h ] = tex2D(tex_img_ins, j, i) ; + + if (ib < r) + { + buff[ idx_h - offset ] = tex2D(tex_img_ins, j, i-r) ; + } else + if (ib >= (blockDim.y-r)) + { + buff[ idx_h + offset ] = tex2D(tex_img_ins, j, i+r) ; + } + + __syncthreads() ; + /********************************************************************************************** + * TRI VERTICAL par algo TORBEN MOGENSEN + * (a little bit slow but saves memory => faster !) + **********************************************************************************************/ + min = max = buff[ ib*blockDim.x +jb] ; + + for (idc= 0 ; idc< 2*r+1 ; idc++ ) + { + val = buff[ __mul24(ib+idc, blockDim.x) +jb ] ; + if ( val < min ) min = val ; + if ( val > max ) max = val ; + } + + while (1) + { + estim = (min+max)/2 ; + inf = sup = egal = 0 ; + mxinf = min ; + minsup= max ; + for (idc =0; idc< 2*r+1 ; idc++) + { + val = buff[ __mul24(ib+idc, blockDim.x) +jb ] ; + if( val < estim ) + { + inf++; + if( val > mxinf) mxinf = val ; + } else if (val > estim) + { + sup++; + if( val < minsup) minsup = val ; + } else egal++ ; + } + if ( (inf <= (r+1))&&(sup <=(r+1)) ) break ; + else if (inf>sup) max = mxinf ; + else min = minsup ; + } + + if ( inf >= r+1 ) val = mxinf ; + else if (inf+egal >= r+1) val = estim ; + else val = minsup ; + + output[ __mul24(j, i_dim) +i ] = val ; +} diff --git a/BookGPU/Chapters/chapter3/code/kernSkel.cu b/BookGPU/Chapters/chapter3/code/kernSkel.cu new file mode 100644 index 0000000..bacc10a --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/kernSkel.cu @@ -0,0 +1,12 @@ +texture tex_img_in ; + +__global__ void kernel_ident( short *output, int w) +{ + int j = __mul24(blockIdx.x,blockDim.x) + threadIdx.x ; + int i = __mul24( blockIdx.y, blockDim.y) + threadIdx.y ; + + output[ __mul24(i, w) + j ] = tex2D(tex_img_in, j, i) ; + +} + + diff --git a/BookGPU/Chapters/chapter3/code/mainSkel.cu b/BookGPU/Chapters/chapter3/code/mainSkel.cu new file mode 100644 index 0000000..fc691e4 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/mainSkel.cu @@ -0,0 +1,43 @@ +#include +#include +#include "fast_kernels.cu" + +int main(int argc, char **argv){ + cudaSetDevice( 0 ); // select first GPU + char filename[80] = "image.pgm" ; + short *h_in, *h_out, *d_out ; + int size, bsx=16, bsy=16 ; + dim3 dimBlock, dimGrid ; + cudaChannelFormatDesc channelD=cudaCreateChannelDesc(); + cudaArray * array_img_in ; + /*....................... load image and cast...........*/ + unsigned int * h_img = NULL ; + unsigned int *h_outui, H, L ; + cutilCheckError( cutLoadPGMi(filename, &h_img, &L, &H)); + size = H * L * sizeof( short ); + h_in = new short[H*L] ; + for (int k=0; k>>(d_out, W, H) ; + + cutilSafeCall( cudaMemcpy(h_out , d_out, size, cudaMemcpyDeviceToHost) ) ; + /*...............cast and save output image (optional) */ + h_outui = new unsigned int[H*L] ; + for (int k=0; k ((2*r+1)*(2*r+1))>>1 ) break ; + } + output[ __mul24(i, j_dim) +j ] = ic ; +} diff --git a/BookGPU/Chapters/chapter3/code/medianGeneric.cu.aux b/BookGPU/Chapters/chapter3/code/medianGeneric.cu.aux new file mode 100644 index 0000000..03ee019 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/medianGeneric.cu.aux @@ -0,0 +1,32 @@ +\relax +\@setckpt{code/medianGeneric.cu}{ +\setcounter{page}{4} +\setcounter{equation}{0} +\setcounter{enumi}{0} +\setcounter{enumii}{0} +\setcounter{enumiii}{0} +\setcounter{enumiv}{0} +\setcounter{footnote}{0} +\setcounter{mpfootnote}{0} +\setcounter{part}{0} +\setcounter{chapter}{1} +\setcounter{section}{2} +\setcounter{subsection}{1} +\setcounter{subsubsection}{0} +\setcounter{paragraph}{0} +\setcounter{subparagraph}{0} +\setcounter{figure}{2} +\setcounter{table}{0} +\setcounter{parentequation}{0} +\setcounter{subfigure}{0} +\setcounter{lofdepth}{1} +\setcounter{subtable}{0} +\setcounter{lotdepth}{1} +\setcounter{AlgoLine}{7} +\setcounter{algocfline}{1} +\setcounter{algocfproc}{1} +\setcounter{algocf}{1} +\setcounter{lstnumber}{1} +\setcounter{ContinuedFloat}{0} +\setcounter{lstlisting}{0} +} diff --git a/BookGPU/Chapters/chapter3/code/memSkel.cu b/BookGPU/Chapters/chapter3/code/memSkel.cu new file mode 100644 index 0000000..bd7ae06 --- /dev/null +++ b/BookGPU/Chapters/chapter3/code/memSkel.cu @@ -0,0 +1,64 @@ +// C libraries +#include +#include + +// NVidia libraries +#include +#include + +// our kernels +#include "fast_kernels.cu" + +int main(int argc, char **argv){ + // raw way of selecting GPU + cudaSetDevice( 0 ); + + unsigned int timer ; + + // CPU memory allocation + short *h_in, *h_out ; + int *h_img, H, L, size ; + + // allocation mem GPU + short * d_out ; + + dim3 dimBlock, dimGrid ; + int bsx=16, bsy=16 ; + + cudaChannelFormatDesc channelDescS = cudaCreateChannelDesc(); + cudaArray * array_img_in ; + + // chargt image + cutilCheckError( cutLoadPGMi("image.pgm", &h_data, &L, &H)); + size = H * L * sizeof( short ); + + /* transfert en zone short ;) */ + h_in = new short[H*L] ; + for (int k=0; k>>(d_outs, H, L) ; + + + return 0; +} + diff --git a/BookGPU/Chapters/chapter3/img/debitPlot1.png b/BookGPU/Chapters/chapter3/img/debitPlot1.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3d036ae27384601c213e157110e845efe5b7dc GIT binary patch literal 2573710 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�t?vZkBMH>oTg2iW<(M4 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 X*tGJ?3m*Bi>}l=0wtK8i|1tj$?YDTI literal 0 HcmV?d00001 diff --git a/BookGPU/Chapters/chapter3/img/debitPlot2.png b/BookGPU/Chapters/chapter3/img/debitPlot2.png new file mode 100644 index 0000000000000000000000000000000000000000..7121b54491c7daf616a688165bb9e91855bb2c60 GIT binary patch literal 1937441 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%0AAm(MZ9JlgnJC zcF!`oP8U_!-46G*3D`XBAH*}RvE7y0J^!D9^@$%lHY86&_)IDB>Y^i z_Lm&ZUKvL#1GFdp*=7s61KR`ztPg)yZlJy=k2-X`f!bi&OK#eh9Nlge>Y(2R<|lZ# z4a|dr<}a~^+%PQ-4t*?7W33*s{vxO-ERPHRZ5WRB z9`Sn@pq?tgyeuatVKe;luZrq;mdk@lp}%vG&wq7HFX5n$-MauavjxoSjZb~YXD3_m zY}A718@c(oSu{_B>B<&Nui=PJJ1RjP+XVA%akCqOnwZ{g@T|Z;ti)K`2=mNnazt^fc4 literal 0 HcmV?d00001 diff --git a/BookGPU/Chapters/chapter3/img/median3_overlap.png b/BookGPU/Chapters/chapter3/img/median3_overlap.png new file mode 100644 index 0000000000000000000000000000000000000000..0957bd3f5b1e67f99dcf64f54baafe52ef00b950 GIT binary patch literal 25589 zcmdSBbySt>*DkzhQE8=1Bt)dUK|vZ+L^@;%h)7E}A|WLpT@uEY5Ttu4un;K$1*99K zOG4_*$Nf8JocE0PpYQwQ8|QNj#@@nu?&rSeJ?AyAdCiFtx3pDA&eESnp-?1hs!DfI zC|qLr(l|p1-?85!$cF#myIxnjdj|gao_P=se+q`E>oL=+V}G}%<*MV=0mrIJzwdJIj~zx#N7gDM?d%54 z26l}raw#s>JH_2mn9Fq`A-_a<{S3}^+!{asfQ(du5aCNy@xI+^<2`L?W&xY-&Uzcx z)V+*t$!v6CML4@>KA_^gcA4S!QGF!%;RNBB!8; zv$&%M|DiCyO3cQ_Hm$*-sHCLiYde{1(rr5_9G#?Bdj`J0+ObHk3ZL4{8zcGOKK2iL zIQ-#H#7BPgI*%b=4V%I^DbK(wcfZIFqs&Y}VJk0HtC;p6>K6f{WBGn~h5M^W8F;yW zdEMXl{MQBISz+zQyOgklmSpu{SbG1z+uZ+O9;(R@8N`93kR;;QWE7Yp))v1@IqOpV z+wflR8n=>C{@6e4s@Jh8IT-na(ej3dvhZ-#Lk%}3h2UmdS6L^r7r5tfs8OkM1rBy? z25>py>cK4xI7iJ^1Kb4u{iKGlw&1G6iwECvvMUFe-I>5{!&&OVB7=`6#q3s>i=QIv zeOn`p@F4fRxJb%K5TnFjP*kyAd!7@nw8y~C)CTbYRNorm-wXV2?SJMHS~E*29r{gOH#-{}Q!HuFd2Y0(xrO*Q-r9#`8zLKacB?Ag z!4cuAVL9>Sme`agBLD9XO9{q5^PCST8CWXshSk`v5?`{8YDYZ}tj907i`z4EF;sM5 z_|NWF*x}S$LHJ>jESb!YmaC?LJyTj0zC*OzJ=hfDRZ49orRzGzl-Ijyg>i?@rLeE< z@{JEXJFOf@DpwPrpdgk_3?aqPZc_`?5qK04n0?|o&y#1&2^K=FIxJo>^8Pb_*Ftc^ z=hYBx*=Jf;^l~dDMV!F7)+Btirnp7eG9ykB@s4e4n>69k`TfL-T?HPw;_&bg)k%$D zK~94Gs~hi@uVsEGtRJIjsv5|0VY&&X*P&Iv&UtH2D$I%0AVQzktYTn5s{1kZoD^FSQ;e%g5+qLlND zIHWbv@#UqSR4?s6OXFU-R*S0}nCB^oMqdnOyTo74g%j*NqHZH7imEQJ-X zBOLA`!ThT})X0vEqgJqj>8UE0fbYK3d{1`I%1_?Z${hRIg@x^%ex2x_2}>3=*@X+Kli z#*E%w`8gVJdR#oiKKEAsnA>i!xM9WnDzQuJpPgULM+e)6)lQdggr0Y1TA-Bm*~Ne5 zv$uAhS!T#NZB~hG{4VEHLJ~Gv*)iv|`HqflZLYo|~h;JKLSa@x|GqpLG;9QEB zy-{;mYIyh)#;e5f<&J*K#-lDBybr9bYGMG6>{ZQAXFrCLGJVA(lTom?=0u&NzIIEI zoZ=ULIftUJ+xmE>*Y3bmPx?z?_%`+ z`}glHXRy(lSu&|Q0e||7wo)bz$M=dCPpG)GA549I2F4e^n^&U@ZUry>mim2Q;G_TX zpZxW~59adJ*9 z);(EWpP!vemGi58qe4v)cP}rV{JKqd#(gk}@A0zv!ho?O$&b_}B_(#5yOh_jNK2=y zu=ssC@?)t);+7&l9H`Ij-7hWVK%}Z!)GfBIj58T??0@tso zs6a8wc)s8>t(DO3_hkt<5=6b#$tE51G1Jw>!{poulknQgpAqSzncq9w`PE zW#rdyVi~><4hnm$nGD{J{}^!UPs$|KQgXkUR_t-gvV>Yh!$Q@VI|G(>&^c}OTh5J@ ziKc7_X92kULFf1_xXRnc#vQy>qt_oj^7L0`mUIajtMlk@3JAc)Fd_IdP;9E9r9~n> z;Vb;>*RSFk5o2d(!S$w7IlseQtE2r*1UH_N$xSZy=Aja`iUu!LvCEw7&md7^|8nuG z%v;Fa^;nHtK< z1j_?O=YH__B=YEQE#}3#tT*g!VerVRVFl$#YUk+|;(H&=w6wKjmL<9>t-I)%{rB%D z@fu@qkjc)%B1wFvUrW(#UwV4TR%m48kx=I`KR6pn%{$F7u^$SiIq3Fiyy5RJhq-09 znxnJ~?CSqHx6ywu$eFFN;9&NsNOqm=1uTGn8g#X`Drq{SS zPPT^coL?wI2E=9mVdT@aOb+NqDKk9wzmu-*c#9}CyY+>_q9XhCw-+FonHD&3_R9t5 zm$4~3yPh9;jVm{X(6JS5x)G2Ljou5+pHr~To6|9}8(Ci7jZ_dU8KvF!7#RLxzsb(Q z!EvEhE_Xn1n}N z_5bXz*Kd>d$nG&hig;aFnN(gb;?Q)w%j0JNbcK}vhg;yg)6YD_s6m`2eE)}02cjG9 zAIU0hdYIkUM%&Xw?XFzAR=-%8?ob<%k&(d@#RJyaBzVnUkIP8p-NxI2#~fuAzg3of zd~M4991Wl5?i5%>>b1g4d^`Ih!TGB4SLEz@kbFj+nn~;rF7%NOd@%3%)&DlV;UtX3 z{|sil!Kb~a$Fab`KKBha{piV$_j>tn2&daB4Bc0Ta1<0370V{J4a=;1AwyM0aj>bK z?Q_h0YdaI~bhug-wnS63?=v02HB{wj-nVC5<-i2)XZKXep1)9K_Aw;XXa;dHyRo;~ z{ze>%>=waJXV_5#!yZ9o!&{Q&1wfng4{&uUbF&-@h?s>QoI$t6*cXJ+fMuP6D_4)j zG3atduikqhF+9Ay(NR%RAytFlzdM~AdG+=8tLZoj}k<}Y(-XQ z$5GeZT*u1l_0tDz@lgtiV2L=vdAC=3TteYWY@^O?OhpGTC|R>lj}~gy8xJYRPdbHr zHuh&?%X|;EI0w(=*0?U*xqbW7d%c3|dQSI>P1^Hf<-S6ew`KO64AOAmzjkd_H~Y`a zzstW`bwD|Ghujmj9~LRDU3x#@|My;b!#SqBUge6i+^VC83yG(x2LC9+Klx@9o1B=~ z3dqrCM8*YoX^UUXu2eC6o78o_^AZnFK?O6g!TkO+kJLQR?Y|Rce)uVvplDM7{5w;d zRU^1!0Jo{JudQb3eF2i}dDtnzSiZQ1l)1&8$<0h2ql)a5v&mN=8cc$Y@hb+_aKy~p z(TneZ6vriO(_d2xB~U# z8_Xf0S51t+7nY6$N+A`*M|@k2Wlq3hRHD{neViINyOLD2LgplQkngLr4|k(fx97X; z>O?-L3fpAJ1(=$SDG&B!%TGLb16e;*-qc3t9;5@*#fum7U%!?FkYDJ|#N#`zqKtDA zRN#Iw_|U7eVz=mXMh7tXqsO}0 zAcavUE!EH|mDc8)^Owqh_V@LDX>YHYt*ot;`r6UKZ+i?e)ITP23+OU)OzU+_uV;Mbu^X3&r~a{wSN(-aH~%?;X`@e=jddcp)UI zFvX{Y6)G+FbPWtt0ss5oXd%!Hud1{kxd|A&&fl}N^yuu_vwTKkPZnsgz#NzuRflCLr zcoZ@^YJ%j{F^`G4%{G>WH|Y-3k>*FakXXDB94WbvhbetCa86k*{LjUWu{ZZHV;OuB3OGK zYQH}3>$>3oVL{?lV-8WbkrKpKIftA0Ht}2AEFmlP#hb~`Azc{`sedk0cs)U)$Px)r zLn)SXm3UzI>|_nLLs(e2=J$Xx)8EjnW*Znb8!+l$q)d^d^fmd|fpFm`zxrC0sS)_+ zxob?BYew{Zn&u$}@~GekxFdmS>#6DNRj2aJ2`S>L`5swZPOrG=FfdL zp?m~EVuF;)ze?b5$U-FlH*m=RR}u+AJoQ=cn49W~>|>tx$>;6cpsW zc@vta61%k^e|iu<(g7f1Sn0Z;EeG6eH+(Sv_;3&JmWhcbJ7w1T?b6ec#Kgp$!?8QY z#^)5&)QI7g;CbdNvLD{RKMTZFPw(QPUBYR5bVcQAe>o0Xlj8+c)FDp=v2G#M=QevD zCRB<0n=1YhKfCP1*N0nHSiwL!Mmx_-Y@>VU&d1`qHK{?#c$bYy#TX`O>?_5mi-RAs zAy9sn+fpI%y`-D%l6F~MJ{w|7%p_aHmNJ1;OTGF8z-51bep3pTgvVELUzDOt`*cWTu`n){t!;QI#Lx| zHQ}Gmt^4LhT-+2C$QNm7To=DxLJC}<#HMX(Ux7HjD=0t@m)ioO*8pm?#j?BwFa?+v z{Ff>t)LLCb1E*WG!YoDO`fY1#>v7<%%o!h8x;DP+>XZUhQ1hF0Zq0Qd3j+2=fCEFJ zY#Xz)vlCgoFh4Jr`fFpV*`Dd2E-M?Gx|nZlW3_H*D0q{v@$>OD=CdQUWDp)vrG9zH z*>mS`Jol%v%v82zH(xOLIGGv$+b<0c8h z?=#nZ!;X%81N#7pdPv2g>ax}UFPh^2ry=vi62SQT_wUs)m)LM#$FufD{P_O;)~#C# zrly(8SJ)^OU~8Evf}wD&yQ?E%6$5UJ6vVWN_;K3TDhYDlzkePajN4|b#QqS}NU2gV zYiLupq-!Wh31R>9yMpLWfXQ%%`$5p+te7Aa&PM5jIMZzppV@ zLjfbr&&|!v>N()gsr(Ary2q|c0AzJ52~?&yJ{${O7^~=U}TdV)s{m+ zDc^koh+kJg{?ZjKNsl!~0s?}ZvDa*Dyva*afvQ8V-rmF(&Ls$lN>BdMxFcWG`OStOHRp64xnF=pf%u# zMBNa;zKD;%Zf!lUY^ACs1vPmb&&&9Dm-dek6|P77&P2BHR6N9x?JYV}1Wnw2=z;&^ zI6-lh+^fWn0y`Ti&g5DY%|V(YIm%bU(t>6~C*$eV{JXwh2KDvpR}oUh`~+P!a$5rb z!=>e=rJ-6kyH{KsLRf*vLnV>!(k<%OO--4AMHJ^osG`8i<+x3zq?1h7t3jJk&{6*` z;p6QsB`GNx=q?%l#2w6B1g1o-lYj0?7Y}=MCl^8x=N6Dy;IfQwDJb-jJ$;%ZC6V#j zy=Gkbn7AunsivleL`C?aU9jrHYjm2DQP2b^hUf7J&$IILlcCQ8n!QX;7GK#W6GEQ{ zP{_~E5Bc~}2vWbt&!2S4`7>~Jwgg}{P%@rBKU-L_1I6t9wV;w;kh!2<0_orq#X8eO3+`w8-@l*JVW7```SR11mB$Koj7m~GVCj2c`p;kD zE;EpFF#?34-fCw~fB#1}roY0Za0U2E==MU7wDx7T)vl1uok|oo<#L>A{wYu#Qx!FJ zU|C$+8LxoXku(K1PeY0A#FWz-B}kH7X;IWLTZ(>qAzF}EZb9*}(B#)2yrqbb7j!Lu8PZuAF?s!7njVuGC{0>)1<;%y62IR z{8AYL;^N7pqoX0qP#N4dG*nw3Zy0g&Re+Y$Xm$T{2=(z64}@J|VN?Vam((Fj z)@Ak#fGwA(Xd*Ecr%1t-?>~NQej;Ldk(t@0r*G=kz6#fuyz(59z%5p}mpz%%ZEz0L zHga43f78rjV`bH7TxVxz-02qo>9mx}9W&1<0yDqgdWZx75sMrTkqN=g_Qria^fT(n z9k92>Fxgeh+4iwJG#<={EISUB1OXEiMpW6()P80P97n2SL_56=1z5J6Uy7WccVF!0 z=X3m^{$OFzOus;8dH)QqEYINKVWUtomhKcmG@nm4_z&=+W=PO~1=_=u(?1_hy?Z~t z)<`CtX4v5QQ2!aWf3RECqy^S7ZL_V^N*CJ%>DRSiOZ=d5L2ku|a|kv5^)}lYSU5^6>j5X+h7ja^?Mx}ryKPqX6KnQAAaBUS zB5nXQQuurjU6N7sqR+uKw%6*`E8nr>E5h564=F1v!}3Lj9G5snMSply8QI&fa&$md z#2jwwRLUzy#i@Db2j?t=3+8a|?8tf&U=X~h6;!bs&f!j)k8?}w>+3=GIyg8eZ4#3l zQpKZD9=^3g(+1ZIjQYihfIjQ46e*(w`BG2{TRbDgg_sDG2;h6f80q!;840b9XeQ|- z5FQIFU@KjK`L?b>%e!G86?GKfZIHTVyQ&P6f zr?7}L6rc2nK4%TDis>&OeaWqh0ug`(1W)ITn@YoJ$cKQhm^W8#2#{GY%KIZFiGdvh z>B7ah80gI9XSNUuFw1yu#B)b9gA|^*In#zWHSWg7)|Ce-P8%D`q61qXUn?Rm#fd@! z3ph*+q#R>tquFx7VwxEe6oH^1?srSk5&|)Elwi4$5<5U1*MZ=w3Oogc6tJES=d`3q z5{uC~4}P1TEH`9#&yn3hg^1pm{G?FrA*q=nkaK@63>K@7xy)v-glw<1lJmmFi?>Zo zR>0H`tgVIIR}2(fIm4ek04uLP2C#czV}rK=jv=Mp?^0??YGq}0ftp$hkjY*VSwNXB zF7z@!lGM7h9k(=#f<&DrF`@l`9-;D7+w$XCr!inO0qiYZ-RAC0Y4GXNp#eli)Ya3Q zlZXy47Xu}jsMc*63y2crL}rm8;migFF$DUv+LiEddHAu4B_6GYhQZNA^mGB{ATMbCc5-&l)sCJ$~bdQoOJ?FlBH6=ERM|O5z zr^kDyZ6JN;!s!eiqh>&7`uW$XcoP7Z-rdeat-6r^Qbk^|3{m9wX9wrAY@lFe#}vRf zqqKXcGd+bZ3D_5hoB`uGiNS$8VuFK#h7S6Z_}`~l;b~lp&mqK6s9F?}tR64|x*Jmg ze9RzLBZNpnsp{z1Ku-Ymc%m^As_nK2BkQf%c9MRru-~HLUkH#FP>jsoGBj*2HmyS} z2Z(_XRunu;ssKtAtM}eo7obs4j9_4|Q9*)SL`VksOkfLXm<%8}OtKtykBT;n1Z>I3XI`L=$pUE)o30x3t&KasoM(VJz!ks&JQoy<>X^*x1#>R2y z+@y%a5JVAh7+XU2{}R@~Xl6=X{F{JtGKF(MRfCq%hhzX+B<=A61Edsy+zn+OV;~?* zo2?Na2M0kQgn%n#Ct!N{9Egpshy`wr*0{zbl$)?qUJ@0(_-z0`t^_Wg_!W}U($klv zuostqmT{q=5tIF{s0ay-cw}`2Y)WW*A|~B}J8Eld3nd}RI^FRAVbWzN*^xyc1;slU)yaQ(x$!f7&aMub<`ZRsv_;+|LBGp16y4g{1PQwxRi#$HKQ59~gX!J!%_ z5ah(A79F-r;9!)LhkNS_AhHyr%fD!ekKtpW`WtHWt3x2ntKSR}gj$S4uxh#F>c5!uOAjA!A{q&RwbWZ3n03}CNgZ}rWyW2gZ&=xo% z#A94?avS(7&btpE7J&4;0^R}%Mnn5DaMXt%KaTF50JzC>6ESXWT4 zyniqK*vJZNg$fg?Bg`GylBJvTS{R5$T3rGjAM)?g~_KVNi^S*$>Z(v^DIFcQpDP(icy7O!$q$ z7x7@ge5#G-(PkTeof&x-bXy_&4-^@<0o%X;5~f1mM*i?;kBN$1-`7MQFED-$Fc7cF zAR_vtfYZZ?g`YOruYnq6$arn#9?Bf=^h1_@-;if!*_*2jC>i{tKtCZNVFpUpBDgh> zxl^nG2kDAx0<^L@Hat4NPL=5y}l;d7hgUp8V zgjR}#=f*4W)v_nQ?gVO_4GzaofN)hEbsw<@&c_r8AM1u}Lnr#^0!Z0zOgEI$)WDJ1 zArBkWdkUh!&2rzr|B3`XU~SwaBr4)K*xUW6oZQ^tK{KB&w+!l3aYyFV)YM{hxT-J^ z{}5H^s-+5|2~j&NdVoIr|KR-Ui z8_B2Irpo_WyexOnu7gV+p|sx{>)+xwXgWAusDIVpXdbET9eno2JZer)4srH3V*@%N zj!l(z5+54PV=Emex|17sI55)D<>B~|mF(dyfU>4b;AK&oTPSHA|e5EN)QEB{m zBpynMx+CB+z6TxVq@xjumUWCEkQi1uWWwE2jm$ZL!~!N*gJjSG*Duody**5Be-f_| zD6XhxG9x~~gY{^&vw|m)fOfiA(S2`Q@Fi$eKA*M`vj zg_Z8#9BCGC?8ZdOO-T;hkKRuVQDy%eEk6F`cyFQyzI4pYn8C%fo<2E&29-N74?@g# zkNi5&pKC_t;oraC?ar3(0V+N%6%!6^I+uujL1JXKp-`s>U|{N~*t<9Ka+B1)BV zdtVTqjHF=*NfeA}xI)vWEh2sp#CwO@Uz`X<3BC?2DQ+k!M8|JQSLSe~EQ(Q*@^1)P z6?W7fuGI-*k*eZbCZ+T|XkoY(5C=h-E$aEgNa2Z8jdkmd>HGl)9WdYE4BmuS0$>j% z71LXd$CH>K6Q9+JzedWI%PjcNNFRvk` z38QS>9k$Dnd5Pr4&J0PaZ>XCTgW!>A_xCrZOkBG}6*ii3CLnsC{)X1q!MCh)m+n1r zUmb3RDwXLi49FlK=B^Z-0;EMG&X|7ofdYMgsL-rg_n&dbF*w%8A!-0U=E`(DoL#sJ z;F($08}%u>+W~fm(VFX6 zT2KlJF%ZSvyu5B1SG=GLJ_q9?c;y|6Ef>Ks>^rL?$w-Djb0WUe8c72Mw<4rv9{u7c zOmCHe<$A1*(k(i(vN0vX3F0je4*|70pgRuUX$fW8sQ=+=;GS0fUq&@M1_(wnqwqu` zU-b~~ORbMYd{hA{_Ml1N!57ow<0+vD3Qum`(bYBl4=$hGQM$**6o;(N7N^=A5e`?` z4D5uFOC9={&cNyj&-mx4J%HgBTC{}U9}&m;O=yR+Wg@l2xod_WLjWS)7Zi9wOT?tj z_ReFw&+}dBk}k91U|9wUCsy4znmBOW{01;lxdO2A6k!|E$*xoj;9XZr0W{(g5}sCw zZEQ=kQ;xVG1?N_;3Jc&O#Gvpn_B%Q8Ww0rA?R=UY%rnrE9~~c;UUvm90cV23aSPHB{c~;T;lt1ca?PZ0 z%}{Pm)j?AT8e@!a)gD7(q?s;8f*hG$%;qz&*nbh~Z~6D-qCtrTj-jC;5;OkyFa|jY z^S|L`-3ntGLeA4l3c>=<%V}T_Jl~)(yH-6ziW$*2)7M{+xNTWx)8imfW@%8x2?e0T z&yUYyEmK_I232kwl?M@CnbG!Uo~p8rGyCzE3h}J{?AfDhOEzkbMEXIq*|!E z&_zE`H{;w96nb_uhVf?!-4T!iw~RNo5Xm5!Ad?au{7oxT+I`SeOO+3hn`HWjVwP8& zjVXwDYjaFX5bFzqo{)fhQgsRFnX@2Wou?NG2l)@-2%w=s3%Lgv&bpNP9a0uK&D*yr zKp3;Y1mf6lF~UR`41}-*f>ja{6MtNdW$@{-=}ZX{e51$g3Mm+fNjwZ?aq47^UXA@Z z1kDL<&~D6|{7K#xI`BdfY6YE76wu|`sZr7*$p5^+RGr7%2IJ!6``*WnCBY>CD@H+m zbRX1A5H75stqyvc5Hy+L^1#0;frXa9fEZGzfI1Fhjk=;D4pbaODG!RqQXe)5B!{TK za`UG`I=9;YNXvulue06uYu>K=S~ILz(BMB}|VXb1NsCET?g4Y4pqi zN6w(dZVlUg*o4Rz4mk0J>8o$nJ!LL)>c~9Z$B!TP5jn=&`_D!Bc~I9|4z?E#K9Tt= zJbJWzRBdE;u;$UEVQb3`N!AL~m!hreO@!pR_Q?w5BBPNd5JOD2m z54s%t8hrNd`K){hI9`SePikZKDg04+rXmb3WP4=dBnc?~R=bXWACOGn?evLRpbaux zUoMj*SU>v&)bZe;C!iakvTZ?bPZAOG(j#j7 z&;hc8-@WOpuk@+^*<0@cObVPNvoHY!1Em|>BXsLZ5cnOEy-{Yqo2{Yd18jY@kRFU~ zuQ+`{WUQ$$7Afrn0|y5_WV~roOY;Jj?B`GhacgVq5!lW><7Pe@(N~nk$DU9j<$19D z{o94#F3`}FL2hlcjR(Rk0Rcz6c%hHYUKtYjMMUOstS-?10J&N?hKfTB;{RqeJpq2x zH+D+t>}DX2lFrj1P?a&o0#x!Ce|$g;=FX50$buFNobkd)T8VA{n_JqhGT>!GLPAi8 z%)CxEb74}+Z$?tR6-;q;X2~*aH0BU_@x_Cm^#iJar0;cdumGNK1cq!LdJYp$gnt^S z|6-pQ`C;e@z-Ou3@;v~Oj;~)IrASY=(wOJJd4mNQX?0%*afjf4eOv$ni;#@@Jbpkx zK;bu#y|-b&Q9?VRUM+!B@WB^y1w2}1qjcClLk&_2IPQMx>*M4Sb$tX4Yt2+4f`4%` z(0O&Z0v?7kz0Vl|?YRH&NJwP?M>8y-@gR8tnl#*3t~h0IdcnXBJ508urKR1<8oR^( z4z6lgRa=`B<|y#$yCxO0N*0rh9c(4iEx*}B?m)@@zqlkK;Mm?MbzFpyw}FNjB>kkM zBrGIkl;>QcKJ;H)AkBgX24x%~4hlk164EqEYFp>O?i;x!H=wx^Q z&^IT6_Q#h*#F$)QEEeAl9H@st|1AY&-*vgD3U@s0@sM`fg$N~j(gl+;YZ9;)q|6ZL zSF1{=irP^(c>l(oBn#MoIwPV5D&w`QS1mzchU-}WOA`NPqQ5LCM)e_*`4d2U2qg|c zhVYb?pUo&mXhHiDN`Jg5M$Ay1$9ib9q^M1>Y6tS!Jg8OUp$`T4Gs$)BxxLm-WOv!bo8#}=#Bz`b61e_Q|c$Tj?fx?sFm!x5v zGBC7(aDBK{w_knFz)evl0PIjV0+rBar?gGUo(Aj8{mTPGkieC$1D*=F$V#4t69rml zJbG?!!k<$wrUi`orq00Lj9wyo?U|D`3VCD%5}L?? z^P1$g#E8fV)wdF~8Gwxxn$!TcbNWqFWuqn$KKobnW#<>en*p+?qo^1JI5LIEiwac^ zW7WsIBRJ~}4t{o?g2o9goxv~ z3^WBx2MAA^k)i|Y^BfrhR|q(t^#&E_j3EaFelvXwTIS6m%KVM{Y*1q$01K01p}GQL z&ZrsSd@#jCaOQ}DgH18#ujrb51E!BYG@aDK)dDm}YTt7EvttXTR|3ET%qQa@qn%GK zQ4ya7%eRG|r|T$_(t3382seIyZnS$c!HfIS246NpNQqa7i3wn#*-2S{(P& zX=tOxCtP4Kpq7!%H69P~g@Gt1_IPL#PU?i5RCR^H8~D^nl_RWJy0WqoN_DpZB!-+r zF*%o6Rctf^(PF+1n--)e;umzn*55#vW8F8V`d5#?;U#e&Oa-I567DN0aFL%t?x$o0 zRh2jrxKp$Oi>1V)?^mG3K?YfJ9|Rw>WLOP&i$fHi= zC)vME7#Yt=+___E%n>ASWS3mieVLM-J^|G0f#GOO%;JyJUqTwfg_x1Ay?FcOGuL=G zvwP)f7|?&DwAd&Gz#%^UE?dk#7cKZSlhZc1!kwjr(_3`$8Mfy`&{fup`#f!iO1MC9 z*sJ|XGCmzj9>>pIOQzxx8H8UFlGKW4w_D|&-0Lj}Kz|l-(aw)XoaSXkCGNi7&e8-e zy3cgJCMr>3<+0jc-TA)j&>d0=Q zLOLG{D;)7yZhkl^>bSsv) z*>E82DSbLZ^2b<=0o zQG(V0glZoLvQU=W8WRgbk*c?lNX)3Hq~G`2S!%$h6!UGHU>QtO;)J1@p~8T6a8LVp zxZ(4Cg7FKV#sYgJyW?N{e&ZBvuT{+xl0en)Oq@v=L&G#rPK*!dBoEIDoJ(B%@oL>= zpPx@t`@;LK-QIYrku;}R!8c(YGHk_QwGb63Y(=pt3>nBR?6PlY?kv$n3v%;qmtz8O zL_N9wsU38trg#f<Tf6c-tu75T%jujWf znM}Z@$RvBESr(1qK8`jc*+yZB6~`Z4?i)asnOjg0eWAFaa}$`SQ=Oo7bw7K%F$v@I z6H{Xuv#THXACt?&e`+XY0!~8*m!tdP_e}(_N8;n$spkUY#9qm_U{m-! z7hD%fk1$4uu`!o9T4}chHke*fF4`5zu1ds9P|E(&_uE-|V7D6cX29{;0uRAfppJoE zwtdHf`o@tso}HpG?B>cYiJyc(&tGTY*(AilJxUbh?6=CI_B{KpIooIr%0#?x>8wJm)AGkxf~isfh2&>W>~T`Mn((b{p;Ce zQU>6*5pTbUPpKGVpAN{WNdWMolLz8jErMF0X2vD z^k_~x^qL@6Q`Nnj1g+`5b1*MnrOALMgzpMrP5OsjeU*st$E~919HVUadd$(9H0Vw( zY)UIO#lNdIq2eBm=@a59f^{d=bBqLiCJVM~Hdi;CMV8MFdKtYqjeEG;ub>bAJN0{% zw4T9FYcn|kGZ?5Ed^mP?#oCYL zCQLRG^d631Y{;VX%kII^;i&GBsZZ7B30$Th6QecgUpx*!UfVD1L641=#4Mkd)Gp>~ zbnszBo#j^orlfkTK4Rq_@&q~*Z?mWR35=s|o;#{omeJogav*v%b271l9a%S}sam;| zeJIOV)lFw1TO#c6)7B!Z=U9$nPceXbpK3fQb;wl@PnTirt@#d~V5PR;I9~zUxx*dz zm|@J(XQ$F9kStGf5XG;YE$u!*EO>X^ehkm_Avh7BgyMpgG&^!7%1dWQJ4T8(%^)6s~{8l8)Ko2}>fr>62e) zk{8M92*#Z<=Y%AQT8@K#Fm74YvjH4wehJIh^!KH9mCf6B_sI-j>F+$9m|n#`Zy9qp z9Sv)bjX0zxJ0E>0?@6l~U00+s8rI*Tp#8)PznWlur%E_s*@8SLso#f62(}9T|VLll25AE4)KMZVmeB$Z=@u zUC*`ne`%}kc1y zTs^0wlAJhQmUzx_u&u4Up50*5JA33ZCUmF=-(uQ9<1S@iO-bTh`{GBh-eo;Z_08o| z-JMFdron;5iM{q}D-sSxmNmjO*##; zH|@5ID#r4Xk0(jW@f;$Hx9lf~erqpYls-GV?JVwh>Cb{rQALHEhade1iN@zuuZb;) z$4^dYF#MGDG3GZNb)t(WhBO9-{p2LYr|o~DR3qzb4R?C74YG+rH`2rCP(HAYaT^%c zl8ZI&dA9dNMqty0>_JfxcEs;C-chvRJQXIPH~loWVz>FGN5rwuQNe^=p3X#}bHV_UB+j|NJ z;T|#5()wkvw0)qF6}r5eGLpVu70G0sinC*XONYLCTpg0c=T+c|^d(z1P9ROYLt zwMG6#0WZpRzcs}#oT1OR4eQD3&yBzDAb!W;R@oQ`AVQB^*{u$w0u*hY|HKrm}`5;!nt|S}k z5%T;KL*C}I#UA~7MUx@RE&7Pl)oG0%DEgWQ{lVcOkrkEj3&HdPEb9z^dYDumebx1x z2o?%z`gCYTb9P|(7@HzLwK`&UKkA@%S<|`O*pAEGfx~WQxG)?9A2e^ZH0T0Wyj~J-~9^E9}_=OLq zWNPl&Q2#7~?sOZF)^nXSu!C&kA6sSqTLYVN%5W@pk-BFxG31&B5Vg&;ZJckAQsp+3 z(VY`G{XqntXx=}#r%_csr^%iwtf-8#fo|Ki83r_ItLbX2IPFJC(kYTO2H(`*mQ^ed z9p2ziH_efKk{0^h^Mc1SrejRp-ACxdocu;iy+n}s+<{KCpj}Z#+spuW_~GGk@7M)3 z5F>ukntf)VkVQHEnPJVo`NzhS7H`4`)PM4An*D6>Gz&bgu!4h_+2_o7*qEB#s(bxul|<%?3WJ@Ooj=&qp@7n==EVpPwI z2ysmFJPrhcZE_rv@v3jRqRrKe6>|U zZpSVTH}M*c{0*y*VG8%~@F)wnBNwH(!qdAFTEY}aCqIu;1u&Vq^U{zq94qDh4rsHQ z--DHUoI9SJ$yX)XVISv@yvE1qPkpzv`O+r}Cv~-Lg1c+*=QwsuxGz^4Xs>Hnlu+Y+=Y_;hXq$Xc5!( zzyNV*mH&0`a zNcXLGdis0k{1><$_9lfaZkc1}e#UxS=#JfZ6Hw_HX0n!RWlTxh((pkCM?R{NrgULM zBhNK>Ql5AF^f{lj)@Wx$?}$*1lSBA~cNKOG-N&r_Fu1V1_2pC!1LEGIz6DZAfO_|Wu@`eqFC zJ{O;yxzfrV(xV=H$u_6W1BPk-byS|;nkxs#r%AtM2Vcsok>b{Q#^qPa^VzTAHfB#& z6tX*b&s86q-KE?hY{xRMM-peP-{i}%%iVMcJKTslV|#Su=1K66O5Se<_239T@;K7Z zv}NbklUG~^hJE;|8UfljJ^OoceY=egN8Su151^xJs8fQ(RRswgH9yr24F689nNY3& zo?2|NJPGZyD!0cx8!^8*s~)*w zQ||X>^lvmCIEKqjSP_N(k-5h)Ufcu)sU9{ZqPHz8aF5qtcc*k@?uLXEfBX6R!KBDN z|KhUb?mo}WV<6K~)acHqm>JKBaYAD|d3Q$cOXyCcdPiP{!iqAJ1qxf>PsL+5oyr(F77|q%C&Q5 zA+r#%qtd4A46Q6vtzt+b*!@Q$$wAqO?@xxwQB?li`>3`~N-kpS8wN@;xSH*)?x&%0 zK_Uzjx%n5*bro774>nHwpBku*72BIv$W*Lb)p#nI{qF9(I?Mj)@nRk2l{eN7d*dON zbd#ciOz+RPbY`%pka&4Hr)AGi`^VqZqtm%e;ml*}W%lqi1pD}lYrMq(T{j2sIcZ8- zedlXk7phd;zZMXs87jkbZh_&RY31&+<)<0MG%ZR*gJ!UX;Qe0a zclne5g9FPO^V0+`cgJO`pL1z0ixBY}59Ace_wTYV?N4UcSIy!Xm<@ z1Dj?o>jG}bGo%nj;qDelP?yEbz=OgU8;GS_b>BGZ+VH{mc$EfJbF15i^HnsSk z1mvsoHFx5^J-%xD7%tU~7A}VA3Y!@bUuSENx>5O8&$Mc4PqtIvCy7BRZuIce%;lA% zTE>mkt9Z8TZ1Zs-Pz)LOebmFE2hD+x^Tm{PH=Od*eu2V z;bE}|P}8{g*PQ1zEcm=pc|TF`Q|kp>*C38SJf4`>sk!3!Y1DZ1=_3q@kmsh@rimwO zO&;$VlhWXPz-ta{z8cf|*BPw8{U-6dtj1C#5>LoBeX&pJ7Aj1Q{vO!!MrH!OFkTA& zk?iT{S_852^)kv5J2*Fq8*D!+{LEyA$*6AMSv_pOs?rfb^<^5_z}`X@xVo~>_>=Y) z6q7HWqiyFqkNya%E#IY&_(?v`{;3lc9!?X~;j(!~ZS`nxN*|+1*oLcTuhRE1zB^&3 zJpbKDR-shm3EQv!c(bIPTh9bdUZD50-&-z5xSw3Mu*UmPJ<&v8f_~;Ka)H7TXJKLb zQ#^HnP?q9DHi0aWVzh&vqUx|_-&(vFl$AGT9+Sm0OB1el*CRB4LH@FuuOEE>E}%?E5w1Ww;j4HL_l8O)1S-d}cb z(7gN~SEKTB!czz}yOqf-9*;fG9}z)OU7lVIua;$NWTcS3sZ^))?uQ+Pvz}5R zHHGnArVfiKIQWw3`A)WDKM9DZG;WwB;Il1Lzf33dh^Ec^?Z+#RZ*3^CTkrBwY^LQ$ zs#P(NChl~FKOBr~|AEoPT+R1v(`V2={EBz`l#150?9f2X@g<|bi~luhHFQuc&Yn_B zzKs7Q`6LzQ62<1*w7sDy5vuuG3~gUP`eBgnc4tIIOZuK*x=ll z2~W}26{j3x8KNAz;7MA|kitkIF8=4*)9Xr}&<7l;6PrBFKRm`+F?N&DvOM;V*>7Q96=gpL0VE^Fu7|uA|?n<=XarS3aoG ztR>gkF5_A#jn(+f*4jMUjV8?MI&9M4^5==q$|s(zuC0v@B&zi~^}^_D3?I4`pQ`<6 zqAGgaIA&qJ9TDDy8}Oyoodx5`EI>rtjv)zTh?>Ve#BKYrB7JRrghryY{h$L^KaNn! zj4Xrjh(w|9_LJyyHSs$JOS>4g{Gi}STq<_ngxDH^rUm;NUpGFMiKjhfmz?mp4-Opr zEIK#yKP97PR3on6px7j<9l$w=&+l3$l}r|qa6h||XZbe&hgt(Q!wYZCn9ILa8I_FA zDPz>)(~j#ZtKOGga2&6%SRhoIYQqO{ZEJiFb1ch&)h zI@eJ>D2A8iUK+(sMfnbcY1OPtuRqXu5~&FcV*&A z%^Cw9AJ6QEdzL&ntv&dSjjy!}?1}Rx&RU)E?2ZnXw)0S`r3|3(%z7zsq!MY*L?olQ zl(V0ffAQCnqy#71$-z*5eubKv2qunV(?!i^g0m=0C{1y+c`hi@`rcKx@i-BjeIch; z`BZGv74K)RQc>u#YjKzsYR5e>`yoj3%8+7n8^<%7bxi$=Fq0>lQ+fVKkQ#*`4Qn53 zQ}&Lo=If`7m#4dqq&M^|67JDI57*~l!aX9Dz}c7hCD!~w{lrgR$@|a3&+zJK%7fGF z_I$38%3M49mx`@w!KtDyq`%UK?&MR9t{#Q0J?>-K)B3e!xQHK%hZn~#LuLD>Lui7q zm?PS_n$T0dPcJ_rl~cK;&_CRU&r4HD{P{o0`i>Q!!v9A}R~`t}`u=B(B?+Bdk)2^k zj3q?bqQM-6TarDZ)R2AO&97}xWJt{r_tq)5>>=*hPDQ#|<~9|=Fv)U}EMpzp?@Zr+ z-#PO<@B2RQ`8=P`bKduyhBGV~SRb;=Vg7ERex-Z!xE+fmP9HkdS}_o~XZ9W9Ct3^p z>=d1lF!tlnfF;d(tE;36vdmcQ`#Im;A5~{ zbGin0!tgKM5J_!K5{(k~ygi1A#fhSf32j|e|BN<&7f!#_fY;OZ)euuY`p{~K;G1_; z3wa>5?D!u?);)iELX+I`Ih(g1D0XT7i&wWXX|rkN;OdwYD(gXQBH?u4zo(t<GralW~C@SH~tf! zD;OjREbN}LPP_$ugGxc7@%3>Cd~)TKBVk-y1E?_&X%X2P%kMJCy(}NU`v* zM5z{gfx28rbGpxij6d}*p2egvUU$iUz%Vn=euUZ08_HBh}w@UpX4Brs<6j?5L?_3gR8fpR4dxUuv=IglqC7E#fvf<bA$T4D~-XhL{rCTp+8=$TW6ZB5_AJ6=(h% zLy+Ws+qNEgW1WZ&-Tf4Hbd{>8+)a$#KR=jp^5rm1G)Zg6%kS?oj4H#!bU-{Q;1j!WGOX zB7!`3)?I(!I-nWfkZW~9 zN+R*oM{9c6yRKV@B)tr46gv&xA7DPNR01SjWwN6sz&Ta?&ZY<9bj9(aKYI|2Sbhir zkY+ANGY*nLY4A)K$2Gdfg^yCXRTU-yn8-IHqj0-^8R>y6Z_QEB75@*s5K@Ru-E z^-z)azy1NieE;~rimCaX-gjy*Rnf!&#L+b}p{)iEjaVRpFODc0%=|(a-Tjz@edt%E zNA~`&;TqYdZNG2eFMhd~&tZ7>2m>mG?jsz%i+2OLPiD0Ck&V+X!WR#8_yr`xeD~>; zIGF}RX~|r}vJY`x*Ix5ytmWKLgqvu89WsUgYp~b{#G+%zAB*VG#UuFRu6#uEsn4x- ze zJ+{9haS{gjCMvPm|L9(%SkRv@@jNCGBf@XiVNW>BH>th)p?hW?HOZi68%M&1?VVSv zN+5KVn?P9_Q~Tfmm<~sAdMOQmv;HV6=Q~5IkiCin1d`j_Om*uoF4^!8sps zd3nG<DSjKSj2$fq&+=nGOhiDfHQ56)(IU}c(xIXPx%F1-Ys{ z(k0ytvG~3V9J#-w;d?%Wdj@R1R~z!rg4VcO3av8;>uwVJJ|P_0uP-dhknqDF%4+9 zKYtb$OBbUXa66mXjK~sn0cLe#u@kZj%jDIQ#is}G(=lBgBJc$J$~_Q6oLkK?1P?T9`&uCrXQ&a26$nw&-(ce1I_) z@W=WI`D*Lo`V@q{gf~Uq@YrEYlTrh=FI05%RQHwrVVd)3PIuDwL0`~Uj#CMb!a~%e zhte+-vc}_mn<;KO#i=HmR&Ii8j>g4LLeD+=n!ueX=N|P9WweL~dqtZ)s>;!M*KXXO zjVf9E8Cq{62|K0bm|uzW5taIa{$D zbx^Fn|EKig%owGi8QMO=v0@pIlrOfFgY}P4EdUT{-?Je@+Iu@p|j>s z)~)ORd24++UC6Mv**4FbFf`B|A4wh=8y&#iK8^n>LNc>@!h68@ zIuhJ?EIq!wktaMWRm@G5YZ|${?gA;^NQjM%9PVWQm~-ZX_u} zuA*=Erl@9(onz>%bbKVVOt#qS^jbQ8eLuavT&><=UgXm`@%bTpY$#y4*}U>;40kQ_ ze#FAU&#X*}>lB0YAh}1wGro13pWO}vfD_6lwkq`4Qmb@eO3R_ui9Ah4bqCSo6(^X9&iwm>lrj4FYwm@Nm<55Ua2w)xD_PPYa|-FgizQFi z^mWegjg_c`hWE0O4Q?1Ws3Bfmqm&D%>z>7=GnW~PkkRp=8N9Co^TzSjWwc;z#5 z<5j$x?96(|Fp&~)MCYrEH<&fIyA3!j7>|eDg|T z4Gl{3pba9I<0A){x+*Y#*C2Vax^8>s3iq%bropx7rNuYOQ@OAPF;fd~ODBaNnab&8 z9p!3Y7eN)|Y;RZ!4GDRC!-JW#!zjkl=~OcbnuIzGl&Z1-CkYMw{EBxi>aEtj*w9=P|#8 z24IlFEUoUQnN8RNWmu)Ib9aHe5h66)O*I32z0mzN2p#)%MGj?6i=<{2Cv02uA)fP? zR(Am0_!K>OG19~5WrK4!g~Bwl>?)h&|J5_6_7Ew4Xq;U9&HZ3Oycza<>G551bTb;2 zR(GEg=gAUe8NQ1AkKWDv(0w(9;y%YuO9NTZI5D+232j(<4*@F!1Fdm{{RZ^rL3QMI z@RJJD7{7pO+R^iU;+6DQ%3=Q*r4&I{SC>aPFfYyWb98Z2Y287d?w;R&vV+gy0s@{U zHNNKmj-S_??|Xr%CiD4M7d?ZL`y%VLa8ao7Lt3;6_(bjbn^hkoi7QG9+0@Bq;C&5$pJTjC>evtM6=a7GnQI!wPO-5Qevxbcuk6n=gT_^lwN=tL0 zCpZW61>pGYADG81dC!T``Qy(lTQKe?U#NKx9|E#Z~=R{)Aj)Jec zT+p9a)RH7k^sy6P3KI>g#KWu!g@voZn4vu8RvaP_5?jTPgZqhT)quX~oRauy!I&4v zk|ezA;Ssb%CPgf0z(X|dxO87S#V%;N2lKA4)=1i|;aL)9{-1fF%8ntVpwk<#e($#% z&g5l~tCW;ialph0wGz}zBn$~`9+FNyOiF+3$m)Rvzu`G)SgZFvD!5&hm=2VGS`I7) zLH>a6W5}VPU6~}w`0Ykbgj^=N06jUrRgAJQ*!kLf2MJeAPmS69Bg&dJ!Au?qwQW;M z%f{4C`a9-*{$Mn!1)t+2!>cOn08|ftT6L5>>I)WN+VOY2kqROu&H@`?*Y*frf%Cj} zZb}WOZfx=n&974$4CiS+?7+yaLy3hIRJz^gNfWgzkaRC?;qbUt}mC%pA7a4MJWj!{j;>= zZ315|xKGmd1C@C$V`8hhe>a3^-5oDB*ZLQQ!Z`B35ulis3;OTVQDq0j2_1AjBH_EW z$!ipL7XarYfD_0`RrL#5E%8+S z-)J)(rZa^K-_;KI5}H(}=Av+-mAy);Bu$nwm}ca0jd78BFEloZz&a0C!zGKyM8<*{ zkP>R&Vs$TuU*+tLrze~GXtr8>3A|2~K&>d7JBo(ID8g$_z`|kgf8II*e@eYldbPL> zgnJTxILMw@cW0^Q*ASakELHHoU;d?O%D7Rcy~>s!t73F42H4@zlVt*%Ceo5Zidb;l6b7O3>k#3hVptmFJ>#f3@FPZ17~D9u8w@3SynG!l1}2@K9 z7bX9@h*U$&iD61kdDO;~Kt|-bu~DQN-FWj=mP)tF{BL1uCkUH46&G&s1|>!`%wL$C zXH_rX1wF_W9S17YDemm%@D#5I;rSwYI~s;NbB*&_$|C#AJZyt3U+&Q=gRmMX9rlMO z;7Rg0u^HtP)JuV)!E6fwc{zajfnXx+a>U-%DTdgEKH?02tR+NSOD z5m?El49XfQlMYU$?D)ZTz(NI?3@qG&7T~+kphRmHr8Ht$ABx}KLSQskJ9%@Nxz8d} z{<_Ir^yjETmwX4CzBDRcU21q5{Z`D3MvJD*Itut1fkwN}FApNf%g0Ze jyC%Y80s_uY@1SM%jt35gJ+4PS(SZVO90?WHzW?|CVCrw| literal 0 HcmV?d00001 diff --git a/BookGPU/Chapters/chapter3/img/median5_overlap.png b/BookGPU/Chapters/chapter3/img/median5_overlap.png new file mode 100644 index 0000000000000000000000000000000000000000..f616641329b93663cd386beb9a0972222d289803 GIT binary patch literal 42790 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 z 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�dQ! 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 NL&pzhs+wH;zW@u0(AEF| literal 0 HcmV?d00001 diff --git a/BookGPU/Chapters/chapter3/img/median_1.png b/BookGPU/Chapters/chapter3/img/median_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0968e063efef52f63b2b641d24d6a1ad78418629 GIT binary patch literal 153475 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¨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%0D-KNl;Zg*v8!B+NOt8V3}YVEOi= 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + 21 + 100 + 194 + 12 + 29 + 73 + 91 + 34 + 201 + 36 + 45 + 45 + 59 + 63 + 42 + 61 + 30 + 64 + 62 + 28 + 22 + 35 + 19 + 17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + j + + + + + i + j + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + 6 + 5 + 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + j + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + first pixel + second pixel + 6 common + pixels + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + j + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 14 first + 6 last + 5 specific pixels for both center pixels + pixels + common + common pixels + + + + + + diff --git a/BookGPU/Chapters/chapter3/img/median_overlap.png b/BookGPU/Chapters/chapter3/img/median_overlap.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef8cab441e665e69f1e0d3e2d9f691b7d5db667 GIT binary patch literal 23610 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¬^x7w=RODav+L>S<(`{Pd1M_ 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 u4&{NztH7ru_c_e)g6rWB7c3Y5eQ-`o`1+}&p}P