Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BilatTools_Cuda_smart_switch / src / core / switch / readme.txt
diff --git a/WCudaMSE/BilatTools_Cuda_smart_switch/src/core/switch/readme.txt b/WCudaMSE/BilatTools_Cuda_smart_switch/src/core/switch/readme.txt
new file mode 100755 (executable)
index 0000000..1990f5d
--- /dev/null
@@ -0,0 +1,60 @@
+// Objectif:\r
+//\r
+//             Faciliter la vie de l'utilisateur!\r
+//\r
+// Probleme:\r
+//\r
+//     Exemple (api image)\r
+//\r
+//             Methodologie 1 (utilisation namespace explicite)\r
+//\r
+//                     Compilation gcc = > cpu::Image  #include "Image_CPU.h"\r
+//                     Compilation nvcc => gpu::Image  #include "Image_GPU.h"\r
+//\r
+//                     Avantage        : On peut utiliser en meme temps (meme exe) la vesrion cuda(namespace gpu) et non cuda (namespace cpu) de l'api-image\r
+//                     Inconvenient    : syntaxe lourde\r
+//\r
+//             Methodologie 2 (utilisation de smart switch a priorite cuda)\r
+//\r
+//                     Code (sans namespace)\r
+//\r
+//                             Image   #include "Image.h"\r
+//\r
+//                     Compilation gcc  = > utilise automatiquemnt namespace cpu\r
+//                                             => et donc indirectememt        cpu::Image      #include "Image_CPU.h"\r
+//\r
+//                     Compilation nvcc = > utilise automatiquemnt namespace gpu\r
+//                                             => et donc indirectememt        gpu::Image      #include "Image_GPU.h"\r
+//\r
+//\r
+//                     Avantage        : syntaxe ligth,portage de code facile entre version cpu et gpu, c'est le compilateur qui oriente\r
+//                     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
+//\r
+//                     Contrainte :\r
+//                                             Injecter la variable \r
+//\r
+//                                                             -D__CBI_CUDA__  \r
+//     \r
+//                                             ou mieux injecter la variable pour les projets non cuda\r
+//\r
+//                                                             -DCBI_NO_CUDA\r
+//                     Note\r
+//                                     L'utilisation de la variable \r
+//                             \r
+//                                                             __CUDACC__\r
+//             \r
+//                                     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
+               \r
+/*----------------------------------------------------------------------*\\r
+ |*                            Pre-defined Compiler Macros                                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+// http://sourceforge.net/p/predef/wiki/Compilers/\r
+\r
+// http://msdn.microsoft.com/en-us/library/b0084kay.aspx\r
+// https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html\r
+// http://sourceforge.net/p/predef/wiki/Home/\r
+\r
+// #ifdef __GNUC__\r
+// #if defined(_MSC_VER)\r
+// #ifdef __CBI_CUDA__\r