\section{Architecture of current GPUs}
-Architecture \index{Architecture of a GPU} of current GPUs is constantly
+Architecture \index{architecture of a GPU} of current GPUs is constantly
evolving. Nevertheless some trends remains true through this
evolution. Processing units composing a GPU are far more simpler than a
traditional CPU but it is much easier to integrate many computing units inside a
\section{Memory hierarchy}
-The memory hierarchy of GPUs\index{Memory~hierarchy} is different from the CPUs
-one. In practice, there are registers\index{Memory~hierarchy!registers}, local
-memory\index{Memory~hierarchy!local~memory}, shared
-memory\index{Memory~hierarchy!shared~memory}, cache
-memory\index{Memory~hierarchy!cache~memory} and global
-memory\index{Memory~hierarchy!global~memory}.
+The memory hierarchy of GPUs\index{memory~hierarchy} is different from the CPUs
+one. In practice, there are registers\index{memory~hierarchy!registers}, local
+memory\index{memory~hierarchy!local~memory}, shared
+memory\index{memory~hierarchy!shared~memory}, cache
+memory\index{memory~hierarchy!cache~memory} and global
+memory\index{memory~hierarchy!global~memory}.
As previously mentioned each thread can access its own registers. It is