Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BilatTools_Cuda_smart_switch / src / core / switch / readme.txt
1 // Objectif:\r
2 //\r
3 //              Faciliter la vie de l'utilisateur!\r
4 //\r
5 // Probleme:\r
6 //\r
7 //      Exemple (api image)\r
8 //\r
9 //              Methodologie 1 (utilisation namespace explicite)\r
10 //\r
11 //                      Compilation gcc = > cpu::Image  #include "Image_CPU.h"\r
12 //                      Compilation nvcc => gpu::Image  #include "Image_GPU.h"\r
13 //\r
14 //                      Avantage        : On peut utiliser en meme temps (meme exe) la vesrion cuda(namespace gpu) et non cuda (namespace cpu) de l'api-image\r
15 //                      Inconvenient    : syntaxe lourde\r
16 //\r
17 //              Methodologie 2 (utilisation de smart switch a priorite cuda)\r
18 //\r
19 //                      Code (sans namespace)\r
20 //\r
21 //                              Image   #include "Image.h"\r
22 //\r
23 //                      Compilation gcc  = > utilise automatiquemnt namespace cpu\r
24 //                                              => et donc indirectememt        cpu::Image      #include "Image_CPU.h"\r
25 //\r
26 //                      Compilation nvcc = > utilise automatiquemnt namespace gpu\r
27 //                                              => et donc indirectememt        gpu::Image      #include "Image_GPU.h"\r
28 //\r
29 //\r
30 //                      Avantage        : syntaxe ligth,portage de code facile entre version cpu et gpu, c'est le compilateur qui oriente\r
31 //                      Inconvenient    : On peut pas utiliser en meme temps (meme exe) la vesrion cuda(namespace gpu) et non cuda (namespace cpu) de l'api-image\r
32 //\r
33 //                      Contrainte :\r
34 //                                              Injecter la variable \r
35 //\r
36 //                                                              -D__CBI_CUDA__  \r
37 //      \r
38 //                                              ou mieux injecter la variable pour les projets non cuda\r
39 //\r
40 //                                                              -DCBI_NO_CUDA\r
41 //                      Note\r
42 //                                      L'utilisation de la variable \r
43 //                              \r
44 //                                                              __CUDACC__\r
45 //              \r
46 //                                      ne marche pas, elle est vrai que pour les portions de codes compiliés par nvcc, et false lorsque nvcc demande à gcc de compiler\r
47                 \r
48 /*----------------------------------------------------------------------*\\r
49  |*                             Pre-defined Compiler Macros                                                             *|\r
50  \*---------------------------------------------------------------------*/\r
51 \r
52 // http://sourceforge.net/p/predef/wiki/Compilers/\r
53 \r
54 // http://msdn.microsoft.com/en-us/library/b0084kay.aspx\r
55 // https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html\r
56 // http://sourceforge.net/p/predef/wiki/Home/\r
57 \r
58 // #ifdef __GNUC__\r
59 // #if defined(_MSC_VER)\r
60 // #ifdef __CBI_CUDA__\r